query MySQL per midpoint geografica
-
13-09-2019 - |
Domanda
Ho bisogno di una query MySQL (o funzione) per calcolare il punto medio geografica di un numero arbitrario di latitudine / longitudine. Voglio utilizzare il metodo C (media latitudine / longitudine), come descritto in questa pagina http: //www.geomidpoint .com / calculation.html , ma non riesco a capire come convertire questo in una query SQL. Sto cercando qualcosa di forma:
selezionare LATITUDE_AVG_FORMULA (points.latitude), LONGITUDE_AVG_FORMULA (points.longitude) da punti;
Dove ogni punto della tabella punti ha come latitudine e longitudine associati in formato decimale. Sto sperando che qualcuno sia già una query MySQL (o funzione) che stanno utilizzando per questo o hanno molta più esperienza con i calcoli geospacial di me. Grazie in anticipo per il vostro aiuto!
Soluzione
Metodo C sembra essere fondamentalmente una media ponderata. La tua domanda è vicino a sintassi MySQL. Dato che questi sono formato decimale.
Se si dispone di pesi:
SELECT
SUM( longitude * weight ) / SUM( weight ) AS Avg_Long,
SUM( latitude * weight ) / SUM( weight ) AS Avg_Lat
FROM
points
oppure non ponderata:
SELECT
AVG( longitude ) AS Avg_Long,
AVG( latitude ) AS Avg_Lat
FROM
points
I tuoi allude riferimento al basale aggiustamenti, ma non sono sicuro che è necessario.