Force MapKit использовать кэшированные тайлов только / отключить сеть программно

голоса
11

Мы наткнулись на такую ​​проблему.

Мы разрабатываем приложения для путешествий. Для того, чтобы убедиться, что пользователь не тратит много денег на роуминг в нашем приложении мы решили реализовать вариант настройки для пользователя, чтобы просмотреть только кэшированные карты. Таким образом, мы позволяем пользователю решить, хочет ли он, чтобы загрузить карты из Интернета или он хочет, чтобы сэкономить деньги и просматривать кэшированные карты (хранится в библиотеке / кэша / MapTiles / MapTiles.sqlitedb).

Мы не можем найти способ осуществить это. Есть ли способ отключить сеть программно в этом случае? Или используйте MapKit сила кэшируются только плитки? Мы думали об изменении APN программно для этого параметра, чтобы заставить MapKit перейти в автономный режим. Можно ли изменить APN программно?

Спасибо!

Задан 24/12/2009 в 19:02
источник пользователем
На других языках...                            


4 ответов

голоса
4

iPhone SDK приложение не имеет доступ к настройкам сетевого адаптера, и я не знаю ничего в MapKit API, который дает вам контроль над его использованием Интернета. Ваш лучший вариант в данном случае, вероятно, представить уведомление с предложением о том, что пользователь Режиме полета или отключить передачу данных в роуминге.

Ответил 24/12/2009 в 21:58
источник пользователем

голоса
2

использовать OpenStreetMap думает, что коммерческая сторона этого Облако сделано позволяет в автономном режиме карты

http://developers.cloudmade.com/projects/show/iphone-sdk

Библиотеки, которые помогают разработчикам использовать картинки OSM карту маршруты меня есть библиотека с открытым исходным кодом используется в ряде приложений iPhone для отображения OSM карты. CloudMade iPhone Карта Библиотека является библиотекой с открытым исходным кодом, который обеспечивает доступ высокого уровня в OSM на основе фрагменты карты CloudMade с разными размерами и стилями. Джон McKerrell портировал алгоритм маршрутизации от Gosmore для запуска на iPhone и успешно генерироваться основные маршруты. Более сложные маршруты сбою iPhone на данный момент

Ответил 14/07/2010 в 13:07
источник пользователем

голоса
0

Есть несколько способов. Одним из них является использование собственной плитки накладки и реализовать алгоритм кэширования либо в URLForTilePath: или в loadTileAtPath: Результат:

Он очень хорошо работает с открытой областью и некоторыми частными. Не кэшировать стандартные компании Apple Maps.

Другой способ, который будет иметь возможность кэшировать все это подкласс NSURLProtocol. Есть некоторые учебники и, вероятно, вы можете обнаружить, когда это изображение карты и действовать соответственно

Ответил 18/02/2015 в 21:39
источник пользователем

голоса
-1

карта приложение Google делает функцию кэш ... MapKit, кажется, нет, я думаю, что Apple, будет добавить эту функцию в следующей версии SDK ...

Ответил 25/12/2009 в 06:48
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more