Как стать автором
Обновить

Комментарии 22

По теме карт для Android — mapp.android-libraries.com — компонента для разработки кастомных оффлайновых карт.
Спасибо за ссылку, надо будет посмотреть.
Google Maps API V3 не требует ключа, разве нет?

Пруф:
Note: This version of the Google Maps JavaScript API no longer needs API keys!
Обратите внимание на слово JavaScript
А есть возможность наложить на какую-то из карт своё изображение?
Например вся карта отображается как карты google, но один микрорайон города — это моя картинка. И соответственно что бы были те же возможности зума, поворота и прокрутки карты.
Рисовать в overlay можно попробовать, пока иного способа в голову не приходит.
Там тоже есть какие-то решения, но я не смотрел ещё.

Вот что-то типа этого: code.google.com/p/osmdroid/
На сколько это всё работает не знаю, ещё не пробовал.
Есть одна замечательная библиотека. Эх грех мне ее рекламировать :)
Но любителям векторных карт подойдет code.google.com/p/mapsforge/.

И еще немного не по теме вопрос.
Кто-нибудь знает как можно вызывать код из другого приложения, по-типу плагина. Обычная схема работы, что вы в приложение встраиваете карту и т.п., что конечно хорошо не всегда самое лучшее.
А возможно ли наоборот, вставить слой в существующее картографическое приложение, например в Google Maps? Что надо сделать для этого карто-приложению и слое-приложению?

Вроде как сервис не работает, так как связано с UI… Не передавать же байты между приложениями, особенно если картинки нужны.
НЛО прилетело и опубликовало эту надпись здесь
Дополнение по тому как делать релизную версию, годную для выкладывания на Android Market:
1) Генерируем приватный ключ, который будет использоваться для подписи вашего APK файла:
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 (keytool — стандартная утилита из состава JDK, например она лежит тут: c:\Program Files\Java\jdk1.5.0\bin\)
заполняем ответы на вопросы (пароль, имя, организация, страна и тд)
В результате получаем в текущей дирректории файл: my-release-key.keystore

2) получаем «отпечаток» с ключа:
keytool -list -alias alias_name -keystore my-release-key.keystore -storepass password -keypass password

Результат:
Certificate fingerprint (MD5): 2B:72:AB:05:EE:98:C5:4C:12:9F:04:F3:DB:25:FE:A2

3) генерируем Android Maps API key:
Идем на Sign Up for the Android Maps API страницу и вставляем в поле внизу полученный ранее «отпечаток» 2B:72:AB:05:EE:98:C5:4C:12:9F:04:F3:DB:25:FE:A2

Результат — наш релизный ключ для карт «0Pt9RihjZq7zjNeNXafCD0ll2FPS_TPffQS90zA»
который используем в наших лейаутах:
<com.google.android.maps.MapView
                 android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
                 android:apiKey="0Pt9RihjZq7zjNeNXafCD0ll2FPS_TPffQS90zA"
                 />

Генерация подписанного APK:
Правый клик на проекте в Eclipse: Android Tools > Export Signed Application Package, указываем путь к нашему my-release-key.keystore и вводим пароль
Источники:
Signing Your Applications
Obtaining a Maps API Key
Android Maps API Key Signup
«you are key» — порадовал, что это могло значить…
Интересно зачем эти apiKey вообще нужны? Для статистики что ли?
Думаю для контроля(статистика, баны) и возможности дальнейшей монетизации в будущем (можно сделать встроенную рекламу, платные ключи без рекламы, платные ключи с более полной инфой)
возможности дальнейшей монетизации в будущем (можно сделать встроенную рекламу, платные ключи без рекламы, платные ключи с более полной инфой)


Вы как в воду глядели :)
Хороший туториал. Спасибо автору. Однако в строчке, в которой задается положение пользователя, происходит сначала взятие целой части от долготы и широты, а потом уже приведение к необходимому виду, что приводит к неправильному положению на карте. Поправьте пожалуйста.
Кстати, да. А исправляется заменой

// Перемещаем карту на заданные координаты
cMapController.animateTo(new GeoPoint((int) location.getLatitude() * 1000000, (int) location.getLongitude() * 1000000));

на

// Перемещаем карту на заданные координаты
double lat = location.getLatitude();
double lng = location.getLongitude();
GeoPoint point = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
mMapController.animateTo(point);
Так точно. Моя оплошность, спасибо.
Огромное спасибо за статью.
Хотя всё равно пришлось несколько часов пыхтеть и проклинать скудность информации в интернете про mapkit, пока опытным путём не дошёл до того, как правильно подключать либы для него и включать зависимости в Itellij IDEA (к эклипсу физическая неприязнь).
Может поделитесь — как правильно подключать либы?
Спасибо, получилось.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации