gmlib-delphiПривет дорогие друзья. Сегодня наша статья будет связана с одной интересной библиотекой, которая имеет название GMLib (Google Maps Library). В состав данной библиотеки входят компоненты, которые работают с Google Maps API, способные администрировать карту, расставлять различные маркеры, полигоны, прямоугольники, а также различные ломанные и кривые линии. Компоненты данной библиотеки легко устанавливаются на Delphi или C++ Builder, которые управляют Google картами, а результат выводят в браузер (TWebBrowser).

Данную библиотеку я рассматривал, так как хотел сравнить ее с MapWindow GIS, хотя сравнивать их глупо, так как в MapWindow GIS мы можем создать собственную карту, с собственной структурой, а используя данную библиотеку, мы будем работать только лишь с картами Google, то есть уже существующей местности. Одним преимуществом GMLib является то, что с помощью данной библиотеки можно хорошо управлять картой от Google, причем все это можно делать в интерактивном режиме.

Скачать библиотеку можно на странице библиотеки GMLib. Устанавливать ее легко, в принципе, как и большинство библиотек и компонент, поэтому тут вопросов возникнуть не должно (инструкцию по установке можно найти в файле Install.txt). После установки у Вас появится новая вкладка с компонентами GoogleMaps, на которой будут присутствовать следующие компоненты:

  • TGMMap – непосредственно для работы с Google Maps. Для отображения карт, используется компонент браузера, например TWebBrowser или же TChronium.
  • TGMMarker – компонент, с помощью которого проставляются маркеры на карте.
  • TGMPolyline – данный компонент предназначен для рисования полигональных линий на карте.
  • TGMPolygon – предназначен для рисования полигонов на карте.
  • TGMRectangle – компонент, с помощью которого рисуются прямоугольники на карте.
  • TGMCircle – компонент, с помощью которого можно рисовать круги (окружности) на картах Google Maps.
  • TGMDirection – компонент для определения маршрутов.
  • TGMGeoCode – компонент геокодирования.

Вместе с библиотекой поставляется документационная справка, в формате CHM на двух языках:

  • Английский
  • Испанский

Кроме этого, в проекте присутствует демонстрационные проекты, которые Вы можете посмотреть, как работает библиотека.

Библиотека GMLib совместима с FireMonkey, а также по умолчанию скомпилирована под компонент TWebBrowser, это, наверное, в первую очередь связано с тем, что именно данный компонент браузера поставляется в Delphi по умолчанию. Последняя версия библиотеки – 1.0.0, которая была выпущена 15 апреля 2013 года.

gmllib-v-delphi_1gmllib-v-delphi_2

 

 

 

 

 

 

 

В сети довольно много демонстрационных проектов, в которых показано как работать с картами Google в проектах Delphi, но с помощью данных компонент, Вы сможете облегчить себе задачу.

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

  • \ChangesLog.txt
  • \Install.txt=> инструкция по установке
  • \ProjectGroup
  • \Demos=> папка с демонстрационными проектами
  • \Docs => документация классов, которые учавствуют в создании компонентов
  • \Classes => UML-диаграммы классов
  • \GMDoc => документация в формате CHM
  • \dpk => пакет компонент
  • \lib
  • \Licence => лицензия, лицензионное соглашение
  • \Resources => ресурсы проекта: картинки, файлы ресурсов, HTML-карты
  • \src => компоненты

Данная библиотека скомпилирована и доступна для следующих версий сред разработки:

  • Delphi 6
  • Delphi 7
  • Delphi 2007
  • Delphi 2009
  • Delphi 2010
  • Delphi и C + + Builder XE
  • Delphi и C + + Builder XE2
  • Delphi и C + + Builder XE3

Если Вы хотите быстро и просто использовать карты Google в проекте Delphi, то данная библиотека специально для Вас, если Вы хотите создавать свои собственные географические данные, то оставайтесь верны MapWindow GIS, либо же другой системе. Что касается библиотеки GMLib, то я бы мог выпускать уроки по ней, в стили MapWindow GIS, если есть необходимость такая, но, наверное, такой нет необходимости, так как в поставке с библиотекой присутствуют демонстрационные проекты, показывающие суть работы с данными компонентами. Еще я думаю включить данную библиотеку в свой проект по MapWindow GIS, который позволит работать с интерактивными картами Google, чтобы не мучиться со статическими картами, как это было с Яндексом.

Метки: , ,




