2016-08-23 89 views
0

我有一个应用程序,其特征图层和图形图层没有相同的空间参考(即102110和4326)。 我的地图与我的要素图层具有相同的空间参考(102110)。 我无法将我的图形图层(4326)的空间参考转换为我的地图和要素图层中的一个。 你有什么想法来帮助我吗? 谢谢。JS的Arcgis API:更改图形图层的空间参考

回答

0

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

FeatureLayer的的SpatialReference地图匹配:

当请求的功能从服务做,地图的空间 参考将包括它告诉服务重新计划将它们发送到前 功能客户端。

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]); 
     } 
    }); 

});