Все готово!

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

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

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

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

Наземные наложения

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

Введение

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

Чтобы добавить наземное наложение, создайте объект GMSGroundOverlay, определяющий как сам значок, так и его границы. Если любой из этих параметров не будет указан, наземное наложение не отобразится на карте. Можно также указать дополнительные параметры, которые повлияют на размещение изображения на карте. После определения всех необходимых параметров установите это свойство map для этого объекта, чтобы добавить наложение.

Добавление наземного наложения

  1. Создайте новый объект GMSGroundOverlay.
  2. Установите свойство icon для экземпляра UIImage.
  3. Установите свойство bounds для экземпляра GMSCoordinateBounds. Границы представляют юго-западный и северо-восточный углы изображения.
  4. При необходимости установите дополнительные свойства, такие как bearing и zoomLevel.
  5. Установите свойство map – изображение появится на экране.

В приведенном ниже примере показан процесс добавления наземного наложения к существующему объекту GMSMapView.

Swift

let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655)
let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544)
let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
let icon = UIImage(named: "newark_nj_1922")

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView

Objective-C

CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest
                                                                        coordinate:northEast];

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"];
GMSGroundOverlay *overlay =
    [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

Удаление наложения

Чтобы удалить наложение с карты, установите в своем объекте GMSGroundOverlay для свойства map значение nil. В качестве альтернативы можно удалить все наложения (включая наземные наложения), которые в настоящий момент имеются на карте, вызвав для представления GMSMapView метод clear.

Swift

let camera = GMSCameraPosition.camera(withLatitude: 40.71,
                                      longitude: -74.22,
                                      zoom:11)
let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
...
mapView.clear()

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:40.742
                                                        longitude:-74.174
                                                             zoom:6];
mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
...
[mapView clear];

Если требуется изменить или удалить наземное наложение после его добавления на карту, убедитесь в наличии привязки к объекту GMSGroundOverlay. Это наложение можно изменить позже, внеся изменения в этот объект.

Swift

let overlay = GMSGroundOverlay(position: newark, icon: icon, zoomLevel: 10)
overlay.map = mapView
...
overlay.isTappable = true

Objective-C

GMSGroundOverlay *overlay =
    [GMSGroundOverlay groundOverlayWithPosition:newark
                                           icon:icon
                                      zoomLevel:10];
overlay.map = mapView;
...
overlay.tappable = YES;

События

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

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

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