К записи “Библиотека GMLib. Работа с интерактивными картами Google в Delphi” оставлено комментариев: 22.

  1. Cat:

    Большое спасибо!
    Для тех кто использует С++ Builder, GMLib описана в журнале http://bcbjournal.org/?loc=current_issue

    • Andrey:

      Незачто, все-таки думаю прикрутить ее в проект MapWindow GIS, чтобы использовать там интерактивные карты GOogle,мне она понравилась!

  2. Cat:

    >Что касается библиотеки GMLib, то я бы мог выпускать уроки по ней, в стили MapWindow GIS,

    Это было бы замечательно!

  3. Cat:

    >Отлично тогда, будем работать над этим!

    Спасибо.

    Вот задачи из реального приложения. Хотелось бы их решения с помощью GMLib…
    1. Постановка маркера на карту. Два вида меркера – просто маркер и маркер с привязкой доп. информации (адрес и т.п.). Возможность удалить маркер щелчком мыши по нему.
    2. Возможность смены картинки для маркера. Автомобиль, люк канализации и т.п.
    3. Соединение маркеров линией на карте. Возможности менять стиль линии (цвет, толщина линии). Возможность удалить линию щелчком мыши по ней. Расчет длинны линии.
    4. Смена позиции маркера по таймеру (имитация движения объекта).
    5. Создание ограничивающих зон на карте. Круглая форма и произвольная. Сохранение зон.
    6. Если движущийся маркер покидает указанную зону подать звуковой сигнал и отцентрировать карту по маркеру, который пытается покинуть указанную зону. Т.е. например, контроль автомобиля в зоне – например сообщение диспетчеру, что автомобиль пытается выехать из города, где город ограничен нарисованной на карте зоной.
    7. Чтение информации в маркер из базы данных. Например, из файла XML в ClientDataSet и показ этой информации в подсказке маркера.
    8. Поиск объекта на карте по адресу.
    9. Построение маршрутов между двумя адресами средствами Google.
    10. Очистка карты (удалить все маркеры, линии, зоны…) одним щелчком по кнопке.

    Конечно список большой, но он отражает пожалуй все потребности картографического приложения на основе карт Google…

  4. yax:

    А можно с помощью данной библиотеки показать адрес и рассчитать маршрут м-ду двумя адресами, с получением расстояния и времени пути, как это реализовано в картах гугла на сайте google?

  5. Alexander:

    Здравствуйте!
    А как прикрутить все это к FireMonkey? там ведь нет TWebBrowser и TGMMap

  6. Дмитрий Кудрявцев:

    Скажите, а есть подобный компонент для работы с картами OpenStreetMap?

    • Andrey:

      Если честно, то не в курсе, но я знаю, что OpenStreetMap можно конвертировать в Shape-файлы, a Shape-файлы можно загружать в проект MapWindow GIS

  7. Cat:

    >Скажите, а есть подобный компонент для работы с картами OpenStreetMap?

    Платные есть: http://tmssoftware.com/site/webosmaps.asp

  8. Александр:

    Подскажите как ее установить
    Открываю Install.txt

    1. Open the project «GMLibProject_DXE2.groupproj»
    2. Select package (doble click) «GMLib_DXE2.bpl»

    выбрал GMLibProject_DXE2.groupproj
    а дальше? у меня ни одной bpl нет нигде

  9. Александр:

    установил, немного не так как по инструкции

    Вот эти задачи тоже актуальны
    1. Постановка маркера на карту. Два вида меркера – просто маркер и маркер с привязкой доп. информации (адрес и т.п.). Возможность удалить маркер щелчком мыши по нему.
    2. Возможность смены картинки для маркера. Автомобиль, люк канализации и т.п.
    3. Соединение маркеров линией на карте. Возможности менять стиль линии (цвет, толщина линии). Возможность удалить линию щелчком мыши по ней. Расчет длинны линии.

    5. Создание ограничивающих зон на карте. Круглая форма и произвольная. Сохранение зон.
    7. Чтение информации в маркер из базы данных. Например, из файла XML в ClientDataSet и показ этой информации в подсказке маркера.
    8. Поиск объекта на карте по адресу.
    9. Построение маршрутов между двумя адресами средствами Google.
    10. Очистка карты (удалить все маркеры, линии, зоны…) одним щелчком по кнопке.

  10. yax:

    Подскажите, как показать адрес и рассчитать маршрут м-ду двумя адресами, с получением расстояния и времени пути?

  11. Dark:

    Подскажите пожалуйста как установить на Delphi 7?
    не могу найти файл GMLib_D7.bpl

  12. Sergey:

    Не могли бы Вы все таки написать подробную статью, описывающую работу с компонентами GMLib? Интересная тема, но самому разобраться пока не получается.

  13. Александр:

    Уважаемый Админ.
    Подскажите. В чем проблема…ну очень надо
    Ставлю на форму WebBrowser и GmMarker
    Пишу:
    WebBrowser1.Navigate(‘google.maps’);
    GMMarker1.Add(54,52,’моя метка’);
    Но никакой метки нет? Подскажите как вообще ее ставить.Спасибо

  14. Александр:

    Насколько верно и трудоемко использовать вместо GMLibсам сам JavaScript API 2.x(к примеру от яндекс карт) в Delphi?

  15. MotoArhangel:

    Вопрос по TGMDirection. Как его заставить определять путь? Установить начальную и конечную точки в DirectionsRequest можно как я понял. А прорисовка? Определяет ли этот компонент расстояние?

  16. Cat:

    New version GMLib 0.1.5.0 available to download
    New features:
    — Improvement: Compiled under XE7.
    — bug fixed: Fixed problem with the Google Maps update
    — bug fixed: TCustomCircle -> bug fixed method SetRadius
    — bug fixed: TCustomSizeable -> bug fixed method OnTimer
    — bug fixed: TGMObjects -> bug fixed method IsMapActive
    — improvement: TCustomMarker -> added Direction property

    Download: http://www.cadetill.com/gmlib_en

    Там и демки можно скачать…

Оставить комментарий

Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*