2010-03-22 5 views
5

Ich habe eine Seite mit einer Karte mit einem Start- und Endort. Ich führe eine Route zwischen ihnen, um die schlaue Linie zu bekommen, die die Route zeigt. Ich benutze derzeit Bing, habe aber auch mit Google versucht. Ich würde gerne wissen, welche Zustände diese Route durchläuft, damit ich diese Zustände mit spezifischen Informationen überlagern kann.In welchen Staaten verläuft meine Route?

Alle Vorschläge, wie Sie dies erhalten, würden am meisten geschätzt werden.

Ich verwende das AJAX SDK für Bing und Google. Alle lokalen Sachen mit js/jquery behandeln.

Antwort

2

Sie können eine reverse geo-code Anfrage in der Google Maps API verwenden, um festzustellen, in welchem ​​Status sich ein bestimmter Punkt befindet. Ich kann mir vorstellen, dass Sie die mit der Routenanfrage zurückgegebenen Punkte verarbeiten und den Status für jede einzelne abrufen können.

Im v2 API, wäre dies:

results.AddressDetails.AdministrativeArea.AdministrativeAreaName 

Ich denke, das ist ein bisschen mehr intuitiv in v3 ist. Sie können die AddressComponents Array in den Ergebnissen untersuchen die geeignete Art zu finden:

{ 
    "long_name":"California", 
    "short_name":"CA", 
    "types":["administrative_area_level_1","political"] 
} 

Sie können die umgekehrte Geokodierung optimieren, indem divide mit und auf der Anordnung von Positionen auf der Strecke erobern (wenn der Staat das gleiche für die ist erste und mittlere Position, dann reverse Geocoding an den dazwischenliegenden Punkten nicht).

+0

Möglicherweise gibt es effizientere Möglichkeiten, dies zu tun (eine benutzerdefinierte Service vielleicht?) Und ich wäre daran interessiert, Alternativen zu sehen. Aber das war meine erste Reaktion auf das Problem. – RedBlueThing

+0

+1: Die teile und herrsche ist eine sehr gute Idee –

+0

@ daniel-vassallo Danke Daniel. – RedBlueThing

0

Sie könnten Ihren eigenen Dienst mit einem Shapefile und einer Bibliothek wie SharpMap oder einer Geodatabase wie mysql spatial, sql server spatial usw. erstellen. Dann müssen Sie nur eine Kreuzungsabfrage ausführen, um festzustellen, in welchem ​​Zustand Ihre Route verläuft. Dieser Ansatz würde für jedes Polygon-Set funktionieren, sodass Sie die Lösung problemlos auf Landkreise, Wahlbezirke, Schulbezirke usw. erweitern können.

1

Der MapQuest Directions-Webdienst verfügt über ein stateBoundaryDisplay-Flag, das explizit die Grenzübergänge markiert. Übergang in den Staatsnamen ") in der Erzählung. Sie könnten einfach diese Information aus der json/xml-Antwort mit einer Textsuche der Erzählschritte ziehen.

http://www.mapquestapi.com/directions/#advancedoptions

Hoffnung, das hilft.

Roman