Pergunta

Eu estou tentando usar a API do Google Earth para criar uma visão simples do globo com um campo de pesquisa em que o usuário pode digitar um local. Quando batem movimento, o mundo vai ampliar o local que eles digitada.

Gostaria que o objectivo de estar olhando diretamente para baixo sobre a localização que especificou. Eu tentei o seguinte código:

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

Mas isso sempre vai para um pouco o local errado,

Foi útil?

Solução

Poderia ser simplesmente que você tem point.y e point.x da forma errada?

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

Na falta deste, quando você diz 'o usuário pode digitar um local' você quer dizer que você está geocodificação uma entrada? Por exemplo são os usuários que entram "New York" ou "M20 1LL", por exemplo? Se assim você deve perceber que geocodificação não é uma ciência exata e que os resultados nem sempre são precisos (especialmente com serviços de geocodificação livres).

Existem duas soluções reais, se este for o caso;

1) pagar para usar um serviço de geocodificação comercial para exatidão garantia.

2) Construa seu próprio banco de dados ou cache que contém as respostas do geocodificador pré-computados de lugares 'key'. http://code.google.com/apis/ maps / documentation / javascript / v2 / services.html # Geocoding_Caching

Entre o código é AOK ... além do duplo zero (00) para a inclinação ...

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);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top