0
我有一个应用程序,其特征图层和图形图层没有相同的空间参考(即102110和4326)。 我的地图与我的要素图层具有相同的空间参考(102110)。 我无法将我的图形图层(4326)的空间参考转换为我的地图和要素图层中的一个。 你有什么想法来帮助我吗? 谢谢。JS的Arcgis API:更改图形图层的空间参考
我有一个应用程序,其特征图层和图形图层没有相同的空间参考(即102110和4326)。 我的地图与我的要素图层具有相同的空间参考(102110)。 我无法将我的图形图层(4326)的空间参考转换为我的地图和要素图层中的一个。 你有什么想法来帮助我吗? 谢谢。JS的Arcgis API:更改图形图层的空间参考
GraphicsLayer
或FeatureLayer
其中没有任何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]);
}
});
});