Построение траектории с течением времени (фильм) с помощью Google Планета Земля / Карты - PullRequest
2 голосов
/ 01 августа 2009

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

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

Есть предложения?

РЕДАКТИРОВАТЬ: Теперь построение графика выполнимо, а преобразование не благодаря Дэвид

Ответы [ 3 ]

2 голосов
/ 01 августа 2009

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

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

1 голос
/ 01 августа 2009

Таким образом, у вас есть начальная точка (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 .

* * 1020 Изменить: * * 1021

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

1 голос
/ 01 августа 2009

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

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

...