Frage

Lassen Sie uns sagen, dass ich eine Tabelle der Zeilen, die Koordinaten enthalten.

Was wäre der beste Weg, um nur die Zeilen von Koordinaten zu ziehen, die im Umkreis von einem anderen sind koordinieren?

meine Frage zu vereinfachen, ich gebe das folgende Beispiel:

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

In einer SQL-Anweisung, wie bekomme ich die Zeilen von Koordinaten, die zum Beispiel im Radius von Row3 sind?

War es hilfreich?

Lösung

Die Post zeigt, wie diese in SQL Server tun.

Und hier ist, wie es in MySQL zu tun:

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

Andere Tipps

sieht aus wie der Abstand Formel lautet:

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)

, wobei Y und Z - sind Punkte jeder Zeile Sie whant zu testen, und y und z - sind Punkte von Beispiel Zeilen

.

, so dass Sie so etwas machen könnten:

  1. jede Zeile in der Tabelle auswählen und ihre lon und lat erhalten.
  2. anwenden Abfrage von , $lon und $lat Daten Form Punkt zu ändern 1.

Ich weiß nicht, wie dies in dem Zugang zu machen. Aber diese Art und Weise ist, wie Straße so langsam.

Was meinen Sie, indem Sie im Radius von? Haben Sie in einem Abstand übergeben wollen, sagen wir 5 Meilen, und finden Sie alle Zeilen innerhalb von 5 Meilen von Zeile x?

Das ist echt toll, wenn so http: // www. microsoft.com/sqlserver/2008/en/us/spatial-data.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top