Все готово!

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

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

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

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

Быстрый стиль карты – ночной режим

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

Обзор

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

Стилизация работает только на карте типа kGMSTypeNormal.

Применение стилей к карте

Чтобы применить настраиваемые стили карты, вызовите GMSMapStyle(...), чтобы создать экземпляр GMSMapStyle, передав ему URL-адрес локального файла JSON или строки JSON с объявлениями стилей. Назначьте экземпляр GMSMapStyle свойству карты mapStyle.

Использование файла JSON

Следующий пример показывает вызов GMSMapStyle(...) и передачу URL-адреса для локального файла:

Swift

В следующем примере кода предполагается, что ваш проект содержит файл под названием style.json:

import UIKit
import GoogleMaps

class ViewController: UIViewController {

  // Set the status bar style to complement night-mode.
  override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
  }

  override func loadView() {
    let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 14.0)
    let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)

    do {
      // Set the map style by passing the URL of the local file.
      if let styleURL = Bundle.main.url(forResource: "style", withExtension: "json") {
        mapView.mapStyle = try GMSMapStyle(contentsOfFileURL: styleURL)
      } else {
        NSLog("Unable to find style.json")
      }
    } catch {
      NSLog("One or more of the map styles failed to load. \(error)")
    }

    self.view = mapView
  }
}

Objective C

В следующем примере кода предполагается, что ваш проект содержит файл под названием style.json:

#import "ViewController.h"
@import GoogleMaps;

@implementation ViewController

// Set the status bar style to complement night-mode.
- (UIStatusBarStyle)preferredStatusBarStyle {
  return UIStatusBarStyleLightContent;
}

- (void)loadView {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                          longitude:151.20
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  mapView.myLocationEnabled = YES;

  NSBundle *mainBundle = [NSBundle mainBundle];
  NSURL *styleUrl = [mainBundle URLForResource:@"style" withExtension:@"json"];
  NSError *error;

  // Set the map style by passing the URL for style.json.
  GMSMapStyle *style = [GMSMapStyle styleWithContentsOfFileURL:styleUrl error:&error];

  if (!style) {
    NSLog(@"The style definition could not be loaded: %@", error);
  }

  mapView.mapStyle = style;
  self.view = mapView;
}
@end

Чтобы определить параметры стилей, добавьте в проект новый файл под названием style.json и вставьте следующее объявление стиля JSON для использования ночного режима:

Использование строкового ресурса

Следующие примеры показывают вызов GMSMapStyle(...) и передачу строкового ресурса:

Swift

import UIKit
import GoogleMaps

let kMapStyle = "[" +
"  {" +
"    \"featureType\": \"poi.business\"," +
"    \"elementType\": \"all\"," +
"    \"stylers\": [" +
"      {" +
"        \"visibility\": \"off\"" +
"      }" +
"    ]" +
"  }," +
"  {" +
"    \"featureType\": \"transit\"," +
"    \"elementType\": \"labels.icon\"," +
"    \"stylers\": [" +
"      {" +
"        \"visibility\": \"off\"" +
"      }" +
"    ]" +
"  }" +
"]"
class ViewController: UIViewController {

  // Set the status bar style to complement night-mode.
  override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
  }

  override func loadView() {
    let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 14.0)
    let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)

    do {
      // Set the map style by passing a valid JSON string.
      mapView.mapStyle = try GMSMapStyle(jsonString: kMapStyle)
    } catch {
      NSLog("One or more of the map styles failed to load. \(error)")
    }

    self.view = mapView
  }
}

Чтобы определить параметры стилей, вставьте следующую строку стиля как значение переменной kMapStyle:

Objective C

#import "ViewController.h"
@import GoogleMaps;

// Paste the JSON string to use.
static NSString *const kMapStyle = @"JSON_STYLE_GOES_HERE";

@implementation ViewController

// Set the status bar style to complement night-mode.
- (UIStatusBarStyle)preferredStatusBarStyle {
  return UIStatusBarStyleLightContent;
}

- (void)loadView {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                          longitude:151.20
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  mapView.myLocationEnabled = YES;

  NSError *error;

  // Set the map style by passing a valid JSON string.
  GMSMapStyle *style = [GMSMapStyle styleWithJSONString:kMapStyle error:&error];

  if (!style) {
    NSLog(@"The style definition could not be loaded: %@", error);
  }

  mapView.mapStyle = style;
  self.view = mapView;
}

@end

Чтобы определить параметры стилей, вставьте следующую строку стиля как значение переменной kMapStyle:

Объявления стиля JSON

Стилизованные карты используют две концепции применения цветов и иных стилистических изменений к карте.

  • Селекторы определяют географические элементы, которые можно стилизовать на карте. В их число входят дороги, парки, водоемы и многие другие объекты, а также их метки. Селекторы включают признаки и элементы, указываемые как свойства featureType и elementType.
  • Параметры стиля – это свойства цвета и видимости, которые можно применить к элементам карты. Они определяют отображаемый цвет как комбинацию значений тона, цвета и яркости/гаммы.

Подробное описание параметров стилизации JSON см. в документе Работа со стилем.

Google Maps APIs Styling Wizard

Используйте Google Maps APIs Styling Wizard в качестве быстрого способа создания объекта стиля JSON. Google Maps SDK for iOS поддерживает те же объявления стиля, что и Google Maps JavaScript API.

Примеры полного кода

Репозиторий ApiDemos в GitHub содержит примеры, демонстрирующие использование стилизации.

Следующий шаг

Узнайте, как скрыть элементы карты с помощью стилей.

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

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