Статьи

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

Приложение iPhone Maps — это революционная программа, которая сочетает в себе мощь GPS и Google Maps с невероятно удобным интерфейсом. Этот краткий совет научит вас, как начать пользоваться преимуществами этой функции, запустив и настроив приложение «Карты» в своем проекте iPhone SDK.

Запуск приложения «Карты» в вашем собственном приложении можно выполнить с помощью следующих двух строк кода:

В первой строке мы запрашиваем ссылку на текущий запущенный экземпляр приложения из класса UIApplication.

Во второй строке мы сообщаем приложению открыть предоставленный URL-адрес, который в данном случае является действительным URL-адресом Карт Google. Вместо того чтобы открывать карту в Mobile Safari, как вы могли ожидать, экземпляр приложения достаточно умен, чтобы понять, что этот запрос лучше обрабатывается приложением «Карты», и вместо этого запустит его.

Примечание. К сожалению, iPhone Simulator не будет открывать приложение «Карты» с указанным выше кодом (в приложении «Симулятор» нет приложения «Карты»). Вам нужно будет запустить этот фрагмент на реальном устройстве iPhone OS для тестирования. Запуск этого кода в симуляторе iPhone запустит Google Maps в мобильном браузере Safari.

Карта Парижа

Вуаля! Добро пожаловать во Францию.

Теперь, когда мы понимаем основы, давайте углубимся в функциональность API Карт.

Указанный выше URL-адрес отформатирован в виде сообщения HTTP GET для приложения Google Maps. Он передает параметр «q», установленный в значение «Paris». «Q» обозначает запрос, и это наиболее общий тип запроса, который мы можем сделать. Некоторые другие часто используемые параметры включают в себя:

  • ll = : обозначает «широта / долгота» и позволяет пользователю значительно повысить точность при перетаскивании карт. Этот параметр часто используется в сочетании с встроенным GPS для отображения точечного отображения «Вы находитесь здесь». Значение для этого параметра должно быть предоставлено в десятичном формате и должно быть разделено запятыми.
  • saddr = : начальный или исходный адрес, который следует использовать при создании направлений движения.
  • daddr = : конечный или конечный адрес, который будет использоваться при создании направлений движения.
  • t = : тип карты, которая будет отображаться.
  • z = : уровень масштабирования карты, которая будет отображаться.

Как вы уже догадались, вы можете объединить несколько параметров в одном запросе GET. Это делается путем объединения их с символом «&».

Более подробную информацию о поддерживаемых параметрах (с примерами) вы можете найти в официальной документации Apple Inc. здесь .

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

Эйфелева башня расположена на широте 48 ° 51 ’32 ”северной широты, 002 ° 17′ 45” восточной долготы. Однако эта информация мало полезна для нас в текущем формате. Нам нужно преобразовать формат Градус / Минута / Второй в десятичный формат, требуемый параметром Google Maps ll = .

Есть много инструментов, доступных для быстрого выполнения этого онлайн, но, работая с картами Google, мне нравится использовать простой трюк для генерации пары широта / долгота из карты. После того, как на экране появится интересующее вас место, вставьте следующий фрагмент кода (взятый отсюда ) в адресную строку браузера и нажмите клавишу ввода:

Мы остались с десятичным форматом широты 48.85812229675187 и долготы 2.294490337371826.

Теперь, чтобы отправить нашего пользователя прямо в Эйфелеву башню, мы можем вставить следующее:

Карта Эйфелевой башни

По умолчанию он запускается с типом графической карты. Это не так впечатляет, как видение реальной вещи, поэтому давайте изменим тип карты на спутник, добавив ‘& t = k’ в нашу строку запроса:

Эйфелева башня увеличена

Это работает, но наш взгляд сверху слишком близок. Давайте немного выйдем, установив уровень масштабирования карты с помощью ‘& z = 19’:

Эйфелева башня увеличена

Отлично. La Tour Eiffel в ладони.