Come utilizzare SQL per determinare le più vicine coordinate XY

April 12

Come utilizzare SQL per determinare le più vicine coordinate XY


I database alimentare i migliori aziende e siti web nel mondo di oggi, che consente di eseguire query efficiente di grandi quantità di dati. Structured Query Language è usato per recuperare informazioni da banche dati. informazioni spaziali, come ad esempio coordinate sono comunemente memorizzate nei database. È possibile trovare la voce in un database che è più vicino a una specifica posizione utilizzando SQL con poche righe di codice.

istruzione

1 Utilizzare i nomi di colonna corretti dal database nella query oppure la ricerca restituisce un errore. Per esempio, la seguente query restituirà una singola riga con i nomi di colonna della tabella denominata "MyTable":

SELEZIONE TOP 1 * from Tabella

Notare i nomi delle colonne che contengono le informazioni di posizione.

2 Prendere la distanza tra due punti in posizioni (X1, Y1) e (X2, Y2) dato come:

((X1 - X2) ^ 2 + (Y1 - Y2)) ^ 2

Supponendo che le informazioni spaziali è memorizzato nella tabella denominata "mytable" nelle colonne denominate "POSX" e "POSY", la seguente query restituirà i dati che è più vicino al punto in coordinate X = 10,0, Y = 10,0:

SELEZIONE TOP 1 *, ((POSX - 10.0) ^ 2 + (POSY - 10.0)) ^ 0.5 come distanza dal mytable

Regolare i valori X e Y per riflettere la posizione del punto in questione.

3 Input seguente query se più di un valore si desidera restituire le 20 righe più vicini nel tavolo più vicino al punto X = 10,0, Y = 10,0:

SELECT *, ((POSX - 10.0) ^ 2 + (POSY - 10.0)) ^ 0.5 come distanza dal ORDER BY MyTable Distanza LIMIT 20

Consigli e avvertenze

  • Se siete alla ricerca per la latitudine e la longitudine più vicino, si deve prendere la curvatura della Terra in considerazione. La formula haversine, noto anche come "distanza ortodromica" deve essere usato al posto della formula di cui sopra.