本文基于supermap平台实现二维矢量数据的84转火星。
步骤:
//index.js文件
var projzh = require('projzh'); const fs = require('fs'); function ll2gcj(input) { return projzh.datum.gcj02.fromwgs84(input); } var testpath = './region.txt'; var res = json.parse(fs.readfilesync(testpath).tostring()); if(res){ for(var i = 0;i<res.features.length;i++){ let feature = res.features[i]; if(feature.geometry.type === 'polygon'){ for(var j=0;j<feature.geometry.coordinates.length;j++){ for(var k=0;k<feature.geometry.coordinates[j].length;k++){ let lng = feature.geometry.coordinates[j][k][0]; let lat = feature.geometry.coordinates[j][k][1]; var obj = ll2gcj([lng,lat]); feature.geometry.coordinates[j][k][0] = obj[0]; feature.geometry.coordinates[j][k][1] = obj[1]; console.log('i:'+i+';j:'+j+";k:"+k); } } }else if(feature.geometry.type === 'multipolygon'){ for(var j=0;j<feature.geometry.coordinates.length;j++){ for(var k=0;k<feature.geometry.coordinates[j].length;k++){ for(var m=0;m<feature.geometry.coordinates[j][k].length;m++){ let lng = feature.geometry.coordinates[j][k][m][0]; let lat = feature.geometry.coordinates[j][k][m][1]; var obj = ll2gcj([lng,lat]); feature.geometry.coordinates[j][k][m][0] = obj[0]; feature.geometry.coordinates[j][k][m][1] = obj[1]; console.log('i:'+i+';j:'+j+";k:"+k+';m:'+m); } } } }else if(feature.geometry.type === 'linestring'){ for(var j=0;j<feature.geometry.coordinates.length;j++){ let lng = feature.geometry.coordinates[j][0]; let lat = feature.geometry.coordinates[j][1]; var obj = ll2gcj([lng,lat]); feature.geometry.coordinates[j][0] = obj[0]; feature.geometry.coordinates[j][1] = obj[1]; console.log('i:'+i+';j:'+j+";k:"+k); } } } // for(var i =0;i<resdata.length;i++){ // var item= resdata[i]; // var obj = ll2gcj([item.lng,item.lat]); // item.lng = obj[0]; // item.lat = obj[1]; // } console.log('end'); var testpath2 = './regionpolygongcj.txt'; fs.writefilesync(testpath2, json.stringify(res)); }
先装nodejs环境,在geojson文件所在文件夹下运行node index.js。(region.txt是源文件,regionpolygongcj.txt是转换后的文件,目前支持polygon、multipolygon、linestring)
如对本文有疑问, 点击进行留言回复!!
offset、client、scroll (width,height、left,top、X,Y)
网友评论