Вопрос

Я пытаюсь использовать Google Earth API для создания простого представления земного шара с полем поиска, в котором пользователь может ввести местоположение.Когда они нажмут кнопку перейти, глобус увеличит местоположение, которое они ввели.

Я бы хотел, чтобы вид был направлен прямо вниз на указанное ими место.Я попробовал следующий код:

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

Но это всегда происходит немного не в том месте,

Это было полезно?

Решение

Может быть, просто у вас есть point.y и point.x в неправильном направлении?

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

В противном случае, когда вы говорите "пользователь может ввести местоположение", имеете ли вы в виду, что вы геокодируете запись?Например, вводят ли пользователи, например, "Нью-Йорк" или "M20 1LL"?Если это так, вы должны понимать, что геокодирование не является точной наукой и что результаты не всегда точны (особенно при использовании бесплатных сервисов геокодирования).

Если это так, то есть два реальных решения;

1) Заплатите за использование коммерческой услуги геокодирования, чтобы гарантировать точность.

2) Создайте свою собственную базу данных или кэш, содержащий предварительно вычисленные ответы геокодера "ключевых" мест.http://code.google.com/apis/maps/documentation/javascript/v2/services.html#Geocoding_Caching

Кстати, код выглядит нормально ... если не считать двойного нуля (00) для наклона...

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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top