【发布时间】:2009-04-30 20:43:13
【问题描述】:
这可能不清楚,也可能不清楚,如果我不在基地,请给我留言,或者您需要更多信息。也许已经有我想要的 PHP 解决方案了。
我正在寻找一个可以从经度或纬度值中添加或减去距离的函数。
原因:我有一个包含所有纬度和经度的数据库,并希望形成一个查询来提取 X 公里(或英里)内的所有城市。我的查询看起来像这样......
Select * From Cities Where (Longitude > X1 and Longitude < X2) And (Latitude > Y1 and Latitude < Y2)
Where X1 = Longitude - (distance)
Where X2 = Longitude + (distance)
Where Y1 = Latitude - (distance)
Where Y2 = Latitude + (distance)
我正在使用 PHP,使用 MySql 数据库。
也欢迎任何建议! :)
【问题讨论】:
-
你总是可以自己推导出函数......这看起来像是高中级别的微积分,或者如果你真的简化它甚至可以触发......
-
您会这么认为,但地球并不是一个完美的球体,赤道 1 度经度与其他地方 1 度经度之间的差异惊人地大。这绝对不像人们希望的那么简单!
-
(见下面我的回答:))
-
@Mike,你不能只添加一个标量距离来获得一个新的经度和纬度。由于地球的曲率,您还需要指定角度。你说你想找到 X 公里的城市,我的解决方案就是这样做的。
标签: mysql gis coordinates distance coordinate-systems