如果边界框为纬度/经度且“点”为弧度,如何在ESRI折线中绘制点?

时间:2010-05-08 13:43:31

标签: draw esri shapefile polyline radians

我正在使用OpenMap,而我正在使用com.bbn.openmap.layer.shape.ShapeFile读取ShapeFile。边界框作为纬度/长点读入,例如39.583642,-104.895486。边界框是左下角点和右上角点,表示包含点的位置。在OpenMap中命名为“弧度”的“点”采用不同的格式,如下所示:[0.69086486,-1.8307719,0.6908546,-1.8307716,0.6908518,-1.8307717,0.69085056,-1.8307722,0.69084936,-1.8307728 ,0.6908477,-1.8307738,0.69084626,-1.8307749,0.69084185,-1.8307792]。

如何将像“0.69086486,-1.8307719”这样的点转换为可在普通图形中使用的x,y坐标?

我相信这里所需要的只是某种转换,因为将这些点带入Excel并绘制它们会创建一条线,其曲线与给定位置(纬度/经度)的道路曲线相匹配。但是,轴需要手动调整,我没有参考如何调整轴,因为给定的边界框看起来与给定点的格式不同。

ESRI Shapefile技术说明似乎没有提到这一点(http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf)。

2 个答案:

答案 0 :(得分:1)

0.69086486, -1.8307719是弧度的纬度和经度。

首先,转换为度数(乘以(180 / pi)),然后在边界框和坐标之间将有公共单位。

然后,您可以使用以下内容在本地框架中绘制所有内容:

x = (longitude-longitude0)*(6378137*pi/180)*cos(latitude0*pi/180)
y = (latitude-latitude0)*(6378137*pi/180)

(latitude0,longitude0)是参考点的坐标(例如边界框的左下角) 角度为,距离

编辑 - 说明: 这是地球的正交投影,被认为是一个半径为6378137.0米(WGS84椭圆体的半长轴)的球体,以点(lat0,lon0)为中心

答案 1 :(得分:0)

在OpenMap中,有许多方法可以从弧度转换为十进制度:

Length.DECIMAL_DEGREE.fromRadians(radVal);
Math.toDegrees(radVal)  // Standard java library

对于数组,可以使用ProjMath.arrayDegToRad(double [] radvals);

小心使用最后一个,它会进行转换。因此,如果从OMPoly获取lat / lon数组,请在转换之前先复制它。否则,你将弄乱OMPoly的内部坐标,它预计是弧度。