PHP und SQL: Berechnen oder Abfragen des Großkreisabstands zwischen Längen- und Breitengraden mit der Haversine-Formel

Haversine-Formel - Berechnen Sie die Entfernung des Großkreises mit PHP oder MySQL

Diesen Monat habe ich in Bezug auf GIS ziemlich viel in PHP und MySQL programmiert. Als ich im Netz herumschnüffelte, fiel es mir tatsächlich schwer, einige davon zu finden Geografische Berechnungen Um die Entfernung zwischen zwei Orten zu finden, wollte ich sie hier teilen.

Flugkarte Europa mit großer Kreisentfernung

Die einfache Methode zur Berechnung eines Abstands zwischen zwei Punkten besteht darin, die Hypotenuse eines Dreiecks mithilfe der pythagoreischen Formel zu berechnen (A² + B² = C²). Dies ist als die bekannt Euklidische Entfernung.

Das ist ein interessanter Anfang, aber er gilt nicht für die Geographie, da der Abstand zwischen Längen- und Breitengraden groß ist nicht die gleiche Entfernung ein Teil. Wenn Sie sich dem Äquator nähern, werden die Breitengrade weiter voneinander entfernt. Wenn Sie eine einfache Triangulationsgleichung verwenden, kann diese die Entfernung an einem Ort genau und an der anderen aufgrund der Erdkrümmung furchtbar falsch messen.

Großkreisentfernung

Die Routen, die über weite Strecken um die Erde zurückgelegt werden, werden als bezeichnet Großkreisentfernung. Das heißt… der kürzeste Abstand zwischen zwei Punkten auf einer Kugel unterscheidet sich von den Punkten in einer flachen Karte. Kombinieren Sie das mit der Tatsache, dass die Längen- und Breitengrade nicht gleich weit voneinander entfernt sind… und Sie haben eine schwierige Berechnung.

Hier ist eine fantastische Video-Erklärung, wie Great Circles funktionieren.

Die Haversine-Formel

Der Abstand unter Verwendung der Erdkrümmung wird in die Haversine Formel, die Trigonometrie verwendet, um die Krümmung der Erde zu berücksichtigen. Wenn Sie den Abstand zwischen zwei Orten auf der Erde finden (in Luftlinie), ist eine gerade Linie wirklich ein Bogen.

Dies gilt für Flugreisen. Haben Sie sich jemals die aktuelle Flugkarte angesehen und festgestellt, dass sie gewölbt sind? Das liegt daran, dass es kürzer ist, in einem Bogen zwischen zwei Punkten zu fliegen als direkt zum Ort.

PHP: Berechnen Sie die Entfernung zwischen 2 Längen- und Breitengraden

Hier ist die PHP-Formel zur Berechnung des Abstands zwischen zwei Punkten (zusammen mit der Umrechnung von Meile in Kilometer), gerundet auf zwei Dezimalstellen.

function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'miles') {
  $theta = $longitude1 - $longitude2; 
  $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); 
  $distance = acos($distance); 
  $distance = rad2deg($distance); 
  $distance = $distance * 60 * 1.1515; 
  switch($unit) { 
    case 'miles': 
      break; 
    case 'kilometers' : 
      $distance = $distance * 1.609344; 
  } 
  return (round($distance,2)); 
}

SQL: Abrufen aller Datensätze innerhalb eines Bereichs durch Berechnen der Entfernung in Meilen mithilfe von Breite und Länge

Es ist auch möglich, mit SQL eine Berechnung durchzuführen, um alle Datensätze innerhalb einer bestimmten Entfernung zu finden. In diesem Beispiel werde ich MyTable in MySQL abfragen, um alle Datensätze zu finden, die kleiner oder gleich der variablen Entfernung (in Meilen) zu meinem Standort bei $ Breite und $ Länge sind:

Die Abfrage zum Abrufen aller Datensätze innerhalb eines bestimmten Abstand durch Berechnung der Entfernung in Meilen zwischen zwei Längen- und Breitengraden sind:

