delphi+openstreetmap

существует ли vcl или проект (в Дельфи), который позволил бы мне загружать мозаики OSM и отображать их на приложении?

Я попытался встроить браузер, и он работал отлично, но мне нужен способ отобразить карты офлайн.

5
задан gtujan 28 January 2010 в 07:09
поделиться

4 ответа

Не знаю о файлах OSM, но если вы можете открыть их в браузере, вы всегда можете встроить TwebBrowser в ваше приложение Delphi и загрузите файлы внутри него.
Не самый элегантный, но должен работать ... (требуется IE)

0
ответ дан 13 December 2019 в 19:27
поделиться

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

Вы можете выполнить вашу цель: показать карты в автономном режиме, используя одну и ту же базовую конструкцию, которое вы имеете сейчас для пользовательского интерфейса: встроенный браузер.

То, что вы меняете, является URL-адресом, браузер будет подключаться к чему-то вроде ( http: // localhost: 3458 ), делая приложение ее собственным веб-сервером, например, с помощью Indy TIDHTTPSERVER Порт 3458 (просто пример порта).

Таким образом, вы можете служить Содержание встроенного браузера изнутри вашего приложения таким же образом Delphi IDE (> = 2005) сам содержит контент Главная страница Вы видите, когда вы начинаете его (на самом деле, встроенный веб-браузер).

Для этого браузера вы служат страницу просмотра, все это зависимостей и файл OSM. Единственное ограничение этой идеи - зритель должен делать все вещи на стороне клиента (например, он может быть JavaScript, Flash и т. Д.). Без сценариев для серверов, если вы не готовы «имитировать» поведение сервера или интегрировать ваше приложение с помощью сценариев (не слишком просто).

Другой шанс использовать Thbimage , который предлагает Интеграция OpenStreetMap с Delphi и Delphi [не работает) сайта.

3
ответ дан 13 December 2019 в 19:27
поделиться

Как я вижу это, есть 3 способа сделать это:

  • Сохранить все отображаемые плитки как одно изображение (можно легко сделать с помощью TwebBrowser, или CEMBEDDEDBROWSEROROWSER COMPORT): вы бы Перейдите к адресу карты (OSM-карту сервера) на основе заданных координат (верхний левый угол), а затем сделайте снимок. Вам необходимо пересчитать базовые координаты (верхний левый угол) после каждого снимка.

  • Вам нужно понять, как генерируются плитки, что не совсем сложно: В основном, схема генерации плиток OSM является следующим http://osmserver.org/tiles/tile/x/y/z.png После того, как вы понимаете, как это работает, вы можете рассчитать URL-адрес плитка по коду и загрузить один за другим. Для получения дополнительной информации о схеме генерации плиток смотрите здесь: Хорошая нить на форуме коллектора: http://forum.manifold.net/forum/t71011.13#75206 http://wiki.openstreetmap.org/wiki/slippy_map http: // wiki .OPENSTREETMAP.ORG / WIKI / TILE% 40HOME Или если вам нужно идти дальше: http://wiki.openstreetmap.org/wiki/osm_protocol_version_0.5

  • Загрузите все карты OSM (доступные в Интернете) и используйте компонент VCL для их отображения (Tatukgis ДК ...)

С наилучшими пожеланиями, MO3EZ

3
ответ дан 13 December 2019 в 19:27
поделиться

Ой! Я попытался предоставить несколько гиперссылок в своем сообщении, но как новый пользователь StackOverflow я ограничился только одной. Вы можете проверить цепочку сообщений «Требуется решение для отображения карты» (25 января 2010 г.) на странице embarcadero.public.delphi.thirdpartytools.general

Я пытаюсь решить аналогичную проблему. Мне нужно отобразить карту округа или города с помощью Delphi, а затем поместить на карту пользовательские значки. Мне не нужен маршрут или очень подробная карта. Раньше я использовал компонент «точки доступа» TMS для пользовательских значков поверх TImage. Теперь мне нужно, чтобы клиент мог выбрать свою собственную карту для статического фонового изображения.

Бесплатный класс управления графическим интерфейсом пользователя MFC (с исходным кодом), который реализует отображение плиток OpenStreeMap: www.naughter.com/osmctrl.html В zip-архиве есть исполняемый файл, показывающий, как он работает .

Этот модуль предназначен для расчета URL-адресов TileServer проекта OpenStreetMap и других полезных утилит, которые могут потребоваться. Если вы хотите использовать OpenStreetMap в своих программах на паскале, то это для вас. http://code.google.com/p/openstreetmap-fpk/

Я также рассматриваю возможность использования бесплатные карты Tiger / Line. Они неплохо смотрятся в бесплатной программе для Linux (xastir).

ТатуГИС выглядит очень хорошо (и дорого). Мне определенно не нужно полноценное ГИС-решение, так что просто отображение карты кажется излишним. Но если я не найду более простого решения, это все равно будет лучше, чем интеграция MS MapPoint.

Кажется, мне нужен TGlobe, но, к сожалению, он больше не доступен.

3
ответ дан 13 December 2019 в 19:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: