Arcgis API for JS:更改图形图层的空间参考

时间:2016-08-23 07:48:34

标签: javascript arcgis-js-api

我有一个应用程序,其功能层和图形层不具有相同的空间参考(即102110和4326)。 我的地图与我的要素图层具有相同的空间参考(102110)。 我无法将图形图层(4326)的空间参考转换为我的地图和要素图层之一。 你有什么想法帮助我吗? 感谢。

1 个答案:

答案 0 :(得分:0)

GraphicsLayerFeatureLayer中没有任何SpatialReference信息。空间参考也是几何/图形对象和Map的一部分。

FeatureLayer的SpatialReference与map匹配:

  

当请求服务中的要素时,地图的空间   将包括参考,告知服务重新投影   在将它们发送给客户之前的功能。

然而,GraphicsLayer完全在应用程序中维护。在地图上添加图形之前,开发人员需要确保投影匹配。要更改投影系统,您可以使用GeometryService,以下是示例。

require(["dojo/_base/array", "esri/tasks/GeometryService", "esri/tasks/ProjectParameters", "esri/SpatialReference"], function(GeometryService, ProjectParameters, array) {
    var geometries = array.map(graphicsLayer.graphics, function(graphic){
        return graphic.geometry;
    });

    var gsvc = new GeometryService("https://utility.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");

    var outSR = new SpatialReference({wkid:102110});

    var params = new ProjectParameters();
    params.geometries = geometries ;
    params.outSR = outSR;
    params.transformation = transformation;
    gsvc.project(params, function(projectedGeometries){
        for(var i = 0; i < projectedGeometries.length;i++){
            graphicsLayer.graphics[i].setGeometry(projectedGeometries[i]);
        }
    });

});