我假设你有十进制坐标,比如50.3869881,-4.6177269,南北优先。在
因为你有一个相当小的地图,我们不需要担心地球的曲率,我们可以假设我们有一个线性地图,所以地图上点的(x,y)坐标将是x = longitude * a + b
y = latitude * c + d
其中a,b,c,d是常数。棘手的是找出这些常数是什么,这取决于你的纬度。在
一种技术是使用googleearth,它可以让你测量两点之间的距离,你可以说取两个已知坐标的点,然后找出它们之间的距离和白令。一点高中几何知识就能给你坐标。在
另一种技术是使用地图制作者使用的Earth ellipsoid。赤道半径6378137m,极半径6356752m。在
更简单的方法是把地球当作一个半径为6371000米的完美球体,纬度很容易,绕两极绕一圈,周长为2πr=40030km。用360除以1度纬度=111.2km。对于经度,我们需要做一点三角学。穿过地球的水平切片有半径
^{pr2}$
经度1度6371km * 2 * pi * cos(lat) / 360
它的一些价值是lat dist
0 111.2
10 109.5
20 104.5
30 96.3
40 85.2
50 71.5
60 55.6
70 38.0
80 19.3
90 NA things don't work at the poles
所以要找到坐标。让lat0,long0是圆中心点的坐标,这是地图上的0,0点。让lat1,long1成为你们想要找到的点。首先计算m = 6371km * 2 * pi * cos(lat0) / 360,然后找出坐标dlat = lat1 - lat0,dlong = long1 - long0之间的差异。它们的单位是度,所以乘以111.2km和m就可以得到以km为单位的距离。x = dlong * m,y = dlat * 111.2。这只是一个近似值,所以结果只能精确到1%。在