Как работать с offline картой OpenStreetMaps на C#?

101
18 марта 2022, 11:10

Пишет cz десктопное ПО на С#, в котором должна отображаться карта. ПО должно работать offline. Было выбрана карта от OSM и скачена из geofabrik.Вопрос есть ли возможность считать данные из файла и отобразить карту? P.S. Интересует именно этот данный способ без загрузки данных в БД.

Answer 1

Внутренняя начинка файлов OSM, это xml. Т.е. можно или напрямую работать с xml, или использовать что-то типа библиотеки OsmSharp. Но учтите, из-за особенностей структуры хранения, работать всё это будет очень долго. Так как у каждого объекта известны только id узлов. Т.е. что бы нарисовать объект, необходимо снова пройтись по всему файлу, найти узлы по id, и только тогда уже получить координаты.

Для реальной работы, Вам всё равно необходимо будет преобразовать сырые данные OSM, в какой-то оффлайновый формат, например в shape. Лучше всего загрузить данные в PostgreSQL утилитой osm2postgis, и уже результат экспортировать в любой оффлайн-формат. Или же по этим результатам, приложением mapnik, сгенерить растровые тайлы, которые можно использовать и оффлайн.

READ ALSO
Программа не находит ключ Словаре

Программа не находит ключ Словаре

Я программирую в Visual Studio 2019

58
Передать данные из формы в dataGrid

Передать данные из формы в dataGrid

Имеется класс с переменными, значения переменных записываются во второй форме через например TextBox'ыПроблема в том, чтобы передать эти значения...

188
C# winforms telerik radGridView добавление картинки

C# winforms telerik radGridView добавление картинки

Как добавить картинку в ячейку radGridView?

148