Мне нужна 2-мерная политическая карта мира, на которой я буду рисовать значки, текст и перемещающиеся линии. Пользователи будут взаимодействовать с картой, размещать и перемещать значки, а также увеличивать и уменьшать масштаб карты.
Интерфейс Google Maps не очень далек от того, что мне нужно, но это НЕ связано с сетью; это приложение Windows MFC, и я хочу поговорить с C++ API для карты, которая находится в приложении, а не в веб-интерфейсе. В идеале мне тоже не нужен отдельный сервер, и любой сервер ДОЛЖЕН работать локально (а не в Интернете). Какой стандартный пакет карт или графическую библиотеку мне следует использовать для этого? У меня нет опыта программирования графики.
Это строго 2D, поэтому я не думаю, что было бы уместно что-то вроде Google Earth или WorldWind. Было бы здорово поддерживать хорошую векторную графику, а также важно легко рисовать растровые изображения.
Все стандартные варианты кажутся веб-ориентированными. SDL - это все, что я знаю о гибком программировании на холсте, но похоже, что создание моей собственной карты потребует много усилий от того, что, вероятно, является распространенной проблемой. Есть ли что-нибудь более высокого уровня? Может быть, есть способ взаимодействовать с Adobe Flash-объектом? Я довольно невежественен.





Вы можете расширить свой поиск, используя термин GIS (Географическая информационная система). Я уверен, что будет проще. На эту тему есть много материалов.
Вот страница, которую я нашла: http://www.ucancode.net/Gis-Source-Code.htm
или: http://opensourcegis.org/
Возможно: http://www.codeplex.com/SharpMap
ESRI MapObjects http://www.esri.com/software/mapobjects/index.html ESRI MapObjects LT http://www.esri.com/software/mapobjectslt/index.html
Видеть http://www.esri.com/software/mapobjectslt/about/mo_vs_lt.html для сравнения двух наборов функций MapObjects.
ESRI может иметь замену библиотекам MapObjects.
Вы можете попробовать Набор инструментов Mapnik C++ / Python для ГИС.
Вы можете взглянуть на Мраморный виджет, который является частью проекта KDE Marble. Для этого также существуют двоичные файлы Windows, но они могут зависеть от Qt.
Да, у Marble также есть то преимущество, что он предоставляет своего рода готовое решение в едином элементе управления (называемом «виджетом» в технических терминах Qt).
Зависимость от Qt (которая, кстати, является единственной зависимостью) также может рассматриваться как преимущество: будущая версия Qt лицензируется по LGPL, поэтому даже если вы планируете использовать это в проприетарном приложении, не должно быть никаких реальных заботы. И, конечно же, Qt и Marble являются кросс-платформенными и предоставляют очень интуитивно понятный и простой для понимания API. В отличие от обычных ГИС-решений, Marble API и использование виджета ориентированы на людей, мало разбирающихся в ГИС. Таким образом, его использование довольно легко понять, даже если вас пугают технические термины, используемые в ГИС.
Marble предлагает несколько интерфейсов для программирования:
Вы можете либо создать свои собственные плагины Marble и раскрасить их, либо создать подкласс элемента управления MarbleWidget. Для простого приложения HelloWorld см .:
Проблема в том, что «ГИС», кажется, означает взаимодействие с данными на каком-то сервере сортировки. Все, что мне нужно, это простая небольшая статическая карта мира, на которой можно рисовать и анимировать.