Карта 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'";)
Результат действительно хорош!
Я надеюсь, что это достаточно точно, чтобы быть полезным для кого-то еще.