Dodawanie mapy ze znacznikiem
Ten samouczek pokazuje, jak dodać prostą mapę Google ze znacznikiem do aplikacji na iOS. Ta opcja jest odpowiednia dla osób, które znają język Swift na poziomie podstawowym lub średnio zaawansowanym, a także ogólną wiedzę o Xcode. Zaawansowany przewodnik o tworzeniu map znajdziesz w przewodniku dla programistów.
W tym samouczku utworzysz następującą mapę. Znacznik znajduje się w Sydney w Australii.
Pobierz kod
Skopiuj lub pobierz repozytorium przykładowych Map Google na iOS z GitHuba.
Możesz też kliknąć ten przycisk, aby pobrać kod źródłowy:
Swift
/* * Copyright 2020 Google Inc. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ 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
/* * Copyright 2020 Google Inc. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ #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
Rozpocznij
Menedżer pakietów Swift
Pakiet SDK Map Google na iOS można zainstalować za pomocą menedżera pakietów Swift.
- Sprawdź, czy zostały usunięte wszystkie zależności pakietu Maps SDK na iOS.
- Otwórz okno terminala i przejdź do katalogu
tutorials/mapwithmarker
. -
Zamknij obszar roboczy Xcode i uruchom te polecenia:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all rm Podfile rm map-with-marker.xcworkspace
- Otwórz projekt Xcode i usuń podfile.
- Wybierz Plik > Dodaj zależności pakietów.
- Wpisz URL https://github.com/googlemaps/ios-maps-sdk, naciśnij Enter, by pobrać pakiet, a następnie kliknij Dodaj pakiet.
- Może być konieczne zresetowanie pamięci podręcznej pakietów, klikając Plik > Pakiety > Zresetuj pamięć podręczną pakietów.
Używaj CocoaPods
- Pobierz i zainstaluj Xcode w wersji 14.0 lub nowszej.
- Jeśli nie masz jeszcze CocoaPods, zainstaluj go w macOS, uruchamiając z terminala to polecenie:
sudo gem install cocoapods
- Przejdź do katalogu
tutorials/map-with-marker
. - Uruchom polecenie
pod install
. Spowoduje to zainstalowanie pakietu SDK Map Google określonego wPodfile
wraz ze wszystkimi zależnościami. - Uruchom
pod outdated
, aby porównać zainstalowaną wersję poda z nowymi aktualizacjami. Jeśli zostanie wykryta nowa wersja, uruchom poleceniepod update
, aby zaktualizować pakiet SDKPodfile
i zainstalować najnowszy pakiet SDK. Więcej informacji znajdziesz w przewodniku po CocoaPods. - Otwórz (dwukrotnie) plik map-with-marker.xcworkspace projektu, aby otworzyć go w Xcode. Aby otworzyć projekt, musisz użyć pliku
.xcworkspace
.
Uzyskiwanie klucza interfejsu API i włączanie niezbędnych interfejsów API
Aby ukończyć ten samouczek, potrzebujesz klucza interfejsu API Google, który jest autoryzowany do korzystania z pakietu SDK Map Google na iOS. Kliknij przycisk poniżej, aby uzyskać klucz i aktywować interfejs API.
RozpocznijWięcej informacji znajdziesz w artykule o uzyskiwaniu klucza interfejsu API.
Dodawanie klucza interfejsu API do aplikacji
Dodaj klucz interfejsu API do urządzenia AppDelegate.swift
, wykonując te czynności:
- Zwróć uwagę, że do pliku została dodana ta instrukcja importu:
import GoogleMaps
- Edytuj ten wiersz w metodzie
application(_:didFinishLaunchingWithOptions:)
, zastępując YOUR_API_KEY kluczem interfejsu API:GMSServices.provideAPIKey("YOUR_API_KEY")
Tworzenie i uruchamianie aplikacji
- Podłącz urządzenie z iOS do komputera lub wybierz symulator z menu schematu Xcode.
- Jeśli korzystasz z urządzenia, upewnij się, że są włączone usługi lokalizacyjne. Jeśli korzystasz z symulatora, wybierz lokalizację z menu Funkcje.
- W Xcode kliknij opcję menu Produkt/Uruchom (lub ikonę przycisku odtwarzania).
- Xcode kompiluje aplikację, a potem uruchamia ją na urządzeniu lub w symulatorze.
- Powinna wyświetlić się mapa ze znacznikiem wyśrodkowanym na Sydney na wschodnim wybrzeżu Australii, podobna do przedstawionej na tej stronie.
Rozwiązywanie problemów:
- Jeśli nie widzisz mapy, sprawdź, czy udało Ci się uzyskać klucz interfejsu API i dodać go do aplikacji w sposób opisany powyżej. Poszukaj komunikatów o błędach związanych z kluczem interfejsu API w konsoli debugowania Xcode.
- Jeśli klucz interfejsu API jest ograniczony przez identyfikator pakietu na iOS, edytuj klucz, aby dodać identyfikator pakietu dla aplikacji:
com.google.examples.map-with-marker
. - Upewnij się, że masz dobre połączenie z siecią Wi-Fi lub GPS.
- Aby wyświetlić logi i debugować aplikację, użyj narzędzi do debugowania Xcode.
Zrozumienie kodu
- Utwórz mapę i ustaw ją jako widok w aplikacji
viewDidLoad()
.Swift
// 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;
- Dodaj znacznik do mapy w:
viewDidLoad()
.Swift
// 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;
Domyślnie pakiet SDK Map Google na iOS wyświetla zawartość okna informacyjnego, gdy użytkownik kliknie znacznik. Jeśli odpowiada Ci działanie domyślne, nie musisz dodawać detektora kliknięć.
Gratulacje! Masz aplikację na iOS, która wyświetla mapę Google ze znacznikiem wskazującym konkretną lokalizację. Wiesz też, jak korzystać z pakietu SDK Map Google na iOS.
Dalsze kroki
Dowiedz się więcej o obiekcie mapy i o tym, co można zrobić za pomocą znaczników.