Подтвердить что ты не робот

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

Можно ли переопределить источник фрагментов, отображаемых в Android MapView?

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

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

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

4b9b3361

Ответ 1

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

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

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

== UPDATE ==

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

Ответ 2

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

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