Все готово!

Прежде чем приступить к разработке, ознакомьтесь с документацией для разработчиков.

Активация Google Maps SDK for iOS

Чтобы помочь вам освоиться, мы покажем, как выполнить некоторые необходимые действия в консоли разработчика Google:

  1. Создание или выбор проекта
  2. Активация Google Maps SDK for iOS
  3. Создание соответствующих ключей

Street View

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

Обзор

Google Street View предоставляет круговые панорамы, снятые с указанных дорог в пределах области покрытия. Область покрытия SDK такая же, как и у приложения Google Maps для iOS или https://maps.google.com/. Дополнительные сведения о службе Street View и информация о поддерживаемых ею областях на интерактивной карте представлены на странице О службе Street View.

Google Maps SDK for iOS предоставляет службу Street View для получения и работы с изображениями, используемыми в Google Maps Street View. Изображения Street View возвращаются в виде панорам, которые можно просмотреть с помощью соответствующего средства отображения, объекта типа GMSPanoramaView.

Панорамы Street View

Каждая панорама Street View представляет собой изображение или набор изображений, обеспечивающие полный круговой обзор из одной точки. Изображения выполнены в соответствии с равнопромежуточной проекцией (проекция Плате-Карре), содержащей 360-градусный горизонтальный обзор (полный оборот) и 180-градусный вертикальный обзор (от направления строго вверх до направления строго вниз). Полученная 360-градусная панорама определяет проекцию на сфере с помощью переноса изображения на двухмерную поверхность этой сферы.

Панорамы Street View можно просматривать с помощью объекта GMSPanoramaView. Этот объект обеспечивает средство просмотра, которое представляет полученную панораму в виде сферы с камерой в центре. Вы можете программно управлять ориентацией камеры, а также некоторыми свойствами для настройки средства просмотра.

Доступ к данным Street View

Панорамы Street View определяются одной из двух частей метаданных:

panoramaID
Уникальный идентификатор панорамы Street View. Со временем этот panoramaID может изменяться и не подходит для использования в качестве долгосрочных, или жестко заданных, ссылочных значений. panoramaID эффективнее всего используется для обеспечения программного доступа к различным изображениям Street View. Примечание. На этом этапе панорамы Innerspace и Photo Sphere не поддерживаются.
coordinate
Точное местоположение этого изображения, выраженное как CLLocationCoordinate2D. Используйте coordinate для постоянного хранения местоположения панорамы, либо для преобразования действий пользователей на карте в изображение Street View.

Оба параметра panoramaID и coordinate хранятся в виде свойств объекта GMSPanorama. Вы можете запросить GMSPanorama из GMSPanoramaService, используя либо coordinate, либо panoramaID. Полученный объект будет включать в себя обе части метаданных, а также массив ссылок на соседние панорамы.

Просмотр панорам Street View

Добавление средства просмотра панорам Street View

Ниже приведены основные шаги для добавления средства просмотра.

  1. (Выполняется один раз) Следуйте указаниям в руководстве по началу работы, чтобы задействовать SDK, получить ключ и добавить необходимые инструменты.
  2. Создайте или обновите ViewController. Если панорама будет отображаться, когда этот контроллер представлений становится видимым, обязательно создавайте его в рамках метода loadView.
  3. Создайте и реализуйте экземпляр класса GMSPanoramaView, используя метод GMSPanoramaView initWithFrame:. Если это будет использоваться только как единственное представление в контроллере представлений, тогда в качестве рамки карты может использоваться CGRectZero – изменение размера карты будет выполнено автоматически.
  4. Установите объект GMSPanoramaView как представление контроллера, например self.view = panoView;.
  5. Установите местоположение панорамы Street View, используя один из методов, например moveNearCoordinate:.

В приведенном ниже примере показано добавление средства просмотра Street View в приложение.

Swift

import UIKit
import GoogleMaps

class ViewController: UIViewController, GMSMapViewDelegate {

  override func loadView() {
    let panoView = GMSPanoramaView(frame: .zero)
    self.view = panoView

    panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312))
  }
}

Objective-C

#import "ViewController.h"
@import GoogleMaps;

@implementation ViewController

- (void)loadView {
    GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
    self.view = panoView;

    [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)];
}
@end

Настройка средства просмотра

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

orientationGestures
Определяет, может ли пользователь изменять ориентацию камеры перетаскиванием. Установите значение NO, чтобы отключить возможность изменения ориентации камеры.
zoomGestures
Определяет, может ли пользователь изменять масштаб жестом сведения или разведения пальцев. Установите значение NO, чтобы отключить масштабирование.
navigationGestures
Определяет, может ли пользователь указывать, какая панорама будет отображаться. Чтобы перейти к новой панораме, пользователи могут один раз коснуться ссылок перехода или дважды коснуться экрана, чтобы изменить панорамы. Установите значение NO, чтобы отключить возможности перехода.

Вы можете разрешить или отключить использование сразу всех жестов, вызвав метод setAllGesturesEnabled:.

[panoView_ setAllGesturesEnabled:NO];

Запуск Street View, используя схему URL

Изображения в Google Street View могут отображаться в приложении Google Maps для iOS. Вы можете запустить приложение Google Maps для iOS в режиме просмотра улиц, используя схему URL-адреса comgooglemaps, установив для параметр mapmode режим streetview. Ниже приведен пример URL-адреса, который запускает Street View. Чтобы получить дополнительную информацию, см. документацию с описанием схемы URL-адреса.

comgooglemaps://?center=46.414382,10.013988&mapmode=streetview

Местоположения Street View и точка обзора

GMSPanoramaCamera позволяет устанавливать точку обзора камеры для Street View, используя комбинацию параметров направления, угла наклона и масштаба.

В приведенном ниже фрагменте показана ориентация камеры на юг с небольшим наклоном вниз.

Swift

let panoView = GMSPanoramaView(frame: .zero)
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)

Objective-C

GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
panoView_.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                  pitch:-10
                                                   zoom:1];

Ориентация

Местоположение Street View определяет фокус камеры для изображения, но не определяет ориентацию камеры для него. Для этой цели объект GMSOrientation использует два свойства:

  • heading – определяет угол поворота камеры в градусах от истинного севера. Направление считается по часовой стрелке. Строго на север – 0, на восток – 90, на юг – 180 и на запад – 270.
  • pitch (по умолчанию 0) – определяет угол наклона камеры (вверх или вниз) по умолчанию. В большинстве случаев (но не всегда) камера располагается строго горизонтально. (Например, при съемке панорамы с холма, скорее всего, будет наклон по умолчанию, потому что съемка производится не в горизонтальном положении камеры.) При указании угла наклона положительное значение означает направление вверх (до +90 градусов прямо вверх перпендикулярно углу наклона по умолчанию), а отрицательное – направление вниз (до -90 градусов прямо вниз перпендикулярно углу наклона по умолчанию).

Масштабирование

Street View также поддерживает разные уровни детализации изображений с помощью масштабирования. Вы можете установить уровень масштабирования программными средствами, либо пользователи могут изменять уровень масштабирования в средстве просмотра, выполняя жест сведения или разведения пальцев.

Перемещение камеры

После того как вы создали представление GMSPanoramaView и указали для него либо настроенную камеру, либо камеру по умолчанию, вы можете изменить его несколькими способами. При изменении камеры у вас есть возможность применить анимацию для ее перемещения. Анимация выполняет интерполяцию между текущими атрибутами камеры и ее новыми атрибутами.

Вы может изменить объект GMSPanoramaCamera и настроить свойство camera в этом GMSPanoramaView. Это переключит камеру на новую точку обзора без анимации. Можно создать GMSCameraPosition, чтобы настроить любую комбинацию ориентации и масштабирования.

Swift

let panoView = GMSPanoramaView(frame: .zero)
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)

Objective-C

GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];

Вы можете применить анимацию к переходу, вызвав метод animateToCamera:animationDuration: в GMSPanoramaView. Кроме того, для управления камерой можно использовать базовую анимацию. Это возможно с помощью изменяемого CALayer для GMSPanoramaView и GMSPanoramaLayer.

Маркеры в Street View

Объект GMSPanoramaView поддерживает отображение маркеров карты. Вы можете использовать один и тот же объект GMSMarker либо в представлении GMSMapView, либо в GMSPanoramaView, установив его соответствующие свойства:

Swift

// Create a marker at the Eiffel Tower
let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294)
let marker = GMSMarker(position: position)

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView

// Add the marker to a GMSMapView object named mapView
marker.map = mapView

Objective-C

// Create a marker at the Eiffel Tower
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294);
GMSMarker *marker = [GMSMarker markerWithPosition:position];

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView;

// Add the marker to a GMSMapView object named mapView
marker.map = mapView;

Масштаб отображения маркеров будет изменяться в зависимости от расстояния между положением маркера и местоположением GMSCameraView. Если это расстояние окажется слишком большим, маркер станет очень маленьким, не пригодным для отображения, и будет скрыт в представлении.

Примечание. При использовании представления GMSPanoramaView не все функции маркеров будут доступны.

Установите для свойства panoramaView значение nil, чтобы удалить его из объекта GMSPanoramaView.

Swift

marker.panoramaView = nil

Objective-C

marker.panoramaView = nil;

События

Вы можете отслеживать события на панораме Street View, например, когда пользователь касается этой панорамы. Чтобы отслеживать события, вам необходимо реализовать протокол GMSPanoramaViewDelegate. См. общее руководство с описанием событий и список методов для GMSPanoramaViewDelegate.

Оставить отзыв о...

Текущей странице
Google Maps SDK for iOS
Google Maps SDK for iOS
Нужна помощь? Обратитесь в службу поддержки.