API Карт Google для Android предоставляет разработчикам средства для создания приложений с функциями локализации. Версия 2 API Карт была выпущена в конце 2012 года и представила ряд новых функций, включая 3D, улучшенное кэширование и векторные плитки. В этой серии руководств мы создадим приложение, которое использует Google Maps для Android V2 в сочетании с Google Places API. Приложение представит карту пользователю, отметит его текущее местоположение и близлежащие достопримечательности и будет обновляться при перемещении пользователя.
Эта серия руководств по использованию Карт Google и Google Адресов в приложениях для Android будет представлена в четырех частях:
- Работа с Google Maps — Настройка приложения
- Работа с Google Maps — Настройка карты
- Работа с Google Maps — Интеграция мест
- Работа с Google Maps — Отображение близлежащих мест (в ожидании публикации)
Процессы, необходимые для интеграции Google Maps и Google Places с приложениями Android, являются относительно сложными и не подходят для начинающих, поэтому для целей данного руководства предполагается, что читатели уже выполнили хотя бы несколько базовых приложений в Eclipse.
Это снимок финального приложения:
1. Интегрировать сервисы Google Play
Шаг 1
Google Maps Android API V2 является частью пакета SDK Google Play, который необходимо загрузить и настроить для работы с существующей установкой Android SDK в Eclipse, чтобы использовать функции сопоставления. В Eclipse выберите « Окно»> «Android SDK Manager» . В появившемся списке пакетов прокрутите вниз до папки Extras и раскройте ее. Установите флажок службы Google Play и установите пакет.
Шаг 2
Как только Eclipse загрузит и установит пакет служб Google Play, вы сможете импортировать его в свое рабочее пространство. Выберите « Файл»> «Импорт»> «Android»> «Существующий код Android» в рабочей области, а затем перейдите к расположению загруженного пакета услуг Google Play на вашем компьютере. Он должен находиться в загруженном каталоге Android SDK по следующему адресу: extras / google / google_play_services / libproject / google-play-services_lib .
2. Получите ключ API Карт Google
Шаг 1
Для доступа к инструментам Google Maps необходим ключ API, который вы можете получить через учетную запись Google. Ключ основан на вашем отладочном приложении или сертификате выпуска. Если вы ранее выпускали приложения, возможно, вы использовали ресурс keytool для их подписи. В этом случае вы можете использовать хранилище ключей, которое вы сгенерировали в то время, чтобы получить ключ API. В противном случае вы можете использовать хранилище ключей отладки, которое Eclipse использует автоматически при создании ваших приложений во время разработки.
Ключ API будет основан на отпечатке пальца SHA-1 из вашего сертификата отладки или выпуска. Чтобы получить это, вам нужно будет запустить некоторый код в командной строке или в терминале. В руководстве Google API для разработчиков есть подробные инструкции для различных операционных систем и опций. Ниже приведен обзор.
Чтобы использовать сертификат отладки, хранящийся в расположении по умолчанию, запустите следующее в терминале, если вы используете Linux:
1
|
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
|
Вам нужно будет изменить путь к хранилищу ключей отладки, если он находится в другом месте. В командной строке Windows используйте следующее для расположения по умолчанию, изменив его в соответствии с вашей пользовательской папкой на C-Drive:
1
|
keytool -list -v -keystore «C:\Users\your_user_name\.android\debug.keystore» -alias androiddebugkey -storepass android -keypass android
|
Если вы хотите использовать сертификат выпуска, сначала вам нужно найти хранилище ключей выпуска. Используйте следующую информацию для отображения сведений о хранилище ключей, заменив «your_keystore_name» на путь и имя хранилища ключей, которое вы используете:
1
|
keytool -list -keystore your_keystore_name
|
Вам будет предложено ввести пароль, затем вы должны увидеть псевдонимы, связанные с хранилищем ключей. Введите следующее, изменив его, чтобы отразить ваше хранилище ключей и псевдонимы:
1
|
keytool -list -v -keystore your_keystore_name -alias your_alias_name
|
Используете ли вы сертификат отладки или выпуска, вы увидите несколько строк вывода. Найдите начало строки «SHA1» в разделе «Отпечатки сертификатов»; он должен содержать 20 шестнадцатеричных чисел с двоеточиями между ними. Скопируйте эту строку и добавьте имя пакета вашего приложения в конец, сохранив его для дальнейшего использования. Например:
1
|
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;your.package.name
|
Шаг 2
Теперь вы можете использовать свой сертификат SHA-1 для получения ключа API для Карт Google. Войдите в свою учетную запись Google и перейдите к консоли API . Если вы не использовали консоль раньше, она предложит вам создать проект.
Создайте его, а затем переименуйте, если хотите, выбрав раскрывающийся список в верхнем левом углу, в котором может отображаться имя по умолчанию «Проект API».
Выберите « Переименовать» и введите название выбранного проекта, что не имеет значения для целей данной серии.
Шаг 3
Консоль API управляет доступом ко многим службам Google, но вам нужно включить каждую из них, которую вы хотите использовать по отдельности. Выберите Services из списка слева от консоли API. Вы должны увидеть список служб Google, прокрутите вниз до Google Maps Android API V2 и нажмите, чтобы включить его для своей учетной записи.
Следуйте инструкциям, чтобы принять условия API.
Шаг 4
Теперь мы можем получить ключ для приложения. Выберите API Access в левой части консоли API. Возможно, вы уже видите ключ для приложений браузера, но он нам нужен специально для приложений Android. В нижней части страницы выберите « Создать новый ключ Android» .
В появившемся всплывающем окне введите отпечаток SHA-1, который вы скопировали из сертификата (с добавленным именем пакета), и нажмите « Создать» .
Страница доступа к API должна обновиться вашим новым ключом. В новом разделе Ключ для приложений Android скопируйте ключ, указанный рядом с ключом API, и надежно сохраните его.
3. Создайте приложение для Android
Шаг 1
Мы наконец готовы создать приложение! В Eclipse создайте новый проект Android (Файл> Создать> Проект> Проект приложения Android) . Введите выбранный вами пакет и названия приложений. Запомните имя пакета, которое вы использовали для создания ключа API Карт. В исходном коде загрузите целевой SDK версии 17 с минимальным значением 12. Пусть Eclipse создаст для вас пустое действие. В загрузке мы используем MyMapActivity и activity_my_map для макета.
Шаг 2
Хотя мы добавили пакет сервисов Google Play в рабочую область Eclipse, нам все еще нужно настроить это конкретное приложение для его использования. Выберите ваш новый проект в Eclipse Package Explorer и настройте его Свойства (щелкните правой кнопкой мыши> Свойства или Окно> Свойства с выбранным проектом) . Выберите вкладку Android и выделите раздел « Библиотека », затем нажмите « Добавить» .
Выберите библиотеку Google Play Services, чтобы добавить ее в свой проект.
Выберите Применить перед выходом из окна свойств.
4. Будьте готовы к картированию
Шаг 1
Теперь мы можем подготовить приложение к использованию функций отображения, добавив соответствующую информацию в файл Project Manifest. Откройте его и переключитесь на вкладку XML для редактирования кода. Сначала добавим ключ API Карт Google в элемент приложения, используя следующий синтаксис:
1
2
3
|
<meta-data
android:name=»com.google.android.maps.v2.API_KEY»
android:value=»your_key_here» />
|
Включите свой собственный ключ API в качестве атрибута значения.
Шаг 2
Теперь нам нужно добавить некоторые разрешения в манифест. Внутри элемента Manifest, но вне элемента application, добавьте следующее, добавив в него собственное имя пакета:
1
2
3
4
|
<permission
android:name=»your.package.name.permission.MAPS_RECEIVE»
android:protectionLevel=»signature» />
<uses-permission android:name=»your.package.name.permission.MAPS_RECEIVE»/>
|
API Карт связан с большим количеством разрешений, необходимость которых, конечно же, зависит от вашего собственного приложения. Руководство разработчика рекомендует добавить следующее в любое приложение, использующее Карты:
1
2
3
4
5
6
|
<uses-permission android:name=»android.permission.INTERNET» />
<uses-permission android:name=»android.permission.ACCESS_NETWORK_STATE» />
<uses-permission android:name=»android.permission.WRITE_EXTERNAL_STORAGE» />
<uses-permission android:name=»com.google.android.providers.gsf.permission.READ_GSERVICES» />
<uses-permission android:name=»android.permission.ACCESS_COARSE_LOCATION» />
<uses-permission android:name=»android.permission.ACCESS_FINE_LOCATION» />
|
Наконец, нам нужно добавить элемент функции для OpenGL ES версии 2:
1
2
3
|
<uses-feature
android:glEsVersion=»0x00020000″
android:required=»true»/>
|
5. Добавить карту в приложение
Шаг 1
Наконец мы готовы включить карту в приложение. Откройте основной файл макета вашего приложения. Заменить содержимое следующим:
1
2
3
4
5
6
7
8
9
|
<fragment xmlns:android=»http://schemas.android.com/apk/res/android»
xmlns:map=»http://schemas.android.com/apk/res-auto»
android:id=»@+id/the_map»
android:layout_width=»match_parent»
android:layout_height=»match_parent»
android:name=»com.google.android.gms.maps.MapFragment»
map:cameraTilt=»45″
map:cameraZoom=»14″
/>
|
Это фрагмент карты. Мы даем ему идентификатор, чтобы мы могли идентифицировать его на Java и предоставить (необязательные) начальные значения для наклона и масштабирования камеры. Здесь вы можете указать множество настроек, включая широту / долготу, азимут и тип карты, а также переключать наличие таких функций, как компас, вращение, прокрутка, наклон и масштабирование. Эти параметры также могут быть установлены из Java.
Если вы позволите Eclipse создать ваш основной класс Activity, у него уже должен быть следующий код в методе onCreate . Если нет, добавьте это сейчас:
1
2
3
4
|
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_map);
}
|
При необходимости измените имя макета.
Шаг 2
На данный момент вы можете запустить свое приложение. Вам нужно будет запустить его на реальном устройстве, так как эмулятор не поддерживает сервисы Google Play. При условии, что на вашем тестовом устройстве установлены необходимые ресурсы, вы должны увидеть карту при запуске приложения. По умолчанию пользователь может взаимодействовать с картой более или менее так же, как и с приложением Google Maps (вращение и т. Д.), Используя взаимодействие в несколько касаний.
Вывод
В этом уроке мы создали приложение, способное использовать Google Maps Android API V2. Не отчаивайтесь сложностью процесса установки, так как само кодирование Java не особенно сложное. В следующих уроках мы будем использовать объект Google Map для управления отображением и взаимодействием с картой. Мы получим еще один ключ API, на этот раз для Google Places API. После того, как мы найдем местоположение пользователя и отметим его на карте, мы получим информацию о близлежащих достопримечательностях, обработаем эти результаты и также отметим их на карте. В этой серии статей мы познакомимся с основами использования Google Maps и Google Places в приложениях для Android, а также опишем варианты дальнейшего развития, которые вы можете изучить в самых разных типах приложений.