Местоположение карты Google отображается в историческом реальном времени

Я заинтересован в добавлении функции Google Maps в программу, которую я пишу. Я бы начал с исторического файла журнала GPS, содержащего запись о моем изменении местоположения GPS и даты/времени, например, когда я еду по дороге. Позже я хотел бы передать этот файл журнала в программу Windows, которая будет отображать позицию GPS в виде маркера в центре карты Google, которая отображается в окне на экране. Карта Google будет автоматически прокручиваться по горизонтали или вертикали в историческом «реальном времени» по мере изменения положения GPS, так что маркер всегда остается в центре карты.

Ниже приведено видео YouTube существующей программы, которая уже делает именно то, что я хочу, поэтому это должно быть возможно (это панель в правом нижнем углу видеокадра).

http://www.youtube.com/watch?feature=player_embedded&v=r4rwMV7hhaY#at=840

По сути, пользователь будет воспроизводить свои записанные движения в режиме реального времени, сделанные несколько дней или месяцев назад. Это не для отслеживания текущих перемещений.

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

Существуют ли какие-либо готовые модули, которые уже делают это (возможно, просто передают ему список координат и времени)?

Если нет, то какой API мне нужно использовать, чтобы воспроизвести поведение карты, показанное в видео?

Также есть ли какие-либо проблемы с лицензированием при выполнении этого в настольной программе, которую будет видеть только 1 пользователь, а не на общедоступном веб-сайте?


person appleton    schedule 29.02.2012    source источник
comment
Вы можете сделать это в браузере. Требования к рабочему столу/Windows являются вашими собственными? Вы бы превратили данные в массив, а затем прокручивали, удаляя и перерисовывая маркер и каждый раз центрируя карту.   -  person Robot Woods    schedule 29.02.2012


Ответы (1)


Я использовал API Карт Google для создания встроенного окна GPS, подобного тому, на которое вы ссылаетесь в своей ссылке, но в основном это было встраивание окна браузера и его привязка к Картам Google. Вы можете сами управлять данными и прокачивать их в браузер. Это можно сделать локально.

Вам нужно будет сделать несколько вещей.

  1. Определите сценарии карты (с файлом html/Javascript). Эти сценарии позволят вам обновить местоположение, отображаемое на карте, которое вы подключите к коду для управления.

  2. В вашем графическом интерфейсе определите объект браузера и настройте его для перехода к созданному вами html-файлу, а затем используйте документную часть этого объекта для вызова сценариев.

После этого вы сможете контролировать местоположение GPS. Ссылка на Google Maps API содержится в вашем html-файле. Этот html-файл является ключевым, он должен иметь все функции, которые вы хотите использовать для обновления местоположения GPS и отображения его на карте.

Что касается готовых модулей и/или лицензирования, я не знаю.

person GlazedHam    schedule 29.02.2012
comment
Спасибо. Это подтверждает некоторые вещи, о которых я догадывался - хотя еще нужно много читать! Еще пара вопросов - то есть вы будете сообщать объекту браузера, когда обновлять карту, а не автоматически обновлять браузер каждую (скажем) 1 секунду? Как бы вы передавали новые координаты объекту браузера каждый раз, когда их нужно изменить - есть ли интерфейс сокета или что-то подобное? - person appleton; 29.02.2012
comment
Функция обновления будет записана в файле Javascript. Зависит от того, как вы хотите справиться с этим. Вы можете выполнить автоматическое обновление, если какой-нибудь фоновый поток (для C# я использую таймеры) вызывает эту функцию, используя что-то вроде... myBrowser.Document.InvokeScript(func_name, object[] args) Итак нет интерфейса сокета или чего-то еще. Функция InvokeScript позволяет передавать массивы объектов в качестве параметров вызываемой функции. Что касается автоматического обновления, я отказался от него, потому что оно было очень глючным, но, вероятно, это связано с моей высокой частотой обновления (например, 60 Гц). 1 Гц наверное нормально. - person GlazedHam; 02.03.2012