2009-06-29 12 views
3

Ich versuche die Google Earth-API zu verwenden, um eine einfache Ansicht des Globus mit einem Suchfeld zu erstellen, in dem der Benutzer einen Standort eingeben kann. Wenn sie loslegen, zoomt der Globus den Ort ein, an dem sie getippt haben.Standort mit Google Earth API betrachten

Ich möchte, dass die Ansicht direkt auf den Ort zeigt, den sie angegeben haben. Ich habe den folgenden Code versucht:

var lookAt = ge.createLookAt(''); 
lookAt.set(point.y, point.x, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 00, 0); 
ge.getView().setAbstractView(lookAt); 

Aber das geht immer leicht die falsche Stelle,

Antwort

2

Könnte es einfach sein, dass Sie point.y haben und point.x falsch herum?

// latitude, longitude, altitude, altitudeMode, heading, tilt, range 
lookAt.set(point.x, point.y, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 0); 

Gelingt das nicht, wenn Sie sagen, ‚kann der Benutzer einen Ort geben‘ meinen Sie Sie einen Eintrag Geocodierung? Zum Beispiel geben die Benutzer beispielsweise "New York" oder "M20 1LL" ein? Wenn ja, sollten Sie erkennen, dass Geocoding keine exakte Wissenschaft ist und dass die Ergebnisse nicht immer genau sind (besonders bei kostenlosen Geocoding-Diensten).

Es gibt zwei echte Lösungen, wenn dies der Fall ist;

1) Bezahlen Sie, um einen kommerziellen Geokodierungsdienst zu verwenden, um die Genauigkeit zu gewährleisten.

2) Erstellen Sie eine eigene Datenbank oder einen Cache, der vorberechnete Geocoder-Antworten von Schlüsselstellen enthält. http://code.google.com/apis/maps/documentation/javascript/v2/services.html#Geocoding_Caching

BTW sieht der Code AOK ... abgesehen von der Doppel-Null (00) für die Neigungs ...

var lookAt = ge.createLookAt(''); 

// latitude, longitude, altitude, altitudeMode, heading, tilt, range 
lookAt.set(point.y, point.x, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 0); 

ge.getView().setAbstractView(lookAt); 
Verwandte Themen