Перекрыть MapView Tile Source?

Можно ли переопределить источник плиток, который отображает Android MapView?

У меня есть некоторые карты изображений изображений в базе данных, и я хотел бы использовать карты MapView Google, чтобы посмотреть на них.

Кроме того, если это невозможно … знает ли кто-нибудь о MapView, который позволяет это сделать? (API OpenStreetMap … API MapQuest … и т. Д.)

Я ищу решение, которое не полагается на GPL / LGPL.

    Вы можете использовать некоторые из этих библиотек: osmdroid , mapsforge . Оба они обеспечивают интерфейс к некоторым базам данных интернет-карт и позволяют создавать собственный поставщик карт.

    Они позволяют вам (и обрабатывать) автономный кеш, динамическую асинхронную загрузку карт, передискретизацию при масштабировании, добавление наложений и т. Д., Как это делает оригинальный MapView. Еще один хороший момент использования этих библиотек заключается в том, что они хорошо разработаны для замены Google MapView на месте.

    Также вы можете быть заинтересованы в Javascript-картах Google api, что также позволяет использовать пользовательские источники карт (см. Эту ссылку ). Этот подход можно использовать с загрузкой карты в ваш WebView. Но в этом случае вам по-прежнему нужен ключ API Google Maps, и я уверен, что вы по-прежнему будете ограничены 25000 обычаев в день.

    == UPDATE ==

    Теперь Google Maps для Android (в Google Play Services) поддерживает пользовательские плитки, поэтому больше нет необходимости использовать сторонние библиотеки для применения ваших собственных фрагментов (если использование соответствует лицензионному соглашению).

    Вы можете создать TileProvider чтобы возвращать плитки в API Карт. Затем используйте setMapType для установки MAP_TYPE_NONE , и только отображаемые вами плитки будут видны. Я знаю, что это можно сделать для MapFragment , но не пробовал его с помощью MapView .

    См. Пример кода из Google в MapDemo TileOverlayDemo для примера.

    Intereting Posts