2016-04-24 8 views
0

Ich möchte Foto basierend auf Standort (lat/lon) auswählen, wenn jemand anderes nach Land oder Stadt sucht. ZB: Foto's Standort ist 12.127, 42.127 -> Anfrage ist "San Francisco" -> wählen Sie Punkte in diesem Bereich (ein gutes Beispiel ist Instagram, wo ein Foto mit Stadt + Land verbunden ist)MySQL - Finden Sie Punkte mit räumlichen Polygonen (Grenzen)

Im Moment bin ich auf der Suche Verwenden von Polygonen zum Suchen von Orten basierend auf Stadt/Land. Ich bin mir jedoch nicht sicher, wie ich Polygone in meiner Datenbank verwenden und speichern kann.

Hier sind meine visuellen Schritte (nicht sicher, ob das Recht technisch ist)

  1. Get Polygone/Bereiche basierend auf Stadt/Land von table1
  2. Finden Punkten von table2 innerhalb des Polygons von table1

Wenn diese Schritte korrekt sind, konnte ich keine Ressourcen finden, um Polygone für Städte oder Länder zu erhalten

Bitte geben Sie einige Beispiele + Tabellenstrukturen und Erklärungen, wie diese

Dank implementieren :)

+0

es klingt nicht wie etwas, das Sie mit SQL lösen möchten. können Sie Google Maps API verwenden? Lesen Sie "Geocoding"? https://developers.google.com/maps/documentation/geocoding/intro#Geocoding https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingResults – yuan3y

+0

@ yuan3y Ich dachte über die Verwendung von 'Radius Funktion, aber das wird nicht genau sein, weil tatsächliche Grenzen variieren können ... – user6227254

Antwort

0

Mysql seit geraumer Zeit hat geospatial Datentypen und Funktionen wurden unterstützt.

Sie können eine Stadt oder einen anderen Ort als Polygon speichern und Sie können eine der Within() or Contains() Funktionen (es gibt jeweils 3) verwenden, um zu testen, ob sich ein Punkt in einer Stadt befindet.

Mysql Dokumentation enthält eine große Anzahl von Beispielen zu den Datentypen und Funktionen. Sie können auch freie und nicht freie Quellen im Internet finden, die die Koordinaten verschiedener Großstädte enthalten. Das Empfehlen von Offsite-Ressourcen gehört nicht zum Thema von SO, daher werde ich keine Empfehlungen geben.

Verwandte Themen