Ответ 1
Я только что опубликовал свои попытки в связываниях С#.
Они доступны по адресу: http://sourceforge.net/projects/mapniknet/
Кто-нибудь использовал Mapnik для рендеринга карт из среды .net С#? Я хотел бы использовать его для отображения карт в настольном приложении, разработанном под .net4. Я нашел его лучшим инструментом рендеринга карт с открытым исходным кодом, намного лучше, чем хорошо известный сюжет, dotspatial (...). "Единственная" проблема заключается в том, что она была написана на С++ и Python и не имеет тривиального способа использовать ее из С#.
Знаете ли вы какие-либо обертки .net Mapnik? Знаете ли вы какой-нибудь пример кода?
Я только что опубликовал свои попытки в связываниях С#.
Они доступны по адресу: http://sourceforge.net/projects/mapniknet/
Некоторые хорошие новости об интеграции Mapnik-.Net:
"Еще одна вещь, которая поможет разработчикам Windows, - это способ использования Mapnik с .Net-языков. Хотя полная .Net-обложка - это слишком много работы, помимо всех других проблем, надеюсь, я смогу сделать полноценный старт и открыть дверь для .Net разработчикам использовать Mapnik в своих приложениях.
Источник: Mapnik homepage http://mapnik.org/news/2011/jun/09/gsoc_2011_windows_build_system_introduction/
Возможно, вы захотите попробовать. Его довольно недавний и имеет простой пример с вариантами создания векторных плит.
https://github.com/kernelsanders/NET-Mapnik
Итак, наконец, я взломал его. Нехорошее решение, но оно работает как минимум. В двух словах она работает следующим образом:
В случае обновления карты (масштабирование, панорамирование) я восстанавливаю "слой карты mapnik". У меня также есть какой-то кеш, в котором я могу хранить сгенерированные карты, поэтому я могу делать трюки, используя ранее созданные изображения карты или предварительно сгенерировать их (например, создавать карты для следующего уровня масштабирования, когда пользователь использует инструмент масштабирования). Я также использую некоторые асинхронные вызовы, чтобы сделать это, поэтому я могу создавать 1-3 картографических изображения паралельно.
Слабой частью этого решения является связь между модулями python и С#. Я не мог найти лучше аргументов командной строки + shell.
Мое решение работает, mapnik быстр, может размножать мои карты менее секунды.
Если у вас есть какие-либо советы по обмену сообщениями .net - python (нет, он не подходит для manik api), напишите его здесь. спасибо.
Вы знаете о проекте TAO?
Это проект .Net, который использует неуправляемую библиотеку opengle для .Net Managed Form, вызывая DllIMport() в С#.
Вы должны сделать это для Mapnik, simaliar к TAOFramework.net