Нужна интерактивная 2D карта мира на стороне клиента: лучший пакет карт? Или лучшая C ++ графика / холст библиотека, чтобы сделать один? - PullRequest
2 голосов
/ 01 декабря 2008

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

Интерфейс Google Maps не очень далек от того, что мне нужно, но это НЕ связано с Интернетом; это приложение Windows MFC, и я хочу поговорить с API C ++ для карты, которая находится в приложении, а не в веб-интерфейсе. В идеале я не хочу отдельного сервера, и любой сервер ДОЛЖЕН работать локально (не в Интернете). Какой консервированный пакет карт или графическую библиотеку я должен использовать для этого? У меня нет опыта в графическом программировании.

Это строго 2D, поэтому я не думаю, что что-то вроде Google Earth или WorldWind будет уместным. Хорошая поддержка векторной графики - это здорово, и важно легко рисовать растровые изображения.

Все стандартные параметры кажутся веб-ориентированными. SDL - это все, что я знаю о гибком программировании холста, но кажется, что создание собственной карты было бы большой работой для решения, вероятно, распространенной проблемы. Есть ли что-нибудь более высокого уровня? Может быть, есть способ взаимодействия с Adobe Flash-объектом? Я довольно невежественен.

Ответы [ 4 ]

3 голосов
/ 02 декабря 2008

Может быть: 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

2 голосов
/ 06 февраля 2009

Возможно, вы захотите попробовать Mapnik C ++ / Python GIS Toolkit .

Вы можете взглянуть на Marble Widget , который является частью проекта KDE Marble. Для этого тоже есть двоичные файлы Windows, но они могут зависеть от Qt.

2 голосов
/ 01 декабря 2008

Вы можете расширить поиск, используя термин ГИС (Географическая информационная система). Я уверен, что будет легче. Есть много вещей на эту тему.

Вот страница, которую я нашел: http://www.ucancode.net/Gis-Source-Code.htm

или: http://opensourcegis.org/

1 голос
/ 07 февраля 2009

Да, у Marble есть и то преимущество, что он представляет собой готовое решение в одном элементе управления (называемое «виджет» в технических терминах Qt).

Зависимость от Qt (которая является единственной зависимостью между прочим) также может рассматриваться как преимущество: будущая версия Qt лицензируется по лицензии LGPL, поэтому, даже если вы планируете использовать ее в проприетарном приложении, тогда быть какие-то реальные заботы. И, конечно же, Qt и Marble являются кросс-платформенными и предоставляют API, который очень интуитивен и прост для понимания. В отличие от обычных ГИС-решений, Marble API и использование виджета ориентированы на людей, которые мало знают о ГИС. Поэтому его использование довольно легко понять, даже если вы боитесь технических терминов, используемых в ГИС.

Мрамор предлагает несколько интерфейсов для программирования:

Вы можете создать свои собственные плагины Marble и рисовать внутри них, или вы можете создать подкласс элемента управления MarbleWidget. Для простого приложения HelloWorld см .:

http://techbase.kde.org/Projects/Marble/MarbleCPlusPlus

...