0

我需要一个 MySQL 查询(或函数)来计算任意数量的纬度/经度坐标的地理中点。我想使用此页面http://www.geomidpoint.com/calculation.html中描述的方法 C(平均纬度/经度),但无法弄清楚如何将其转换为 SQL 查询。我正在寻找以下形式的东西:

从点中选择 LATITUDE_AVG_FORMULA(points.latitude),LONGITUDE_AVG_FORMULA(points.longitude);

点表中的每个点都具有十进制格式的相关纬度和经度。我希望有人已经有他们正在使用的 MySQL 查询(或函数),或者在地理空间计算方面比我有更多的经验。在此先感谢您的帮助!

4

1 回答 1

1

方法 C 似乎基本上是加权平均。您的问题接近 MySQL 语法。鉴于这些是十进制格式。

如果你有重量:

SELECT
    SUM( longitude * weight ) / SUM( weight ) AS Avg_Long,
    SUM( latitude * weight ) / SUM( weight ) AS Avg_Lat
FROM
    points

或未加权:

SELECT
    AVG( longitude ) AS Avg_Long,
    AVG( latitude ) AS Avg_Lat
FROM
    points

您的参考暗示了基线调整,但我不确定是否需要。

于 2009-11-03T23:18:23.560 回答