我需要MySQL查询(或函数)来计算任意数量的纬度/经度坐标的地理中点。我想使用方法C(平均纬度/经度),如本页http://www.geomidpoint.com/calculation.html所述,但无法弄清楚如何将其转换为SQL查询。我正在寻找形式的东西:
从积分中选择LATITUDE_AVG_FORMULA(points.latitude),LONGITUDE_AVG_FORMULA(points.longitude);
点表中的每个点都有十进制格式的相关纬度和经度。我希望有人已经拥有他们正在使用的MySQL查询(或函数),或者拥有比我更多的geospacial计算经验。在此先感谢您的帮助!
答案 0 :(得分: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
您的参考提到了基线调整,但我不确定是否需要。