Этот краткий совет покажет вам, как программно запустить приложение Google Maps. Вы научитесь загружать Карты с точным местоположением, названием местоположения и поисковым запросом. В качестве бонуса вы увидите, как загрузить Street View в определенном месте, когда «камера» направлена в нужном вам направлении.
Шаг 1: Подготовка
Мы начнем этот урок с использования приложения «Разговорник», которое мы в последний раз построили в учебнике « Включение Android» «Переместить на SD-карту» на этом сайте. Приложение «Разговорник» отображает текст и изображения в зависимости от настроек языка пользователя. Одним из таких изображений является карта — идеальное место, чтобы попробовать этот совет. Если вы хотите продолжить, вы можете скачать исходный код из этого руководства. Окончательный код также доступен на Google Code Hosting .
Шаг 2. Добавление обработчика кликов
Мы начнем с добавления обработчика щелчка к существующему ImageView, который отображает изображение карты в зависимости от локали пользователя. В файле класса PhrasebookActivity.java добавьте следующий код в метод onCreate ():
Карта ImageView = (ImageView) findViewById (R.id.ImageViewMap); map.setOnClickListener (new OnClickListener () { @Override public void onClick (View v) { // TODO: начать карту Активность здесь } });
Шаг 3: Начало работы с картой
Затем добавьте некоторый код в обработчик кликов, чтобы прочитать местоположение, которое мы хотим отобразить, и отправить эти данные в приложение «Карты». Для этого вы можете просто прочитать строковый ресурс, который получит строку, зависящую от локали. (Мы добавим строковые ресурсы в шагах 4-7.) Затем используйте специально отформатированную строку для создания соответствующего намерения. Наконец, используйте Intent для запуска приложения Maps с вызовом метода startActivity (), например так:
String geoUriString = getResources (). GetString (R.string.map_location); Uri geoUri = Uri.parse (geoUriString); Intent mapCall = new Intent (Intent.ACTION_VIEW, geoUri); startActivity (mapCall);
Таким образом, когда пользователь нажимает кнопку «Назад», он возвращается к предыдущему действию. В этом случае это ваша активность, поэтому пользователь вернется туда, где он начал. Это отличный пример одного из преимуществ модели Activity, которую использует Android.
Шаг 4: Отображение карт по широте и долготе
Приложение разговорника теперь настроено на загрузку строк ресурсов местоположения и отображение карты в соответствующем месте. Давайте сделаем еще шаг вперед, предоставив широту, долготу и значение уровня масштабирования. Например, вы можете создать ресурс строки местоположения со следующими данными о местоположении:
1
|
<string name=»map_location»>geo:0,180?z=1</string>
|
Эти данные загрузят карту на широте 0 (экватор) и долготе 180 (середина Тихого океана). Карта будет полностью уменьшена, поэтому будет показан весь мир:
Шаг 5: Отображение карт по запросу имени местоположения
В дополнение к местоположениям с фиксированной точкой приложение Карты можно запускать в местоположениях по имени. Приложение «Карты» поддерживает различные форматы названий мест (адреса, страны, города, достопримечательности и т. Д.). Однако вы должны помнить, что некоторые имена весьма неоднозначны. Для приложения Phrasebok имеет смысл заполнить карту, используя название страны.
Например, установите значение для строки map_location в файле ресурсов региональной строки франкоязычной Бельгии (values-fr-rBE / strings.xml), чтобы:
1
|
<string name=»map_location»>»geo:0,0?q=Belgium»</string>
|
Здесь мы искали название страны. После запуска приложение «Карты» отобразит соответствующий регион мира: Бельгию!
Как мы уже говорили, названия локаций могут быть ориентирами. Например, вы можете добавить следующие данные о местоположении в швейцарско-французский строковый файл (values-fr-rCH / strings.xml):
1
|
<string name=»map_location»>»geo:0,0?q=Matterhorn&z=8″</string>
|
Опять же, приложение «Карты» отображает соответствующее местоположение карты — местоположение Маттерхорна в Швейцарских Альпах.
Обратите внимание на значения заполнителя для широты и долготы в запросах. Это просто часть формата запроса. Определенный почтовый адрес также будет работать с этими запросами.
Шаг 6: Отображение карт с поисковым запросом
Типичным способом Google Maps мы также можем выполнять поиск достопримечательностей в определенной окрестности. Например, мы могли бы добавить следующий запрос карты в файл строковых ресурсов Франции / Франции (values-fr-rFR / values.xml):
1
|
<string name=»map_location»>»geo:0,0?q=Coffee Shops near Paris, France»</string>
|
Этот запрос указывает приложению «Карты» центрировать карту в Париже, Франция и искать близлежащие кафе. Карты Google используют свои собственные алгоритмы для выбора магазинов для отображения. Пользователь может углубиться, чтобы увидеть больше магазинов.
Шаг 7: Отображение местоположения с просмотром улиц
Наконец, вы также можете отобразить Просмотр улиц в определенном месте, если оно существует. Следующая строка помещается в файл ресурсов французско-канадской строки (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. Переданные ему данные соответствуют именованным параметрам веб-версии 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 .