2010-07-03 3 views
5

Ich erstelle eine Webanwendung, für die Benutzer ihren Standort angeben müssen (ähnlich wie Facebook). Ich bin mir nicht sicher, wie ich das am besten umsetzen kann. Ich benötige die Fähigkeit, Datensätze einer anderen Entität zu durchsuchen (nennen Sie sie "Ereignisse"), an die auch ein physischer Standort gebunden ist, und die Benutzer am gleichen oder nahe genug gelegenen Ort abzugleichen. Ich benötige nur eine Lösung für einzelne Städte.Best Practices für den physischen Standort des Benutzers (Eingabe, Datentyp, Anzeige und Überprüfung)

Die Art, wie ich dem Benutzer erlaube, seinen/ihren Standort anzugeben (einschließlich Validierung und wie Freiform würde ich diese Eingabe zulassen), die Art und Weise, dieses Feld in der DB usw. zu speichern, hängen offensichtlich voneinander ab. Mein derzeitiger Gedanke ist es, einen freien Eintrag zuzulassen, als eine Textzeichenfolge zu speichern und eine Übereinstimmung zu finden, indem die Ortszeichenfolge in ein Array (getrennt durch Kommas und Punktzeichen) aufgeteilt wird und dann das Benutzerpositionsarray mit dem Ereignisortsarray verglichen wird.

Gibt es eine Möglichkeit, dass ich das Problem für mich selbst lösen kann, indem ich mich gegen eine Liste von Standorten wende, die von einem Webdienst bereitgestellt werden? Wie werden diese Probleme normalerweise behandelt?

Jede Hilfe würde sehr geschätzt werden!

Antwort

2

Ich denke, Ihr Ansatz kann akzeptabel sein, abhängig von der Genauigkeit, die Sie benötigen.

Ein genauerer (und wahrscheinlich komplexerer) Ansatz wäre es, alle Standorte in Koordinaten zu speichern. Sie können einen Geolocation-Webservice verwenden (ich glaube, Google stellt auch einen anderen zur Verfügung), um Ortsnamen in Koordinaten abzubilden. Sie können auch IP-basierte Geolokalisierung verwenden, um zu erraten, wo sich der Benutzer befindet, damit er nicht unbedingt seine eigene Adresse eingeben muss.

Es gibt Formeln (und wahrscheinlich Bibliotheken) für die Berechnung der Abstände zwischen den Koordinaten zueinander, was es einfacher machen würde, Dinge innerhalb eines bestimmten Radius von den Koordinaten des Benutzers und solche Sachen anzuzeigen.

Sie auch die neue HTML5 geolocation API mit, die von den neuesten Browser

+0

+1 für Geolocation-API – Gordon

+0

Ich bin mir nicht sicher, wie die Geolocation-API mir helfen kann - wenn der Benutzer einen ungültigen Standort angibt, der nicht mit der API validiert wird, dann ein Abstandsmaß zwischen dem Benutzer und dem Standort des Ereignisses (was mit einer Straßenadresse/Google Location API 'place' viel besser spezifiziert werden soll ist nicht möglich. – ubermensch

+0

Sie können die geo-API verwenden, um den Standort des Benutzers von Geräten wie dem iPhone zu ermitteln, ohne dass sie ihren genauen Standort manuell eingeben müssen. Natürlich kann es für Sie nützlich sein oder auch nicht, abhängig von der Art der Anwendung, an der Sie gerade arbeiten. –

0

Wenn Sie Dinge wie „Filter Benutzer nach Ort“ tun müssen, unterstützt in Erwägung ziehen könnte, dann ist es am besten (glaube ich) eine vordefinierte Liste haben der Standorte, aus denen die Benutzer auswählen (mit einer Eingabe, die Sie vorschlagen, wie Sie sie eingeben, anstelle einer Dropdown-Liste mit z. B. Tausenden von Standorten).

Sie könnten mit den Daten von http://www.geonames.org/ beginnen (Sie müssten wahrscheinlich etwas aufräumen).

Alternativ können Sie mit einer leeren Datenbank beginnen. Je mehr Orte von den Benutzern eingegeben werden, desto mehr Orte müssen Sie den nächsten Benutzern vorschlagen, damit sie keine doppelten Variationen desselben Standorts einfügen.

Verwandte Themen