2009-06-29 17 views
3

J'essaie d'utiliser l'API Google Earth pour créer une vue simple du globe avec un champ de recherche dans lequel l'utilisateur peut taper un emplacement. Quand ils frappent aller, le globe va zoomer sur l'endroit où ils ont tapé.Rechercher un lieu avec l'API Google Earth

Je voudrais que la vue regarde directement vers le bas sur l'emplacement qu'ils ont spécifié. J'ai essayé le code suivant:

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

Mais cela va toujours un peu au mauvais endroit,

Répondre

2

Serait-ce simplement que vous avez point.y et point.x dans le mauvais sens? A défaut, lorsque vous dites «l'utilisateur peut taper un emplacement», voulez-vous dire que vous géocodez une entrée? Par exemple, les utilisateurs qui entrent "New York" ou "M20 1LL" par exemple? Si c'est le cas, sachez que le géocodage n'est pas une science exacte et que les résultats ne sont pas toujours précis (en particulier avec les services de géocodage gratuits).

Il existe deux solutions réelles si c'est le cas;

1) Payer pour utiliser un service de géocodage commercial pour garantir l'exactitude.

2) Construisez votre propre base de données ou cache qui contient des réponses de géocodeur pré-calculées d'endroits «clés». http://code.google.com/apis/maps/documentation/javascript/v2/services.html#Geocoding_Caching

BTW le code semble AOK ... à part le double zéro (00) pour l'inclinaison ...

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);