由于項目需求,需要使用二三維地圖的關聯功能。參考了這篇文章https://blog.csdn.net/leftfist/article/details/78305141
但是二三維資料的坐标參考不一緻,三維是WG484的經緯度坐标,二維的是CGCS2000下的高斯投影3度分帶坐标。是以面臨的一個首要問題就是坐标數值轉換的問題。參考https://blog.csdn.net/jxdnsong/article/details/54409570文章使用ARCGIS API的函數進行轉換,因為題主是兩個地理坐标的互轉,不涉及到投影坐标,是以需要将投影代碼改成我需要的。在傳值的時候将其包裝成對象傳遞進去就可以了。(之前以數值的形式傳遞,導緻沒有出來任何結果,一度認為是美國人不使用高斯投影的緣故QAQ)。
function GeoProject(inGeometries, outSR, callback) {
if (inGeometries && inGeometries.length > 0) {
var params = new esri.tasks.ProjectParameters();
params.geometries = inGeometries;
params.outSR = outSR;
params.transformForward = true; //向前轉換
var geometryService = esriConfig.defaults.geometryService ? esriConfig.defaults.geometryService : new esri.tasks.GeometryService(geoserviceURL);
map_2d.contentWindow.geometryService.project(params, callback);
}
}
就是這個OUTSR參數, 需要 var outSR = new esri.SpatialReference(4545);而不是 var outSR=4545;喲!