Визуализация данных в реальном времени с использованием любого API Земли - PullRequest
0 голосов
/ 25 мая 2009

Как создать что-то похожее на это видео (1-2 минуты http://www.ted.com/index.php/talks/sergey_brin_and_larry_page_on_google.html) с помощью "Google Планета Земля API" или другое?

Особенно: у меня есть онлайн-игра, и я хочу показывать динамические данные на некоторой «виртуальной земле». 3 типа объектов, меняющих свое состояние в режиме реального времени. Достаточно обновлять каждые 5 секунд. У меня уже есть открытый API для этого.

Проблема в том, что я не знаю, возможно ли нарисовать что-то вроде цветных линий из центра сферы и изменить их динамически.

Извините за абстрактный вопрос, но цель та же.

1 Ответ

3 голосов
/ 10 июня 2009

Что ж, если вы используете API-интерфейс Google Планета Земля (требуется установить плагин Google Планета Земля), вы можете просто создать группу вытянутых многоугольников. Например, если вы перейдете к интерактивному сэмплеру Earth API и вставите / запустите его:

var lookAt = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
var lat = lookAt.getLatitude();
var lng = lookAt.getLongitude();

// first create inner and outer boundaries
// outer boundary is a square
var outerBoundary = ge.createLinearRing('');
var coords = outerBoundary.getCoordinates();
coords.pushLatLngAlt(lat - 0.5, lng - 0.5, 1000000); 
coords.pushLatLngAlt(lat - 0.5, lng + 0.5, 1000000); 
coords.pushLatLngAlt(lat + 0.5, lng + 0.5, 1000000); 
coords.pushLatLngAlt(lat + 0.5, lng - 0.5, 1000000); 

// create the polygon and set its boundaries
var polygon = ge.createPolygon('');
polygon.setExtrude(true);
polygon.setAltitudeMode(ge.ALTITUDE_RELATIVE_TO_GROUND);
polygon.setOuterBoundary(outerBoundary);

// create the polygon placemark and add it to Earth
var polygonPlacemark = ge.createPlacemark('');
polygonPlacemark.setGeometry(polygon);
ge.getFeatures().appendChild(polygonPlacemark);

// persist the placemark for other interactive samples
window.placemark = polygonPlacemark;
window.polygonPlacemark = polygonPlacemark;

Вы увидите трехмерный многоугольник, вытесненный из земного шара.

С этим можно многое сделать; Я предлагаю поиграть с Earth API и KML (основой для геометрических примитивов в Earth API), посетив code.google.com/apis/earth и code.google.com/apis/kml.

...