Нужна клиентская интерактивная 2D-карта мира:лучший пакет карт?Или лучшая библиотека графики/холста C++ для ее создания?
-
11-07-2019 - |
Вопрос
Мне нужна двухмерная политическая карта мира, на которой я буду рисовать значки, текст и движущиеся линии.Пользователи будут взаимодействовать с картой, размещая и перемещая значки, а также увеличивая и уменьшая масштаб карты.
Интерфейс Google Maps не очень далек от того, что мне нужно, но это НЕ связано с Интернетом;это приложение Windows MFC, и я хочу поговорить с C++ API о карте, которая находится в приложении, а не в веб-интерфейсе.В идеале мне также не нужен отдельный сервер, и любой сервер ДОЛЖЕН работать локально (а не в Интернете).Какой готовый пакет карт или графическую библиотеку мне следует использовать для этого?У меня нет опыта графического программирования.
Это строго 2D, поэтому я не думаю, что что-то вроде Google Earth или WorldWind подойдет.Хорошая поддержка векторной графики была бы полезна, а простота рисования растровых изображений важна.
Все стандартные варианты кажутся веб-ориентированными.SDL — это почти все, что я знаю о гибком программировании на основе холста, но кажется, что создание моей собственной карты потребует много работы для решения, вероятно, распространенной проблемы.Есть ли что-нибудь более высокого уровня?Может быть, есть способ взаимодействовать с объектом Adobe Flash?Я совершенно невежественен.
Решение
Возможно:http://www.codeplex.com/SharpMap
Объекты карты ESRIhttp://www.esri.com/software/mapobjects/index.htmlESRI MapObjects LThttp://www.esri.com/software/mapobjectslt/index.html
Видетьhttp://www.esri.com/software/mapobjectslt/about/mo_vs_lt.htmlдля сравнения двух наборов функций MapObjects.
У ESRI может быть замена библиотекам MapObjects.
Другие советы
Вы можете расширить поиск, используя термин ГИС (Географическая информационная система). Я уверен, что будет легче. Есть много вещей на эту тему.
Вот страница, которую я нашел: http://www.ucancode.net/Gis -source-Code.htm р>
Возможно, вы захотите попробовать Mapnik C ++ / Python GIS Toolkit .
Вы можете взглянуть на виджет мрамора , который является частью мрамора KDE. проект. Для этого тоже есть двоичные файлы Windows, но они могут зависеть от Qt.
Да, у Marble также есть преимущество в том, что он представляет собой готовое решение в одном элементе управления (называемое «виджет» в технических терминах Qt). Р>
Зависимость от Qt (которая является единственной зависимостью между прочим) также может рассматриваться как преимущество: будущая версия Qt лицензируется в соответствии с LGPL, поэтому даже если вы планируете использовать ее в проприетарном приложении, тогда не должно быть быть какие-то реальные заботы. И, конечно же, Qt и Marble являются кросс-платформенными и предоставляют API, который очень интуитивен и прост для понимания. В отличие от обычных ГИС-решений, Marble API и использование виджета ориентированы на людей, которые мало знают о ГИС. Поэтому его использование довольно легко понять, даже если вы боитесь технических терминов, используемых в ГИС. Р>
Marble предлагает несколько интерфейсов для программирования:
Вы можете создавать свои собственные плагины Marble и рисовать внутри них, или вы можете создавать подклассы элемента управления MarbleWidget. Для простого приложения HelloWorld см .: