问候。
我已经看到了关于这个主题的一些帖子和答案,但我认为给出的结果可能不太准确。
假设我在MySQL空间表中包含具有经度和纬度的不同点的行。我只想通过一个简单的SELECT查询来检索它们之间的距离。我试过了:
GLENGTH(
LINESTRINGFROMWKB(
LINESTRING(
GEOMFROMTEXT(
ASTEXT(
POINTFROMWKB(
POINT( X(user_location) , Y(user_location))))),
GEOMFROMTEXT(
ASTEXT(
POINTFROMWKB(
POINT( $latitude, $longitude )))))))*100
我知道它的'丑陋',我担心结果不会在KiloMeters中给出。
我该怎么做?非常感谢。
答案 0 :(得分:3)
您使用的方法根本无法提供准确的结果。由于GLENGTH使用简单的笛卡尔距离公式。您还可以阅读它不能用于球面的评论here on GLENGTH's MySQL page,它适用于笛卡尔平面。
在这个Stackoverflow answer中,有一个修改后的公式以及如何使用它解释清楚,看看它。您需要修改它以适合您的目的。但它肯定会指导你如何继续。
希望它有所帮助...