Карта xamarin с использованием другого источника, кроме карт Google

Я всегда использую карты Google для своих приложений форм Xamarin. Но теперь я должен включить источник плитки другой карты. Я читал об изменении TileProvider и использовании TileOverlay, но я все еще заблудился.

Могу ли я по-прежнему использовать "Xamarin.Forms.Maps" или я должен оставить это полностью (я больше не хочу звонить в API Google)?

Я обнаружил, что у Mapzen есть карта SDK на Android и iOS. Я пришел к мысли, что могу создать интерфейс Mapzen для программирования на PCL, а затем связать его (внедрение зависимостей) с локальным классом на платформах Droid и iOS, чтобы получить доступ к SDK платформы. Что ты об этом думаешь

РЕДАКТИРОВАТЬ
Наконец-то я нашел решение. Я использую элемент управления webview для использования библиотеки листовок. Я храню скрипт листовки в локальной папке (например, папка Assets для Android), чтобы он мог работать в автономном режиме.

Для поставщика плитки я выбрал среди этих

Для загрузки карты вам необходимо:
1-исправьте начальный и конечный индекс тайлов по осям X и Y, используя эти методы(для этого шага у вас уже должны быть целевые границы широты и долготы)

2 - загрузите плитки с вашего тайла.
У меня есть 3 цикла for для создания представления дерева "root_map__folder/Z/Y/X.png" на моем устройстве.
Я создаю файл NOMEDIA в папке root_map__, чтобы не найти фрагменты карты в галерее телефона...:D

для использования автономной карты я использую элемент управления для переключения UrlTemplate tileLayer's путем внедрения js-кода в веб-представление (метод "InjectJavaScript"). Оффлайн UrlTemplate выглядит так:
"'file:" + rootFolderPath + "/root_map__folder/ndomz‹/ enjx‹/ enjy‹.png'";)

Результат действительно хорош!

Я надеюсь, что это достаточно точно, чтобы быть полезным для кого-то еще.

0 ответов

Другие вопросы по тегам