Добавьте карту с маркером
В этом руководстве показано, как добавить простую карту 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 } }
Цель-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 .
- Убедитесь, что вы удалили все существующие зависимости Maps SDK для iOS.
- Откройте окно терминала и перейдите в каталог
tutorials/map-with-marker
. - Убедитесь, что ваше рабочее пространство Xcode закрыто, и выполните следующие команды:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all rm Podfile rm map-with-marker.xcworkspace
- Откройте проект Xcode и удалите подфайл.
- Откройте «Файл» > «Добавить зависимости пакета» .
- Введите https://github.com/googlemaps/ios-maps-sdk в качестве URL-адреса, нажмите Enter , чтобы получить пакет, и нажмите «Добавить пакет» .
- Возможно, вам придется сбросить кеш пакетов, выбрав «Файл» > «Пакеты» > «Сбросить кеш пакетов» .
Используйте CocoaPods
- Загрузите и установите Xcode версии 15.0 или новее.
- Если у вас еще нет CocoaPods , установите его в macOS, выполнив следующую команду из терминала:
sudo gem install cocoapods
- Перейдите в каталог
tutorials/map-with-marker
. - Запустите команду
pod install
. При этом будет установлен Maps SDK , указанный вPodfile
, вместе со всеми зависимостями. - Запустите
pod outdated
, чтобы сравнить установленную версию модуля с новыми обновлениями. Если обнаружена новая версия, запуститеpod update
, чтобы обновитьPodfile
и установить последнюю версию SDK. Более подробную информацию можно найти в Руководстве по CocoaPods . - Откройте (дважды щелкните) файл карты с маркером.xcworkspace проекта, чтобы открыть его в Xcode. Чтобы открыть проект, необходимо использовать файл
.xcworkspace
.
Получите ключ API и включите необходимые API.
Для работы с этим руководством вам понадобится ключ Google API, авторизованный для использования Maps SDK для iOS. Нажмите следующую кнопку, чтобы получить ключ и активировать API.
НачатьДополнительные сведения см. в разделе Получение ключа API .
Добавьте ключ API в свое приложение
Добавьте свой ключ API в AppDelegate.swift
следующим образом:
- Обратите внимание, что в файл добавлен следующий оператор импорта:
import GoogleMaps
- Отредактируйте следующую строку в
application(_:didFinishLaunchingWithOptions:)
, заменив YOUR_API_KEY своим ключом API:GMSServices.provideAPIKey("YOUR_API_KEY")
Создайте и запустите свое приложение
- Подключите устройство iOS к компьютеру или выберите симулятор в меню схемы Xcode.
- Если вы используете устройство, убедитесь, что службы определения местоположения включены. Если вы используете симулятор, выберите местоположение в меню «Функции» .
- В Xcode щелкните пункт меню «Продукт/Выполнить» (или значок кнопки воспроизведения).
- Xcode создает приложение, а затем запускает его на устройстве или в симуляторе.
- Вы должны увидеть карту с маркером в центре Сиднея на восточном побережье Австралии, похожую на изображение на этой странице.
Поиск неисправностей:
- Если вы не видите карту, убедитесь, что вы получили ключ API и добавили его в приложение, как описано ранее . Проверьте консоль отладки Xcode на наличие сообщений об ошибках, связанных с ключом API.
- Если вы ограничили ключ API идентификатором пакета iOS, отредактируйте ключ, добавив идентификатор пакета для приложения:
com.google.examples.map-with-marker
. - Убедитесь, что у вас хорошее соединение Wi-Fi или GPS.
- Используйте инструменты отладки Xcode для просмотра журналов и отладки приложения.
Разобраться в коде
- Создайте карту и установите ее в качестве представления в
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
Цель-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;
- Добавьте маркер на карту в
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
Цель-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 .
Следующие шаги
Узнайте больше об объекте карты и о том, что можно делать с маркерами .