如果我有一个大小为sizeX,sizeY的jpeg贴图
和地图上的一些校准点(X,Y,Lon,Lat)
在给定经度/纬度对的情况下,计算地图中相应的XY点的算法是什么?
发布于 2010-12-31 03:24:07
这是对我有效的方法,没有太多的废话。
int x = (int) ((MAP_WIDTH/360.0) * (180 + lon));
int y = (int) ((MAP_HEIGHT/180.0) * (90 - lat));最新的经纬度坐标是Android设备给我的。因此,它们应该采用所有Google Earth/Map产品所使用的相同标准。
发布于 2010-05-26 17:00:35
如果使用Equidistant Cylindrical Projection type map,则需要执行以下操作:
将该信息
X=(图像总宽度,单位为px) * (180 +纬度)/ 360
Y=(图像总高度,单位为px) * (90 -经度)/ 180
注意:使用负经度纬度时,请确保添加或减去负数,即+( -92 )或-(-35),这实际上是-92和+35
有关此公式和映射类型的更多信息,请单击此处:
发布于 2009-09-02 19:08:59
互联网上有大量关于计算两对经纬度之间距离的信息。我们在我们的公共网站上使用这些计算,它们并不容易理解/讨论(所以我不会在这里讨论它们)。也就是说,它们很容易实现。
一旦你有了一个返回距离的函数,你就应该能够根据角之间的距离来计算地图的宽度和高度。
然后,您可以计算点与左上角的水平和垂直距离。
现在你找到了地图宽度的比率是由左侧和你的点之间的距离表示的,将这个比率应用于像素宽度,你就得到了左侧和你的点之间的像素数。对y轴重复此操作。
(从左侧开始的像素)=(总宽度,以像素为单位)*((对左侧和您的点之间的距离进行地理编码)/(对左侧和右侧之间的距离进行地理编码))
(从顶部开始的像素)=(总高度(以像素为单位)*(对顶部和点之间的距离进行地理编码)/(对顶部和底部之间的距离进行地理编码)
编辑:当您进一步研究这一点时,您会注意到,由于您是在球面上近似两点之间的距离并将其映射到平面上,因此某些解决方案会比其他解决方案提供更准确的结果。随着距离的增加,精度会降低。给你的最好的建议是先试一试,看看它是否满足你的需求。
https://stackoverflow.com/questions/1369512
复制相似问题