Статьи

Совет по Android SDK: запуск карт в приложении

Этот краткий совет покажет вам, как программно запустить приложение Google Maps. Вы научитесь загружать Карты с точным местоположением, названием местоположения и поисковым запросом. В качестве бонуса вы увидите, как загрузить Street View в определенном месте, когда «камера» направлена ​​в нужном вам направлении.

Мы начнем этот урок с использования приложения «Разговорник», которое мы в последний раз построили в учебнике « Включение Android» «Переместить на SD-карту» на этом сайте. Приложение «Разговорник» отображает текст и изображения в зависимости от настроек языка пользователя. Одним из таких изображений является карта — идеальное место, чтобы попробовать этот совет. Если вы хотите продолжить, вы можете скачать исходный код из этого руководства. Окончательный код также доступен на Google Code Hosting .

Локализация с представлением карты

Мы начнем с добавления обработчика щелчка к существующему ImageView, который отображает изображение карты в зависимости от локали пользователя. В файле класса PhrasebookActivity.java добавьте следующий код в метод onCreate ():

Затем добавьте некоторый код в обработчик кликов, чтобы прочитать местоположение, которое мы хотим отобразить, и отправить эти данные в приложение «Карты». Для этого вы можете просто прочитать строковый ресурс, который получит строку, зависящую от локали. (Мы добавим строковые ресурсы в шагах 4-7.) Затем используйте специально отформатированную строку для создания соответствующего намерения. Наконец, используйте Intent для запуска приложения Maps с вызовом метода startActivity (), например так:

Таким образом, когда пользователь нажимает кнопку «Назад», он возвращается к предыдущему действию. В этом случае это ваша активность, поэтому пользователь вернется туда, где он начал. Это отличный пример одного из преимуществ модели Activity, которую использует Android.

Приложение разговорника теперь настроено на загрузку строк ресурсов местоположения и отображение карты в соответствующем месте. Давайте сделаем еще шаг вперед, предоставив широту, долготу и значение уровня масштабирования. Например, вы можете создать ресурс строки местоположения со следующими данными о местоположении:

1
<string name=»map_location»>geo:0,180?z=1</string>

Эти данные загрузят карту на широте 0 (экватор) и долготе 180 (середина Тихого океана). Карта будет полностью уменьшена, поэтому будет показан весь мир:

Google World View

В дополнение к местоположениям с фиксированной точкой приложение Карты можно запускать в местоположениях по имени. Приложение «Карты» поддерживает различные форматы названий мест (адреса, страны, города, достопримечательности и т. Д.). Однако вы должны помнить, что некоторые имена весьма неоднозначны. Для приложения Phrasebok имеет смысл заполнить карту, используя название страны.

Например, установите значение для строки map_location в файле ресурсов региональной строки франкоязычной Бельгии (values-fr-rBE / strings.xml), чтобы:

1
<string name=»map_location»>»geo:0,0?q=Belgium»</string>

Здесь мы искали название страны. После запуска приложение «Карты» отобразит соответствующий регион мира: Бельгию!

Карты Android Карта Бельгии

Как мы уже говорили, названия локаций могут быть ориентирами. Например, вы можете добавить следующие данные о местоположении в швейцарско-французский строковый файл (values-fr-rCH / strings.xml):

1
<string name=»map_location»>»geo:0,0?q=Matterhorn&z=8″</string>

Опять же, приложение «Карты» отображает соответствующее местоположение карты — местоположение Маттерхорна в Швейцарских Альпах.

Карта Маттерхорна Посмотреть

Обратите внимание на значения заполнителя для широты и долготы в запросах. Это просто часть формата запроса. Определенный почтовый адрес также будет работать с этими запросами.

Типичным способом Google Maps мы также можем выполнять поиск достопримечательностей в определенной окрестности. Например, мы могли бы добавить следующий запрос карты в файл строковых ресурсов Франции / Франции (values-fr-rFR / values.xml):

1
<string name=»map_location»>»geo:0,0?q=Coffee Shops near Paris, France»</string>

Этот запрос указывает приложению «Карты» центрировать карту в Париже, Франция и искать близлежащие кафе. Карты Google используют свои собственные алгоритмы для выбора магазинов для отображения. Пользователь может углубиться, чтобы увидеть больше магазинов.

Кофейные магазины Карта Посмотреть

Наконец, вы также можете отобразить Просмотр улиц в определенном месте, если оно существует. Следующая строка помещается в файл ресурсов французско-канадской строки (values-fr-rCA / strings.xml):

1
<string name=»map_location»>»google.streetview:cbll=46.813812,-71.207378&cbp=1,99.56,,1,-5.27&mz=21″</string>

Эти данные о местоположении указывают приложению «Карты» на отображение улиц садов вдоль улицы Жарден в Старом Квебеке:

Android Street View

Запрос на просмотр улиц требует немного большего объяснения. Просмотр улиц на самом деле отличается от приложения «Карты» на Android. Переданные ему данные соответствуют именованным параметрам веб-версии Google Maps. Параметр cbll содержит информацию о широте и долготе, в то время как параметр cbp допускает дальнейшую конфигурацию просмотра улиц:

1
1,yaw,,pitch,zoom

Зевок регулирует направление, в котором вы смотрите в градусах по часовой стрелке с севера, а угол наклона в градусах от уровня, где вверх отрицательно (таким образом, 90 смотрит прямо вниз). Увеличение является множителем, поэтому 3 — это 3-кратное увеличение. 1 и двойные запятые обязательны, но не используются. Наконец, параметр mz предоставляет коэффициент масштабирования карты в случае, если пользователь нажимает на опцию «Перейти к картам» в приложении «Просмотр улиц». Самый простой способ получить требуемые параметры cbp — использовать Google Maps в обычном веб-браузере, перейти к соответствующему местоположению и виду и извлечь параметры просмотра улиц из ссылки, которую вы можете создать, чтобы попасть в это местоположение.

Теперь у вас есть инструменты, необходимые для запуска приложений Google Maps или Street View на устройстве Android. Вы можете загрузить карту с определенным местоположением, просмотреть местоположение по его имени или адресу и даже выполнить поиск рядом с местоположением. Наконец, вы можете загрузить приложение Street View, чтобы показать особенно интересную область мира и настроить ее внешний вид для пользователей.

Разработчики мобильных приложений Лорен Дарси и Шейн Кондер являются соавторами нескольких книг по разработке Android: углубленная книга по программированию под названием « Разработка беспроводных приложений для Android» и « Разработка Android-приложений Sams TeachYourself за 24 часа» . Когда они не пишут, они тратят свое время на разработку мобильного программного обеспечения в своей компании и оказание консультационных услуг. С ними можно связаться по электронной почте [email protected] , через их блог на androidbook.blogspot.com и в Twitter @androidwireless .

Купить Android-разработку беспроводных приложений, 2-е издание Купить Sam's Teach Yourself для Android-разработки приложений в течение 24 часов Код Мамламбо в Код-Каньоне