我有莫斯科的城市地图.我们使用一些艺术元素修改了Google地图图像,但GPS坐标和像素之间的关系保持不变.
问题:如何将GPS坐标从我们拥有的各种数据点转换为图像中的像素坐标?
理想情况下,我可以在Javascript中执行此操作,但PHP可以.
我知道在小尺度上(例如在城市尺度上)它可以做得足够简单(有必要了解哪个地理坐标有一个图像角点,然后在轴上的图片上学习地理坐标中一个像素的"价格" OX和OY分开).
但是在大尺度(国家规模)上,一个像素的"价格"将不是常数,并且将足够强烈地变化并且不能应用上述方法.
如何解决国家规模的问题?
更新:
我不使用API谷歌地图,我只有:对象的地理坐标(它们来自谷歌地图),我仍然在我的网站上有一个简单的图片*.gif,我必须在其中绘制一个相应的地理坐标点.
我必须从地图上的不同标记到设备的当前位置,并获得最短的标记.我有lat和long标记,当前位置lat和long可以动态获取.
假设我在地图上有5个标记,Bangalore(Lat:12.971599,Long:77.594563),Delhi(Lat:28.635308,Long:77.224960),Mumbai(Lat:19.075984,Long:72.877656),Chennai(Lat:13.052414,Long: 80.250825),Kolkata(Lat:22.572646,Long:88.363895).
现在假设用户站在海德拉巴附近(Lat:17.385044,Long:78.486671).当用户点击按钮时,应用程序应该计算每个标记的距离并选择并返回最短的标记,这将是班加罗尔.
有一种方法可以在本地数据库的帮助下完成.请有人帮忙吗?
任何人都可以建议我这样做的好方法,或者如果你愿意,可以提出一个好的代码.Thanx提前.
你能帮我把 lla 转换成 xyz 坐标吗?
我在用
earthRadius = 6378.137;
var x = earthRadius * Math.cos(lat)*Math.cos(lon);
var y = earthRadius * Math.cos(lat)*Math.sin(lon);
var z = earthRadius * Math.sin(lat);
Run Code Online (Sandbox Code Playgroud)
此方法转换为 xyz 坐标。但它没有给出我想要的正确结果。地球被定义为 wgs84 对象。