2012-08-14 10 views
8

में कनवर्ट करना मैं भौगोलिक समन्वय प्रणाली को एएसई वेबमेरेटर में बदलने की कोशिश कर रहा हूं, लेकिन जब मैं रूपांतरण करता हूं तो परिणामस्वरूप x और y के पास 0000003232112222 ... और 00000012665321 ... के मान होते हैं। यह समन्वय के बाद से बहुत अजीब है क्योंकि वे मौजूद नहीं हैं।भौगोलिक WGS 84 को वेब मर्केटर 102100

var positions = []; 
positions.push(x, y); 

var g = new esri.geometry.Point(positions); 
g = esri.geometry.geographicToWebMercator(g); 
x = g.x; 
y = g.y; 
+0

पहला समन्वय लगभग क्वाड्र्री अपघटन की तरह दिखता है, लेकिन दूसरा वाला नहीं (3 से अधिक अंक)। शायद सिर्फ संयोग। – John

+0

स्थानिक संदर्भ सहायता असाइन करेगा? (Https://developers.arcgis.com/javascript/jsapi/point-amd.html)। लाइन var g = new esri.geometry.Point ... –

+0

आपके एक्स और वाई मानों को स्थिति सरणी में भेजे जाने के लिए सटीक इनपुट क्या हैं? कृपया इन मानों का सटीक प्रारूप और डेटा प्रकार शामिल करें। आदर्श रूप में, कोड शामिल करें जो वास्तव में आपके नमूने में हार्डकोडेड एक्स और वाई मान सेट करता है ताकि समस्या कोड दूसरों द्वारा निष्पादित किया जा सके। – Fitz

उत्तर

0

आप वास्तव में latitide/देशांतर एक आधार मानचित्र webmercator में है कि करने के लिए अंक जोड़ने के लिए कन्वर्ट करने के लिए नहीं है।

आप कुछ अलग-अलग तरीकों से अक्षांश/देशांतर (और एपीआई आंतरिक रूप से भौगोलिक से वेबमेरेटर से रूपांतरण करेंगे) का उपयोग कर सीधे प्वाइंट बना सकते हैं। यह संस्करण 3.3 (जनवरी 2013) के बाद उपलब्ध है।

var point = new Point(-98, 38); // note that longitude(x) comes before the latitude(y). 

// or as an array 
var point = new Point([-98, 38]); 

// or as an object 
var point = new Point({latitude: 38, longitude: -98}); 

https://developers.arcgis.com/javascript/3/jsapi/point-amd.html#point4

0

आप esri/geometry/webMercatorUtils module.see में विस्तृत documentationgeographicToWebMercator विधि की कोशिश करनी चाहिए।

 //a point in GCS_WGS_1984(wkid is 4326) 
     var point = new Point(-118.15, 33.80, new SpatialReference({ 
      wkid: 4326 
     })); 

     var pointWebMercator = webMercatorUtils.geographicToWebMercator(point); 

     alert("the point in 102100 is (" + pointWebMercator.x + "," + pointWebMercator.y + ")"); 

एक लाइव डेमो:

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" /> 
 
    <title>Converting geographic WGS 84 to Web Mercator 102100</title> 
 
    <link rel="stylesheet" href="https://js.arcgis.com/3.20/esri/css/esri.css"> 
 
    <style> 
 
     html, 
 
     body, 
 
     #map { 
 
      height: 100%; 
 
      margin: 0; 
 
      padding: 0; 
 
     } 
 
    </style> 
 
    <script src="https://js.arcgis.com/3.20/"></script> 
 
    <script> 
 
     var map; 
 

 
     require(["esri/map", "esri/geometry/Point", "esri/SpatialReference", "esri/geometry/webMercatorUtils", "dojo/domReady!"], function (Map, Point, SpatialReference, webMercatorUtils) { 
 
      map = new Map("map", { 
 
       basemap: "topo", //For full list of pre-defined basemaps, navigate to http://arcg.is/1JVo6Wd 
 
       center: [-122.45, 37.75], // longitude, latitude 
 
       zoom: 13 
 
      }); 
 

 
      //a point in GCS_WGS_1984(wkid is 4326) 
 
      var point = new Point(-118.15, 33.80, new SpatialReference({ 
 
       wkid: 4326 
 
      })); 
 

 
      var pointWebMercator = webMercatorUtils.geographicToWebMercator(point); 
 

 
      alert("the point in 102100 is (" + pointWebMercator.x + "," + pointWebMercator.y + ")"); 
 
     }); 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <div id="map"></div> 
 
</body> 
 

 
</html>

आशा है कि यह आपकी मदद कर सकता है।

+0

मैं जावास्क्रिप्ट के लिए arcgis api की एएमडी शैली का उपयोग कर रहा हूं। विरासत शैली के लिए, मुख्य कोड समान है। @Pavlo – YinchaoOnline

संबंधित मुद्दे