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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top