【发布时间】:2012-09-28 01:26:17
【问题描述】:
您好。
我看过一些关于这个主题的帖子和答案,但我认为给出的结果可能并不准确。
假设我在 MySQL 空间表中具有不同点的经度和纬度行。我只想用一个简单的 SELECT 查询来检索它们之间的距离。我试过了:
GLENGTH(
LINESTRINGFROMWKB(
LINESTRING(
GEOMFROMTEXT(
ASTEXT(
POINTFROMWKB(
POINT( X(user_location) , Y(user_location))))),
GEOMFROMTEXT(
ASTEXT(
POINTFROMWKB(
POINT( $latitude, $longitude )))))))*100
我知道它的那种“丑陋”,恐怕结果不是以千米为单位的。
我该怎么做呢?非常感谢。
【问题讨论】:
-
格式化您的公式以使其易于阅读会很有帮助。此外,您要查找的内容称为“haversine”或“great circle”距离公式。
-
另外:这取决于您需要多准确。如果您正在做一个商店查找器应用程序,haversine 公式就可以了。如果您正在为桥梁制定工程计划,则需要了解制图投影;地球不是完美的球形。