consulta MySQL para ponto médio geográfica
-
13-09-2019 - |
Pergunta
Eu preciso de uma consulta MySQL (ou função) para calcular o ponto médio geográfica de um número arbitrário de coordenadas de latitude / longitude. Eu quero usar o Método C (latitude média / longitude) como descrito nesta página http: //www.geomidpoint .com / calculation.html mas não consigo descobrir como converter isso em uma consulta SQL. Eu estou procurando algo da forma:
selecione LATITUDE_AVG_FORMULA (points.latitude), LONGITUDE_AVG_FORMULA (points.longitude) a partir de pontos;
Onde cada ponto na tabela de pontos tem como latitude associados e longitude em formato decimal. Eu estou esperando que alguém ou já tem uma consulta MySQL (ou função) que eles estão usando para isso ou tem muito mais experiência com cálculos geospacial do que eu tenho. Agradecemos antecipadamente a sua ajuda!
Solução
Método C parece ser basicamente uma média ponderada. Sua pergunta é perto de sintaxe MySQL. Tendo em conta que estes são formato decimal.
Se você tiver pesos:
SELECT
SUM( longitude * weight ) / SUM( weight ) AS Avg_Long,
SUM( latitude * weight ) / SUM( weight ) AS Avg_Lat
FROM
points
Ou não ponderada:
SELECT
AVG( longitude ) AS Avg_Long,
AVG( latitude ) AS Avg_Lat
FROM
points
Seus alude referência para ajustes de linha de base, mas não tenho certeza de que é necessário.