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

В этом руководстве показано, как добавить простую карту 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

Maps 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. Введите https://github.com/googlemaps/ios-maps-sdk в качестве URL-адреса, нажмите Enter , чтобы загрузить пакет, и нажмите Добавить пакет .
  7. Возможно, вам придется сбросить кэш пакетов с помощью Файл > Пакеты > Сбросить кэш пакетов .

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

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

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

Для завершения этого руководства вам нужен ключ API Google, который авторизован для использования 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 выберите пункт меню «Продукт/Запустить» (или значок кнопки воспроизведения).
    • 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;
          

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

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

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

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