代码之家  ›  专栏  ›  技术社区  ›  Kalifornium

使用ArcGis Api For Javascript将长坐标和纬度坐标转换为X-Y坐标

  •  1
  • Kalifornium  · 技术社区  · 7 年前

    您好,我正在尝试使用ArcGis Api For Javascript将长lat值转换为X,Y

     var i = esri.geometry.lngLatToXY(3.13, 36.742)
     console.log(i); //returns Array [ 348541.32567373366, 4403205.668961807 ]
    

    这种转换是在什么系统中发生的? 是否有方法指定投影系统?

    注:从十进制到米的转换

    我遵循以下步骤: https://developers.arcgis.com/javascript/3/jsapi/esri.geometry.webmercatorutils-amd.html

    1 回复  |  直到 7 年前
        1
  •  5
  •   GeoAstronaute    7 年前

    该方法用于将地理坐标系经纬度(wkid 4326)转换为投影坐标系Web Mercator(wkid 102100)。

    默认esri地图使用Web Mercator作为投影系统。如果需要将坐标转换为其他坐标系,则需要使用 project GeometryService方法: https://developers.arcgis.com/javascript/3/jsapi/geometryservice-amd.html

    例子:

    require(["esri/geometry/Point", "esri/tasks/GeometryService", "esri/tasks/ProjectParameters", "esri/SpatialReference", "dojo/domReady!"],
      function(Point, GeometryService, ProjectParameters, SpatialReference) {
    
        var outSR = "YOUR_OUTPUT_COORDINATE_SYSTEM"; // `wkid {number}`
        var geometryService = new GeometryService("https://utility.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
        var inputpoint = new Point({
          longitude: "YOUR_LONGITUDE_INPUT",
          latitude: "YOUR_LATITUDE_INPUT"
        });
    
        var projectParams = new ProjectParameters();
        projectParams.geometries = [inputpoint];
        projectParams.outSR = new SpatialReference({ wkid: outSR });
    
        geometryService.project(projectParams, (result) => {
          let outputpoint = result[0]; // outputpoint first element of result array
          console.log("Result x:", outputpoint.x, "y :", outputpoint.y);
        });
      });
    

    Wkid编号可在此处找到:

    编辑

    下面是一个工作示例: Plunker