$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`)*pi()/180)))) * 180/pi()) * 60 * 1.1515) as distance FROM `table` WHERE distance <= ".$distance."

Sie müssen dies anpassen:

  • $ Länge - Dies ist eine PHP-Variable, bei der ich die Länge des Punktes übergebe.
  • $ Breitengrad - Dies ist eine PHP-Variable, bei der ich die Länge des Punktes übergebe.
  • $ Entfernung - Dies ist die Entfernung, über die Sie alle Datensätze kleiner oder gleich finden möchten.
  • Tabelle - Dies ist die Tabelle. Sie möchten diese durch Ihren Tabellennamen ersetzen.
  • Breite - Dies ist das Feld Ihres Breitengrads.
  • Länge - Dies ist das Feld Ihrer Länge.

SQL: Abrufen aller Datensätze innerhalb eines Bereichs durch Berechnung der Entfernung in Kilometern mithilfe von Breite und Länge

Und hier ist die SQL-Abfrage mit Kilometern in MySQL:

$query = "SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`latitude`*pi()/180)) + cos((".$latitude."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$longitude."- `longitude`) * pi()/180)))) * 180/pi()) * 60 * 1.1515 * 1.609344) as distance FROM `table` WHERE distance <= ".$distance."

Sie müssen dies anpassen:

  • $ Länge - Dies ist eine PHP-Variable, bei der ich die Länge des Punktes übergebe.
  • $ Breitengrad - Dies ist eine PHP-Variable, bei der ich die Länge des Punktes übergebe.
  • $ Entfernung - Dies ist die Entfernung, über die Sie alle Datensätze kleiner oder gleich finden möchten.
  • Tabelle - Dies ist die Tabelle. Sie möchten diese durch Ihren Tabellennamen ersetzen.
  • Breite - Dies ist das Feld Ihres Breitengrads.
  • Länge - Dies ist das Feld Ihrer Länge.

Ich habe diesen Code in einer Enterprise-Mapping-Plattform verwendet, die wir für ein Einzelhandelsgeschäft mit über 1,000 Standorten in Nordamerika verwendet haben, und er hat wunderbar funktioniert.

77 Kommentare

  1. 1

    Vielen Dank für das Teilen. Dies war ein einfacher Vorgang zum Kopieren und Einfügen und funktioniert hervorragend. Du hast mir viel Zeit gespart.
    Zu Ihrer Information für alle, die nach C portieren:
    double deg2rad (double deg) {return deg * (3.14159265358979323846 / 180.0); }}

  2. 2

    Sehr schönes Stück Posting - hat sehr gut funktioniert - ich musste nur den Namen des Tisches ändern, an dem sich der Lat-Long befindet. Es funktioniert ziemlich schnell zu .. Ich habe eine relativ kleine Anzahl von Lat-Longs (<400), aber ich denke, das würde gut skalieren. Schöne Seite auch - ich habe sie gerade zu meinem del.icio.us-Konto hinzugefügt und werde sie regelmäßig überprüfen.

  3. 4
  4. 5
  5. 8

    Ich denke, Ihr SQL braucht eine Aussage mit.
    anstelle von WHERE distance <= $ distance müssen Sie möglicherweise
    benutze HAVING distance <= $ distance

    Ansonsten danke, dass du mir viel Zeit und Energie gespart hast.

  6. 10
  7. 11
  8. 12

    Vielen Dank für das Teilen dieses Codes. Das hat mir viel Entwicklungszeit gespart. Vielen Dank auch an Ihre Leser für den Hinweis, dass für MySQL 5.x eine HAVING-Anweisung erforderlich ist. Sehr hilfreich.

  9. 14
  10. 15

    Hallo,

    Eine andere Frage. Gibt es eine Formel für NMEA-Zeichenfolgen wie die folgende?

    1342.7500, N, 10052.2287, E.

    $GPRMC,032731.000,A,1342.7500,N,10052.2287,E,0.40,106.01,101106,,*0B

    Vielen Dank,
    Harry

  11. 16

    Ich fand auch, dass WHERE bei mir nicht funktioniert hat. Es wurde in HAVING geändert und alles funktioniert perfekt. Zuerst habe ich die Kommentare nicht gelesen und sie mit einer verschachtelten Auswahl neu geschrieben. Beides wird gut funktionieren.

  12. 17
  13. 18

    Unglaublich hilfreich, vielen Dank! Ich hatte einige Probleme mit dem neuen "HAVING" und nicht mit "WHERE", aber als ich die Kommentare hier gelesen hatte (nach ungefähr einer halben Stunde frustrierter Zähneknirschen = P), funktionierte es gut. Danke ^ _ ^

  14. 19
  15. 20

    Beachten Sie, dass eine solche ausgewählte Anweisung sehr rechenintensiv und daher langsam ist. Wenn Sie viele dieser Fragen haben, kann es ziemlich schnell zu Problemen kommen.

    Ein viel weniger intensiver Ansatz besteht darin, eine erste (grobe) Auswahl unter Verwendung eines QUADRAT-Bereichs durchzuführen, der durch eine berechnete Entfernung definiert ist, dh „Wählen Sie * aus dem Tabellennamen, wobei der Breitengrad zwischen lat1 und lat2 und der Längengrad zwischen lon1 und lon2“. lat1 = Ziellatitude - latdiff, lat2 = Ziellatitude + latdiff, ähnlich wie lon. latdiff ~ = Entfernung / 111 (für km) oder Entfernung / 69 für Meilen, da 1 Breitengrad ~ 111 km beträgt (geringfügige Abweichung, da die Erde leicht oval ist, aber für diesen Zweck ausreicht). londiff = Entfernung / (abs (cos (deg2rad (Breitengrad)) * 111)) - oder 69 für Meilen (Sie können tatsächlich ein etwas größeres Quadrat nehmen, um Abweichungen zu berücksichtigen). Nehmen Sie dann das Ergebnis und führen Sie es in die radiale Auswahl ein. Vergessen Sie nur nicht, Koordinaten außerhalb der Grenzen zu berücksichtigen - dh der Bereich akzeptabler Längengrade beträgt -180 bis +180 und der Bereich akzeptabler Breitengrade beträgt -90 bis +90 - falls Ihr Latdiff oder London außerhalb dieses Bereichs verläuft . Beachten Sie, dass dies in den meisten Fällen möglicherweise nicht zutreffend ist, da es nur Berechnungen über eine Linie durch den Pazifischen Ozean von Pol zu Pol beeinflusst, obwohl es einen Teil von Chukotka und einen Teil von Alaska schneidet.

    Was wir damit erreichen, ist eine signifikante Reduzierung der Anzahl der Punkte, für die Sie diese Berechnung durchführen. Wenn Sie eine Million globale Punkte in der Datenbank haben, die ungefähr gleichmäßig verteilt sind und innerhalb von 100 km suchen möchten, hat Ihre erste (schnelle) Suche eine Fläche von 10000 km² und wird wahrscheinlich etwa 20 Ergebnisse liefern (basierend auf einer gleichmäßigen Verteilung über a Oberfläche von ca. 500 Mio. km²), was bedeutet, dass Sie die komplexe Entfernungsberechnung für diese Abfrage 20-mal anstatt millionenfach ausführen.

    • 21
      • 22

        Fantastischer Rat! Ich habe tatsächlich mit einem Entwickler zusammengearbeitet, der eine Funktion geschrieben hat, die das innere Quadrat gezogen hat, und dann eine rekursive Funktion, die 'Quadrate' um den Umfang herum erstellt hat, um die verbleibenden Punkte einzuschließen und auszuschließen. Das Ergebnis war ein unglaublich schnelles Ergebnis - er konnte Millionen von Punkten in Mikrosekunden auswerten.

        Mein Ansatz oben ist definitiv "grob", aber fähig. Danke noch einmal!

        • 23

          Doug,

          Ich habe versucht, mit MySQL und PHP zu bewerten, ob ein Lat-Long-Punkt innerhalb eines Polygons liegt. Wissen Sie, ob Ihr Entwicklerfreund Beispiele zur Ausführung dieser Aufgabe veröffentlicht hat? Oder kennen Sie gute Beispiele? Danke im Voraus.

  16. 24

    Hallo allerseits, dies ist meine Test-SQL-Anweisung:

    SELECT DISTINCT area_id, (
    (
    (
    acos( sin( ( 13.65 * pi( ) /180 ) ) * sin( (
    `lat_dec` * pi( ) /180 ) ) + cos( ( 13.65 * pi( ) /180 ) ) * cos( (
    `lat_dec` * pi( ) /180 )
    ) * cos( (
    ( 51.02 - `lon_dec` ) * pi( ) /180 )
    )
    )
    ) *180 / pi( )
    ) *60 * 1.1515 * 1.609344
    ) AS distance
    FROM `post_codes` WHERE distance <= 50

    und MySQL sagt mir, dass Distanz nicht als Spalte existiert, ich kann Reihenfolge verwenden, ich kann es ohne WO tun, und es funktioniert, aber nicht damit ...

  17. 26

    Das ist großartig, aber es ist genau so, wie die Vögel fliegen. Es wäre großartig zu versuchen, die Google Maps-API irgendwie in diese zu integrieren (möglicherweise über Straßen usw.), um eine Idee mit einem anderen Transportmittel zu vermitteln. Ich habe noch keine simulierte Glühfunktion in PHP erstellt, die eine effiziente Lösung für das Problem der reisenden Verkäufer bieten könnte. Aber ich denke, dass ich möglicherweise einen Teil Ihres Codes dazu wiederverwenden kann.

  18. 27
  19. 28

    Guter Artikel! Ich habe viele Artikel gefunden, die beschreiben, wie man den Abstand zwischen zwei Punkten berechnet, aber ich habe wirklich nach dem SQL-Snippet gesucht.

  20. 29
  21. 30
  22. 31
  23. 32
  24. 36

    2 Tage Recherche, um endlich diese Seite zu finden, die mein Problem löst. Sieht so aus, als würde ich mein WolframAlpha besser rausschmeißen und meine Mathematik auffrischen. Beim Wechsel von WHERE zu HAVING funktioniert mein Skript. VIELEN DANK

  25. 37
    • 38

      Danke Georgi. Ich habe immer wieder die Spalte 'Entfernung' gefunden. Sobald ich das WO in HABEN ändere, hat es wie ein Zauber funktioniert!

  26. 39

    Ich wünschte, dies wäre die erste Seite, die ich dazu gefunden hätte. Nachdem ich viele verschiedene Befehle ausprobiert hatte, war dies der einzige, der ordnungsgemäß funktionierte und nur minimale Änderungen an meiner eigenen Datenbank vornehmen musste.
    Thanks a lot!

  27. 40

    Ich wünschte, dies wäre die erste Seite, die ich dazu gefunden hätte. Nachdem ich viele verschiedene Befehle ausprobiert hatte, war dies der einzige, der ordnungsgemäß funktionierte und nur minimale Änderungen an meiner eigenen Datenbank vornehmen musste.
    Thanks a lot!

  28. 41
  29. 42
  30. 43
  31. 45
  32. 46
  33. 47
  34. 49
  35. 50
  36. 52
  37. 53
  38. 55
  39. 56
  40. 58

    Vielen Dank für die Veröffentlichung dieses hilfreichen Artikels.  
    aber aus irgendeinem Grund möchte ich fragen
    Wie erhalte ich den Abstand zwischen den Koordinaten innerhalb der MySQL-Datenbank und den vom Benutzer in PHP eingefügten Koordinaten?
    für klarer beschreiben:
    1. Der Benutzer muss [id] einfügen, um die angegebenen Daten aus der Datenbank und den Koordinaten des Benutzers selbst auszuwählen
    2. Die PHP-Datei ruft die Zieldaten (Koordinaten) mit [id] ab und berechnet dann die Entfernung zwischen Benutzer und Zielpunkt

    oder können Sie einfach Abstand zum folgenden Code erhalten?

    $ qry = "SELECT *, (((acos (sin ((". $ Latitude ") * pi () / 180)) * sin ((" Latitude "* pi () / 180)) + cos (("). $ Latitude. ”* pi () / 180)) * cos ((` Latitude` * pi () / 180)) * cos (((“. $ longitude.” - `Longitude`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) als Abstand FROM `MyTable` WHERE distance> =". $ Distance ". >>>> kann ich die Entfernung von hier "herausnehmen"?
    Danke noch einmal,
    Timmy S.

  41. 60

    ok, alles was ich versucht habe funktioniert nicht. Ich meine, was ich habe, funktioniert, aber die Entfernungen sind weit entfernt.

    Könnte jemand sehen, was mit diesem Code falsch ist?

    if (isset ($ _ POST ['submit'])) {$ z = $ _POST ['postleitzahl']; $ r = $ _POST ['Radius']; Echo “Ergebnisse für“. $ z; $ sql = mysql_query (“SELECT DISTINCT m.zipcode, m.MktName, m.LocAddSt, m.LocAddCity, m.LocAddState, m.x1, m.y1, m.verified, z1.lat, z2.lon, z1. city, z1.state FROM mrk m, zip z1, zip z2 WO m.zipcode = z1.zipcode AND z2.zipcode = $ z AND (3963 * acos (abgeschnitten (sin (z2.lat / 57.2958) * sin (m. y1 / 57.2958) + cos (z2.lat / 57.2958) * cos (m.y1 / 57.2958) * cos (m.x1 / 57.2958 - z2.lon / 57.2958), 8))) <= $ r ") oder sterben (mysql_error ()); while ($ row = mysql_fetch_array ($ sql)) {$ store1 = $ row ['MktName']. "”; $ store = $ row ['LocAddSt']. ””; $ store. = $ row ['LocAddCity']. ”,“. $ row ['LocAddState']. ” “. $ Row ['Postleitzahl']; $ latitude1 = $ row ['lat']; $ longitude1 = $ row ['lon']; $ latitude2 = $ row ['y1']; $ longitude2 = $ row ['x1']; $ city = $ row ['city']; $ state = $ row ['state']; $ dis = getnew ($ Latitude1, $ Longitude1, $ Latitude2, $ Longitude2, $ Unit = 'Mi'); // $ dis = distance ($ lat1, $ lon1, $ lat2, $ lon2); $ verified = $ row ['verifiziert']; if ($ verified == '1') {echo “”; echo "". $ store. ""; echo $ dis. " Meilen weit weg"; Echo ""; } else {echo "". $ store. ""; echo $ dis. " Meilen weit weg"; Echo ""; }}}

    mein functions.php Code
    Funktion getnew ($ Latitude1, $ Longitude1, $ Latitude2, $ Longitude2, $ Unit = 'Mi') {$ Theta = $ Longitude1 - $ Longitude2; $ distance = (sin (deg2rad ($ Latitude1)) * sin (deg2rad ($ Latitude2))) + (cos (deg2rad ($ Latitude1)) * cos (deg2rad ($ Latitude2)) * cos (Deg2rad ($ Theta)) ); $ distance = acos ($ distance); $ distance = rad2deg ($ distance); $ distance = $ distance * 60 * 1.1515; switch ($ unit) {case 'Mi': break; Fall 'Km': $ distance = $ distance * 1.609344; } return (rund ($ distance, 2)); }}

    Vielen Dank im Voraus

  42. 61
  43. 62

    Hey Douglas, toller Artikel. Ich fand Ihre Erklärung der geografischen Konzepte und des Codes wirklich interessant. Mein einziger Vorschlag wäre, den Code für die Anzeige zu platzieren und einzurücken (wie zum Beispiel Stackoverflow). Ich verstehe, dass Sie Platz sparen möchten, aber herkömmliche Codeabstände / Einrückungen würden es mir als Programmierer viel leichter machen, zu lesen und zu sezieren. Jedenfalls ist das eine kleine Sache. Mach weiter so.

  44. 64
  45. 65

    Hier erhalten wir bei Verwendung mit Funktion eine Art von Entfernung. Bei Verwendung der Abfrage wird die kommende andere Art von Entfernung verwendet

  46. 66
  47. 67
  48. 68
  49. 69
  50. 70

    Es scheint schneller zu sein (MySQL 5.9), die doppelte Formel in der Auswahl zu verwenden und wo:
    $ formel = “(((acos (sin ((“. $ latitude. ”* pi () / 180)) * sin ((` Latitude` * pi () / 180)) + cos ((“. $ width ”* Pi () / 180)) * cos ((` Latitude` * pi () / 180)) * cos (((“. $ Longitude.” - `Longitude`) * pi () / 180))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) ”;
    $ sql = 'SELECT *,'. $ Formel. ' als Abstand von Tabelle WHERE '.. $ Formel.' <= '. $ distance;

  51. 71
  52. 72

    Vielen Dank für die Scherung dieses Artikels. Es ist sehr hilfreich.
    PHP wurde zunächst als einfache Skriptplattform namens "Personal Home Page" erstellt. Heutzutage ist PHP (die Abkürzung für Hypertext Preprocessor) eine Alternative zur Active Server Pages (ASP) -Technologie von Microsoft.

    PHP ist eine Open Source-Server-seitige Sprache, die zum Erstellen dynamischer Webseiten verwendet wird. Es kann in HTML eingebettet werden. PHP wird normalerweise in Verbindung mit einer MySQL-Datenbank auf Linux / UNIX-Webservern verwendet. Es ist wahrscheinlich die beliebteste Skriptsprache.

  53. 73

    Ich habe festgestellt, dass die obige Lösung nicht richtig funktioniert.
    Ich muss wechseln zu:

    $ qqq = "SELECT *, (((acos (sin ((. $ Latitude." * pi () / 180)) * sin ((`latt` * pi () / 180)) + cos (("))). $ Latitude. “* pi () / 180)) * cos ((` latt` * pi () / 180)) * cos (((”. $ longitude.“ - `longt`) * pi () / 180) ))) * 180 / pi ()) * 60 * 1.1515) als Abstand von "Register";

  54. 75
  55. 76

    Hallo, bitte ich brauche wirklich deine Hilfe dazu.

    Ich habe eine Get-Anfrage an meinen Webserver gestellt http://localhost:8000/users/findusers/53.47792/-2.23389/20/
    53.47792 = $ Breite
    -2.23389 = $ longitude
    und 20 = die Entfernung, die ich abrufen möchte

    Mit Ihrer Formel werden jedoch alle Zeilen in meiner Datenbank abgerufen

    $ results = DB :: select (DB :: raw ("SELECT *, (((acos (sin ((". $ Latitude. "* pi () / 180))) * sin ((lat * pi () / 180) )) + cos ((". $ Breite". * pi () / 180)) * cos ((lat * pi () / 180)) * cos (((". $ Länge." - lng) * pi () ) / 180)))) * 180 / pi ()) * 60 * 1.1515 * 1.609344) als Abstand von Markern mit Abstand> = “. $ Abstand));

    [{"ID": 1, "Name": "Frankie Johnnie & Luigo Too", "Adresse": "939 W El Camino Real, Mountain View, CA", "lat": 37.386337280273, "lng": - 122.08582305908, "Entfernung": 16079.294719663}, {"id": 2, "name": "Amicis Ostküsten-Pizzeria", "Adresse": "790 Castro St, Mountain View, CA", "lat": 37.387138366699, "lng": -122.08323669434, "Entfernung": 16079.175940152}, {"ID": 3, "Name": "Kapps Pizza Bar & Grill", "Adresse": "191 Castro St, Mountain View, CA", "Lat": 37.393886566162, "Lng": - 122.07891845703, "distance": 16078.381373826}, {"id": 4, "name": "Round Table Pizza: Mountain View", "address": "570 N Shoreline Blvd, Mountain View, CA", "Lat": 37.402652740479, "lng": - 122.07935333252, "distance": 16077.420540582}, {"id": 5, "name": "Tony & Albas Pizza & Pasta", "address": "619 Escuela Ave, Mountain View, CA ”,” lat ”: 37.394012451172,” lng ”: - 122.09552764893,” distance ”: 16078.563225154}, {“ id ”: 6,” name ”:” Oregano's Wood-Fired Pizza ”,” address ”:” 4546 El Camino Real, Los Altos, CA "," lat ": 37.401725769043," lng ": - 122.11464691162," distance ": 16077.937560795}, {" id ”: 7,” name ”:” The Bars and Grills ”,” address ”:” 24 Whiteley Street, Manchester ”,” lat ”: 53.485118865967,” lng ”: - 2.1828699111938,” distance ”: 8038.7620112314}]

    Ich möchte nur Zeilen mit 20 Meilen abrufen, aber es bringt alle Zeilen. Bitte was mache ich falsch

  56. 77

    Ich suche nach einer ähnlichen Abfrage, bin aber etwas aufgestockt – kurz gesagt, alle Koordinaten innerhalb von 2 Meilen um jede Koordinate zu gruppieren und dann zu zählen, wie viele Koordinaten in jeder Gruppe sind, und nur eine Gruppe auszugeben, die die meisten Koordinaten hat – auch wenn Sie haben mehr als eine Gruppe unter den Gruppen mit den meisten Koordinaten – geben Sie einfach die zufällige Gruppe aus den Gruppen mit der gleichen größten Anzahl aus –

Was denken Sie?

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.