arcgis将经纬度坐标跨带转为高斯平面坐标 跨带的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcgis将经纬度坐标跨带转为高斯平面坐标 跨带的相关的知识,希望对你有一定的参考价值。

谢谢

如果是跨带的,先判断数据范围在哪个度带较大就采用哪个度带。至于经纬度转换为高斯平面。就采用PROJECT工具。设置为投影坐标系-西安80-36度带的即可。追问

横跨38 39带 不能投影到38 39带么 是省的范围

参考技术A 用arctoolbox中的投影工具Project。

高德地图画正六边形

题目:已知圆点的经纬度坐标 [ longitude,  latitude ] ,以3公里为半径画一个正六边形,画出六边形

思路:将经纬度坐标转化为平面坐标,在平面坐标上求六个点的坐标,最后将平面坐标转为经纬度坐标

实现:最后的计算单位都相应转化为米

1.  经纬度坐标转化为米       

#获取当前的 “米/像素” 的转化比例
var per = map.getResolution(point); // 获取单位 米/像素

#将经纬度坐标转成“像素”var toPx = map.lnglatToPixel(point, zoom); //转换像素

#根据像素以及比例 转成“米”单位 var centerX = per * toPx.getX(); //将像素转化为米
var centerY = per * toPx.getY();

 

2.  根据圆心位置求出六个平面点的坐标(先不考虑浮点数计算的问题)

var pointNum = [];
pointNum.push({x: centerX, y: centerY + radius},
              {x: centerX + sin60, y: centerY + cos60},
              {x: centerX + sin60, y: centerY - cos60},
              {x: centerX, y: centerY - radius},
              {x: centerX - sin60, y: centerY - cos60},
              {x: centerX - sin60, y: centerY + cos60});

 

3. 将六个平面坐标转为经纬度坐标

#获取当前地图的缩放比例
var zoom = map.getZoom();
var path = [];
pointNum.map((cur, index) => {
   #将 “米” 转化 “像素”单位
   var x = cur.x / per,
y = cur.y / per;
   #将平面坐标转经纬度坐标
   pointNum[index] = map.pixelToLngLat(new AMap.Pixel(x, y), zoom);
   #获取转化后的经度、纬度,并保存
   path.push([pointNum[index].getLng(), pointNum[index].getLat()]);
});

4. 展示六边形

let polygon = new AMap.Polygon({
path: path,
strokeColor: ‘red‘,
strokeOpacity: 1,
strokeWeight: 3,
fillColor: ‘red‘,
fillOpacity: 0.45
});
polygon.setMap(map);
#创建编辑对象
var editor = new AMap.PolyEditor(map, polygon); 
editor.open();

以上是关于arcgis将经纬度坐标跨带转为高斯平面坐标 跨带的的主要内容,如果未能解决你的问题,请参考以下文章

arcgis 2000经纬度坐标转换为2000平面坐标

经纬度转换高斯坐标怎么转换,高手帮忙一下?

经纬度转换成高斯投影80坐标系

arcgis9.3 投影坐标怎么转为地理坐标

如何将WGS84坐标转换成经纬度坐标

利用arcgis实现经纬度和平面坐标互转