Dodaj mapę ze znacznikiem
Ten samouczek pokazuje, jak dodać do aplikacji na iOS prostą mapę Google ze znacznikiem. Jest przeznaczona dla osób o początkowej lub średniozaawansowanej wiedzy w zakresie języka Swift lub Objective-C oraz ogólnej wiedzy o Xcode. Zaawansowany przewodnik tworzenia map znajdziesz w przewodniku dla programistów.
Za pomocą tego samouczka utworzysz następującą mapę. Znacznik znajduje się w Sydney.
Pobierz kod
Skopiuj lub pobierz repozytorium przykładowych Map Google na iOS z GitHuba.
Możesz też kliknąć następujący 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 Maps SDK na iOS można zainstalować za pomocą menedżera pakietów Swift.
- Upewnij się, że wszystkie zależności od pakietu Maps SDK na iOS zostały usunięte.
- Otwórz okno terminala i przejdź do katalogu
tutorials/map-with-marker
. -
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ń plik podfile.
- Kliknij Plik > Dodaj zależności pakietu.
- Jako URL wpisz https://github.com/googlemaps/ios-maps-sdk, naciśnij Enter, aby pobrać pakiet, i kliknij Dodaj pakiet.
- Może być konieczne zresetowanie pamięci podręcznej pakietów. W tym celu kliknij Plik > Pakiety > Zresetuj pamięć podręczną pakietów.
Używaj CocoaPods
- Pobierz i zainstaluj Xcode w wersji 15.0 lub nowszej.
- Jeśli nie masz jeszcze aplikacji CocoaPods, zainstaluj ją w systemie macOS, uruchamiając w terminalu to polecenie:
sudo gem install cocoapods
- Przejdź do katalogu
tutorials/map-with-marker
. - Uruchom polecenie
pod install
. Spowoduje to zainstalowanie pakietu Maps SDK określonego w tabeliPodfile
wraz z wszystkimi zależnościami. - Uruchom
pod outdated
, aby porównać wersję zainstalowanego poda z wszystkimi nowymi aktualizacjami. Po wykryciu nowej wersji uruchom poleceniepod update
, aby zaktualizowaćPodfile
i zainstalować najnowszy pakiet SDK. Więcej informacji znajdziesz w przewodniku CocoaPods. - Otwórz (kliknij 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 z uprawnieniami do korzystania z pakietu SDK Maps na iOS. Aby uzyskać klucz i aktywować interfejs API, kliknij przycisk poniżej.
RozpocznijWięcej informacji znajdziesz w artykule na temat uzyskiwania klucza interfejsu API.
Dodawanie klucza interfejsu API do aplikacji
Dodaj klucz interfejsu API do AppDelegate.swift
w ten sposób:
- Pamiętaj, że do pliku dodano tę instrukcję importu:
import GoogleMaps
- Zmień ten wiersz w metodzie
application(_:didFinishLaunchingWithOptions:)
, zastępując YOUR_API_KEY swoim 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 używasz urządzenia, upewnij się, że są włączone usługi lokalizacyjne. Jeśli używasz symulatora, wybierz lokalizację z menu Funkcje.
- W Xcode kliknij opcję menu Product/Run (Produkt/Uruchom) (lub ikonę przycisku odtwarzania).
- Xcode tworzy aplikację, a następnie uruchamia ją na urządzeniu lub w symulatorze.
- Powinna wyświetlić się mapa ze znacznikiem wyśrodkowana na Sydney na wschodnim wybrzeżu Australii, podobnie jak 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. Sprawdź, czy w konsoli debugowania Xcode są komunikaty o błędach dotyczące klucza interfejsu API.
- Jeśli klucz interfejsu API został ograniczony przez identyfikator pakietu na iOS, edytuj klucz, aby dodać identyfikator pakietu aplikacji:
com.google.examples.map-with-marker
. - Upewnij się, że masz dobre połączenie z siecią Wi-Fi lub GPS.
- Użyj narzędzi do debugowania Xcode, aby wyświetlać logi i debugować aplikację.
Zrozumienie kodu
- Utwórz mapę i ustaw ją jako widok w usłudze
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 usłudze
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 Maps SDK na iOS wyświetla zawartość okna informacyjnego, gdy użytkownik kliknie znacznik. Jeśli chcesz korzystać z działania domyślnego, nie musisz dodawać detektora kliknięć znacznika.
Gratulacje! Masz aplikację na iOS, która wyświetla mapę Google ze znacznikiem wskazującym konkretną lokalizację. Wiesz już, jak korzystać z pakietu SDK Maps na iOS.
Dalsze kroki
Dowiedz się więcej o obiekcie mapy i o tym, co możesz zrobić ze znacznikami.