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!

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top