Thêm bản đồ bằng điểm đánh dấu

Hướng dẫn này chỉ cho bạn cách thêm bản đồ Google đơn giản bằng điểm đánh dấu vào iOS của bạn . Phiên bản này phù hợp với những người có kiến thức sơ cấp hoặc trung cấp về Swift hoặc Mục tiêu-C cùng với kiến thức chung về Xcode. Để xem hướng dẫn nâng cao về tạo bản đồ, đọc thông tin hướng dẫn của nhà phát triển của chúng tôi.

Bạn sẽ tạo bản đồ dưới đây bằng hướng dẫn này. Điểm đánh dấu được đặt ở Sydney, Úc.

Ảnh chụp màn hình cho thấy một bản đồ có điểm đánh dấu ở Sydney

Lấy mã

Sao chép hoặc tải xuống Kho lưu trữ mẫu Google Maps dành cho iOS trên GitHub.

Hoặc, nhấp vào nút sau để tải xuống mã nguồn:

Đưa mã cho tôi

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

      

Bắt đầu

Trình quản lý gói Swift

Bạn có thể cài đặt SDK bản đồ dành cho iOS bằng cách sử dụng Trình quản lý gói Swift.

  1. Đảm bảo bạn đã xoá mọi SDK Maps hiện có cho các phần phụ thuộc iOS.
  2. Mở một cửa sổ dòng lệnh rồi chuyển đến thư mục tutorials/map-with-marker.
  3. Hãy đảm bảo không gian làm việc Xcode của bạn đã đóng và chạy các lệnh sau:
    sudo gem install cocoapods-deintegrate cocoapods-clean
    pod deintegrate
    pod cache clean --all
    rm Podfile
    rm map-with-marker.xcworkspace
  4. Mở dự án Xcode của bạn rồi xoá tệp podfile đó.
  5. Chuyển đến Tệp > Thêm phần phụ thuộc của gói.
  6. Nhập https://github.com/googlemaps/ios-maps-sdk làm URL, nhấn Enter để kéo trong gói và nhấp vào Add Package (Thêm gói).
  7. Bạn có thể cần đặt lại bộ nhớ đệm của gói bằng cách sử dụng File > Gói hàng > Đặt lại bộ nhớ đệm của gói.

Sử dụng CocoaPods

  1. Tải xuống và cài đặt Xcode phiên bản 15.0 trở lên.
  2. Nếu chưa có CocoaPods, cài đặt ứng dụng đó trên macOS bằng cách chạy lệnh sau trên cửa sổ dòng lệnh:
    sudo gem install cocoapods
  3. Chuyển đến thư mục tutorials/map-with-marker.
  4. Chạy lệnh pod install. Thao tác này sẽ cài đặt SDK Maps được chỉ định trong Podfile, cùng với mọi phần phụ thuộc.
  5. Chạy pod outdated để so sánh phiên bản nhóm đã cài đặt với mọi bản cập nhật mới. Nếu phát hiện thấy một phiên bản mới, hãy chạy pod update để cập nhật Podfile rồi cài đặt SDK mới nhất. Để biết thêm thông tin, hãy xem Hướng dẫn về CocoaPods.
  6. Mở (nhấp đúp) map-with-marker.xcworkspace của dự án để mở tệp đó trong Xcode. Bạn phải sử dụng tệp .xcworkspace để mở dự án.

Nhận khoá API và bật các API cần thiết

Để hoàn tất hướng dẫn này, bạn cần có khoá API của Google được phép hãy sử dụng SDK Bản đồ dành cho iOS. Nhấp vào nút sau đây để tải một khoá và kích hoạt API đó.

Bắt đầu

Để biết thêm thông tin, hãy xem Tải khoá API.

Thêm khoá API vào ứng dụng của bạn

Thêm khoá API vào AppDelegate.swift của bạn như sau:

  1. Lưu ý rằng câu lệnh nhập sau đã được thêm vào tệp:
    import GoogleMaps
  2. Chỉnh sửa dòng sau trong application(_:didFinishLaunchingWithOptions:) của bạn thay thế YOUR_API_KEY bằng khoá API:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Tạo và chạy ứng dụng

  1. Kết nối thiết bị iOS với máy tính của bạn hoặc chọn một trình mô phỏng từ trình đơn lược đồ Xcode.
  2. Nếu bạn đang sử dụng một thiết bị, hãy đảm bảo rằng dịch vụ vị trí đã được bật. Nếu bạn đang sử dụng trình mô phỏng, hãy chọn một vị trí trong phần Các tính năng .
  3. Trong Xcode, hãy nhấp vào tuỳ chọn trình đơn Product/Run (Sản phẩm/Chạy) (hoặc phát biểu tượng nút).
    • Xcode sẽ tạo ứng dụng, sau đó chạy ứng dụng trên thiết bị hoặc trên trình mô phỏng.
    • Bạn sẽ thấy một bản đồ có một điểm đánh dấu ở giữa Sydney trên bờ biển phía đông của Úc, tương tự như hình ảnh trên trang này.

Gỡ rối:

  • Nếu bạn không thấy bản đồ, hãy kiểm tra xem bạn đã lấy được khoá API và đã thêm cho ứng dụng, như mô tả trước đó. Séc Bảng điều khiển gỡ lỗi của Xcode để xem các thông báo lỗi về khoá API.
  • Nếu bạn đã hạn chế khoá API theo mã nhận dạng gói iOS, hãy chỉnh sửa để thêm giá trị nhận dạng gói cho ứng dụng: com.google.examples.map-with-marker.
  • Đảm bảo rằng bạn có kết nối Wi-Fi hoặc GPS tốt.
  • Sử dụng công cụ gỡ lỗi Xcode để xem nhật ký và gỡ lỗi ứng dụng.

Tìm hiểu mã nguồn

  1. Tạo bản đồ rồi đặt làm chế độ xem trong 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;
          
  2. Thêm một điểm đánh dấu vào bản đồ trong 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;
          

Theo mặc định, SDK bản đồ dành cho iOS hiển thị nội dung của thông tin khi người dùng nhấn vào một điểm đánh dấu. Bạn không cần thêm trình nghe lượt nhấp cho điểm đánh dấu nếu bạn muốn sử dụng chế độ mặc định.

Xin chúc mừng! Bạn đã xây dựng một ứng dụng iOS hiển thị bản đồ Google với điểm đánh dấu để chỉ báo một vị trí cụ thể. Bạn cũng tìm hiểu cách sử dụng SDK Bản đồ dành cho iOS.

Các bước tiếp theo

Tìm hiểu thêm về đối tượng bản đồ và những gì bạn có thể làm với điểm đánh dấu.