2016-04-26 9 views
0

Ich versuche, location-Tag wie Instagram zu bauen ...MySQL - Speicher koordinieren Duplikate zu vermeiden

I Koordinaten basierend auf Google-API-Funktion getBounds() wie folgt wählen:
(Anmerkung: swlat, swlng, nwlat, nwlng = a, b, c, d)

SELECT * FROM table WHERE 
    (a < c AND lat BETWEEN a AND c) OR (c < a AND lat BETWEEN c AND a) 
    AND 
    (b < d AND lng BETWEEN b AND d) OR (d < b AND lng BETWEEN d AND b) 

Bevor Koordinaten EINSETZEN, überprüfen I, wenn die Daten in der Tabelle vorhanden ist, um Duplikate zu vermeiden. Allerdings ist das Problem Google Api und MapKit geben Sie verschiedene Koordinaten zurück, wenn Sie einen bestimmten Ort suchen.

Im Moment Ich speichere name des Standortes, um auf Duplikate zu prüfen. Welche könnte funktionieren, aber vielleicht ist es eine bessere Art und Weise :)

So meine Fragen sind:

  • wie kann ich speichern Koordinaten als weniger Duplikate wie möglich zu vermeiden. Vielleicht gibt es eine Kennung wie "place_id" (in Google API), die für beide Fälle funktionieren könnte, wenn Google Api oder MapKit verwenden
  • muss ich wirklich Standortnamen speichern, verwendet Instagram eine API, um Details über den Standort zu erhalten?

Thanks :)

Antwort

0

Die Lösung ist wirklich, wie Sie Ihre eigene Datenbank implementieren - es gibt nur einen Ort für jede lat/lng Koordinate gegeben ist. Sie können Google oder MapKit jedoch nicht zur Änderung zwingen. daher werden Sie immer mit dieser Diskrepanz festhalten, und eine Suche nach einem möglichen Textwertnamen = wie '% placename%' wird immer eine geringe Leistung haben und nicht so genau garantiert, wie Sie sich zu Recht Sorgen machen. Ich würde daher vorschlagen, dass Sie separate "Locations" -Tabellen für Google und MapKit erstellen und sie vom Benutzer über die Benutzeroberfläche filtern lassen. Es wird auch empfohlen, die Lat- und lng-Spalten für jeden zu indizieren.

+0

Leistung weise, Speicherort des Namens oder verwenden Sie API? das Problem ist, wenn ich API benutze, dann müssen Sie Stadt und öffentliche Plätze in getrennten Reihen speichern, weil Sie nie wissen, was api Ihnen gibt ... Anmerkung: Ich möchte auch Fälle betrachten, wenn wir sagen, dass ein Geschäft seinen Standort ändert, dann Am besten finde ich 'name', um nach Änderungen zu suchen ... danke :) – user6227254

Verwandte Themen