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

Arcgis API for JS : change spatial reference of graphic layer

我的应用程序包含要素层和图形层,它们没有相同的空间参考(即 102110 和 4326)。 我的地图与我的要素图层 (102110) 具有相同的空间参考。 我无法将我的图形图层 (4326) 的空间参考转换为我的地图和要素图层之一。 你有什么想法可以帮助我吗? 谢谢

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

FeatureLayer 的 SpatialReference 与地图匹配:

When requests are made for features from a service, the map's spatial reference will be included which tells the service to re-project features before sending them to the client.

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

});