Построение траектории во времени (фильм) с помощью Google Планета Земля / Карты

StackOverflow https://stackoverflow.com/questions/1215026

Вопрос

У меня есть набор точек, начинающихся с (0,0,0), отображающих путь, пройденный транспортным средством в 3D, причем каждая точка представляет собой пройденное расстояние в соответствующем измерении.Мне нужно сделать 2 вещи

  1. Пусть (0,0,0) обозначает широту и долготу.Как мне преобразовать мой набор точек в 3D в его эквивалент по широте и долготе?
  2. Нанесите это покадрово (с задержкой, чтобы можно было использовать для видео) на Google Maps / Earth / что угодно

Есть какие-нибудь предложения?

Редактировать:Теперь построение графика выполнимо, а преобразование происходит не благодаря Дэвид

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

Решение

Было бы легко использовать JavaScript для анимации точек, перемещающихся по карте Google в вашем браузере. Я не уверен, какое видео вы пытаетесь получить.

В Картах Google даже есть метод API, который отображает карту с вашим путем, нарисованным над картой. Об этом можно прочитать здесь внизу страницы.

Другие советы

Для Google Планета Земля отличный пример здесь . : прокрутите вниз до " Пример: отображение движения точки вдоль пути "

Для API Карт Google Этот пример был в Демо-галерея Карт Google . Это немного грубо, но вы получаете представление о том, что вы могли бы сделать.

Итак, у вас есть начальная точка (0,0) в одной (произвольной) системе координат и соответствующая точка (широта, долгота) в другой (геоцентрической) системе координат.Ваша проблема в том, что, учитывая набор известных смещений (x, y) от вашего источника, как вы находите соответствующие точки (широта, долгота)?(Правильно ли я понял ваш вопрос на данный момент?)

Простой ответ заключается в том, чтобы просто использовать формулу:

lat2 = asin(sin(lat1)*cos(d/R) + cos(lat1)*sin(d/R)*cos(θ))
lon2 = lon1 + atan2(sin(θ)*sin(d/R)*cos(lat1), cos(d/R)−sin(lat1)*sin(lat2))
d/R is the angular distance (in radians), where d is the distance travelled and R is the earth’s radius

Взято по этой ссылке: http://www.movable-type.co.uk/scripts/latlong.html

Правка 2:(О, я забыл упомянуть:эта формула предполагает, что у вас есть полярные координаты (R, θ) вместо декартовых координат (x, y).Но преобразование между ними - это не слишком усердно.)

Чуть более длинный ответ заключается в том, что если вы делаете это на достаточно большом пространстве, математика становится очень сложной из-за того, как измеряется высота и как формируется поверхность земли.Вы, вероятно, захотите почитать о географических системах координат; эта статья в Википедии это хорошая отправная точка.Вы также можете найти Библиотека PROJ.4 полезный.

Редактировать:

Если вам нужно учитывать измерения высоты (z), математика становится еще более сложной.Простое (ier) решение состоит в том, чтобы выполнить математику в 2,5 измерениях, то есть вычислить координату (x, y) с помощью одного набора формул, а затем вычислить координату (z) отдельно.Это работает только на достаточно небольшой площади, поскольку вы, по сути, предполагаете, что поверхность земли плоская для пространства, в котором вы работаете.Однако этого может быть достаточно для вашего приложения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top