Добавить карту с маркером

В этом руководстве показано, как добавить карту Google с маркером в ваше iOS-приложение. Оно подойдет пользователям с начальным или средним уровнем знаний Swift или Objective-C, а также с общими знаниями Xcode. Для получения более подробной информации о создании карт ознакомьтесь с руководством для разработчиков.

В этом руководстве вы создадите следующую карту. Маркер расположен в Сиднее, Австралия.

Скриншот карты с отметкой Сиднея.

Получите код

Клонируйте или загрузите репозиторий с примерами Google Maps для iOS на GitHub.

Или же нажмите следующую кнопку, чтобы загрузить исходный код:

Дайте мне код

Быстрый

import UIKit
import GoogleMaps

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        // Create a GMSCameraPosition that tells the map to display the
        // coordinate -33.86,151.20 at zoom level 6.
        let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
        let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera)
        self.view.addSubview(mapView)

        // Creates a marker in the center of the map.
        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
        marker.title = "Sydney"
        marker.snippet = "Australia"
        marker.map = mapView
  }
}
      

Objective-C

#import "ViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
  // Do any additional setup after loading the view.
  // Create a GMSCameraPosition that tells the map to display the
  // coordinate -33.86,151.20 at zoom level 6.
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                          longitude:151.20
                                                               zoom:6];
  GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera];
  mapView.myLocationEnabled = YES;
  [self.view addSubview:mapView];

  // Creates a marker in the center of the map.
  GMSMarker *marker = [[GMSMarker alloc] init];
  marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
  marker.title = @"Sydney";
  marker.snippet = @"Australia";
  marker.map = mapView;
}

@end
      

Начать

Swift Package Manager

SDK для работы с картами на iOS можно установить с помощью Swift Package Manager .

  1. Удалите все существующие зависимости Maps SDK для iOS.
  2. Откройте окно терминала и перейдите в каталог tutorials/map-with-marker .
  3. Закройте рабочую область Xcode и выполните следующие команды:
    sudo gem install cocoapods-deintegrate cocoapods-clean
    pod deintegrate
    pod cache clean --all
    rm Podfile
    rm map-with-marker.xcworkspace
  4. Откройте свой проект Xcode и удалите файл podfile.
  5. Перейдите в меню Файл > Добавить зависимости пакета .
  6. Введите в качестве URL-адреса https://github.com/googlemaps/ios-maps-sdk , нажмите Enter , чтобы загрузить пакет, и нажмите «Добавить пакет» .
  7. Возможно, вам потребуется сбросить кэш пакетов, используя меню Файл > Пакеты > Сбросить кэш пакетов .

Используйте CocoaPods

  1. Загрузите и установите Xcode версии 26.0 или более поздней.
  2. Если у вас еще нет CocoaPods , установите его на macOS, выполнив следующую команду в терминале:
    sudo gem install cocoapods
  3. Перейдите в каталог tutorials/map-with-marker .
  4. Выполните команду pod install . Это установит указанный в Podfile SDK для работы с картами , а также все необходимые зависимости.
  5. Запустите команду pod outdated , чтобы сравнить установленную версию Pod с любыми новыми обновлениями. Если обнаружена новая версия, запустите pod update , чтобы обновить Podfile и установить последнюю версию SDK. Для получения более подробной информации см. руководство по CocoaPods .
  6. Чтобы открыть файл map-with-marker.xcworkspace проекта в Xcode, откройте его (дважды щелкните). Для открытия проекта необходимо использовать именно файл .xcworkspace .

Получите ключ API и активируйте необходимые API.

Для выполнения этого руководства вам потребуется ключ Google API, авторизованный для использования Maps SDK для iOS. Нажмите на следующую кнопку, чтобы получить ключ и активировать API.

Начать

Для получения более подробной информации см. раздел «Получение ключа API» .

Добавьте ключ API в ваше приложение.

Добавьте свой API-ключ в файл AppDelegate.swift следующим образом:

  1. Обратите внимание, что в файл добавлено следующее оператор импорта:
    import GoogleMaps
  2. Отредактируйте следующую строку в методе application(_:didFinishLaunchingWithOptions:) , заменив YOUR_API_KEY на ваш API-ключ:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Создайте и запустите свое приложение.

  1. Подключите устройство iOS к компьютеру или выберите симулятор в меню схемы Xcode.
  2. Если вы используете устройство, убедитесь, что службы определения местоположения включены. Если вы используете симулятор, выберите местоположение в меню «Функции» .
  3. В Xcode щелкните пункт меню Product/Run (или значок кнопки воспроизведения).
    • Xcode собирает приложение, а затем запускает его на устройстве или в симуляторе.
    • Вы должны увидеть карту с отметкой, расположенной в центре Сиднея на восточном побережье Австралии, похожую на изображение на этой странице.

Поиск неисправностей:

  • Если вы не видите карту, убедитесь, что вы получили ключ API и добавили его в приложение, как описано ранее . Проверьте консоль отладки Xcode на наличие сообщений об ошибках, связанных с ключом API.
  • Если вы ограничили доступ к ключу API идентификатором пакета iOS, отредактируйте ключ, добавив идентификатор пакета для приложения: com.google.examples.map-with-marker .
  • Убедитесь, что у вас хорошее Wi-Fi-соединение или GPS-навигатор.
  • Используйте инструменты отладки Xcode для просмотра логов и отладки приложения.

Разберитесь в коде.

  1. Создайте карту и установите её в качестве представления в viewDidLoad() .

    Быстрый

    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
    let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
    view = mapView
          

    Objective-C

    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                            longitude:151.20
                                                                 zoom:6.0];
    GMSMapView *mapView = [[GMSMapView alloc] initWithFrame: CGRectZero camera:camera];
    self.view = mapView;
          
  2. Добавьте маркер на карту в viewDidLoad() .

    Быстрый

    // Creates a marker in the center of the map.
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
    marker.title = "Sydney"
    marker.snippet = "Australia"
    marker.map = mapView
          

    Objective-C

    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
    marker.title = @"Sydney";
    marker.snippet = @"Australia";
    marker.map = mapView;
          

По умолчанию SDK Maps для iOS отображает содержимое информационного окна при касании пользователем маркера. Нет необходимости добавлять обработчик клика для маркера, если вас устраивает поведение по умолчанию.

Поздравляем! Вы создали iOS-приложение, отображающее карту Google с маркером, указывающим на определенное местоположение. Вы также научились использовать SDK для карт iOS .

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

Узнайте больше об объекте «Карта» и о том, что можно делать с маркерами .