2016-08-23 84 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]); 
     } 
    }); 

});