Domanda

Diciamo che ho una tabella di righe che contengono le coordinate.

Quale sarebbe il modo migliore per tirare solo le righe di coordinate che sono nel raggio di un'altra coordinate?

Per semplificare la mia domanda, sto dando il seguente esempio:

Table like:
Columns: Latitude, Longitude.
Row1:    23.44444  24.55555
Row2:    32.44444  28.22222
Row3:    35.11111  32.12345

In un'istruzione SQL, come faccio ad ottenere le file di coordinate che sono nel raggio di Row3 per esempio?

È stato utile?

Soluzione

posta mostra come fare questo in SQL Server.

E qui è come farlo in MySQL:

SELECT ((ACOS(SIN($lat * PI() / 180) * SIN(lat * PI() / 180) + 
         COS($lat * PI() / 180) * COS(lat * PI() / 180) * COS(($lon - lon) * 
         PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance 
FROM members 
HAVING distance<='10' ORDER BY distance ASC

Altri suggerimenti

si presenta come la formula della distanza è:

D = 60* 1.1515 * acos (sin(pi*y/180) * sin(pi*Y/180) +
                       cos(pi*y/180) * cos(pi*Y/180) * cos((z-Z) *pi / 180) 
                 )  * 180 / pi)

dove Y e Z - sono punti di ogni riga si whant verificare e yez - sono punti di esempio riga

.

così si potrebbe fare una cosa del genere:

  1. selezionare ogni riga nella tabella e ottenere il suo lon e lat.
  2. questo , cambiando $lon e $lat al modulo dati punto 1.

Non so come fare questo nell'accesso. Ma in questo modo è come stretto lento.

Che cosa si intende per nel raggio di? Volete passare una distanza, diciamo 5 miglia, e trovare tutte le righe a 5 miglia di fila x?

Check this out in caso affermativo http: // www. microsoft.com/sqlserver/2008/en/us/spatial-data.aspx

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