route-me вместе с libosmscout (автономные векторные карты для iOS)
Я пытаюсь использовать каркас route-me вместе с библиотекой C++ libosmscout.
Что я сделал до сих пор:
- импортировать данные OSM в формат libosmscout
- компиляция примера проекта iOS из libosmscout-repo
Пример проекта рисует только одно изображение карты в зависимости от заданного широты, долготы и коэффициента масштабирования.
То, что я хочу сделать, это использовать функциональность вида карты в route-me, но с исходными данными карты из libosmscout.
Есть кто-нибудь, кто справился с этой проблемой или мог бы дать мне несколько советов?
1 ответ
Я пытаюсь сделать то же самое.
Но до сих пор я не смог скомпилировать libosmscout для iOS.
Во всяком случае, я не уверен, насколько вам комфортно со мной, но я постараюсь ответить на ваш вопрос. Если вы собираетесь использовать libosmscout для использования данных карт в виде файлов osm xml или pbf (возможно, для автономного использования), вам нужно реализовать новый MapSource и написать код самостоятельно.
вам лучше наследовать от RMAbstractWebMapSource и реализовать метод imageForTile:tile inCache:tileCache для удовлетворения ваших требований. Route-me - это средство просмотра карт на основе плиток, поэтому вам необходимо преобразовать эти векторные данные в плитки, для этого вам нужно будет преобразовать запросы плиток в boundingbox (несколько примеров доступно в вики OSM), а затем попытаться извлечь данные из вашего OSM-файла и передайте его в route-me в качестве экземпляра изображения (например, png).
Не забывайте, что Route-me кэширует загруженные изображения, поэтому вы должны рассмотреть возможность передачи правильного изображения для использования в будущем. Не обманывайте себя тем фактом, что ваши данные находятся на устройстве, чтение векторных файлов может быть столь же сложным, как и чтение растровых файлов из Интернета.