Thêm bản đồ

Chọn nền tảng: Android iOS JavaScript

Các bản đồ được biểu thị trong API bằng lớp GMSMapView, một lớp con của UIView. Bản đồ là đối tượng quan trọng nhất trong Maps SDK cho iOS và cung cấp các phương thức cần thiết để thêm, xoá và quản lý các đối tượng khác như điểm đánh dấu và đường nhiều đoạn.

Giới thiệu

Maps SDK dành cho iOS cho phép bạn hiển thị bản đồ Google trong ứng dụng iOS của mình. Những bản đồ này có giao diện giống như bản đồ mà bạn thấy trong ứng dụng Google Maps dành cho iOS và SDK này cung cấp nhiều tính năng tương tự.

Ngoài chức năng lập bản đồ, API này còn hỗ trợ nhiều hoạt động tương tác phù hợp với mô hình giao diện người dùng iOS. Ví dụ: bạn có thể thiết lập các hoạt động tương tác với bản đồ bằng cách xác định các đối tượng phản hồi phản ứng với cử chỉ của người dùng, chẳng hạn như nhấn và nhấn đúp.

Lớp khoá khi làm việc với đối tượng Bản đồ là lớp GMSMapView. GMSMapView tự động xử lý các thao tác sau:

  • Đang kết nối với dịch vụ Google Maps.
  • Đang tải các ô bản đồ xuống.
  • Hiển thị các ô trên màn hình thiết bị.
  • Hiển thị nhiều chế độ kiểm soát như xoay và thu phóng.
  • Phản hồi các cử chỉ kéo và thu phóng bằng cách di chuyển bản đồ và phóng to hoặc thu nhỏ.
    • Phản hồi cử chỉ bằng hai ngón tay bằng cách nghiêng góc nhìn của bản đồ.

Ngoài các thao tác tự động này, bạn có thể kiểm soát hành vi và giao diện của bản đồ thông qua các thuộc tính và phương thức do lớp GMSMapView hiển thị. Sử dụng GMSMapView để thêm và xoá điểm đánh dấu, lớp phủ mặt đất và đường nhiều đoạn, thay đổi loại bản đồ được hiển thị và kiểm soát nội dung xuất hiện trên bản đồ thông qua lớp GMSCameraPosition.

Xây dựng bản đồ bằng SwiftUI

SwiftUI cung cấp một cách khác để tạo giao diện người dùng bằng phương pháp khai báo. Bạn cho SwiftUI biết giao diện bạn muốn cho khung hiển thị cùng với tất cả các trạng thái khác nhau của khung hiển thị đó, còn hệ thống sẽ làm phần còn lại. SwiftUI xử lý việc cập nhật khung hiển thị bất cứ khi nào trạng thái cơ bản thay đổi do một sự kiện hoặc hành động của người dùng.

Maps SDK dành cho iOS được xây dựng dựa trên UIKit và không cung cấp chế độ xem tương thích với SwiftUI. Để thêm bản đồ trong SwiftUI, bạn cần tuân thủ UIViewRepresentable hoặc UIViewControllerRepresentable. Để tìm hiểu thêm, hãy xem Lớp học lập trình thêm bản đồ vào ứng dụng iOS bằng SwiftUI.

Thêm bản đồ

Các bước cơ bản để thêm bản đồ là:

  1. Để tải SDK, lấy khoá API và thêm các khung hình bắt buộc, hãy làm theo các bước trong:

    1. Thiết lập trong Google Cloud Console

    2. Sử dụng khoá API

    3. Thiết lập dự án Xcode

    4. Trong AppDelegate, hãy cung cấp khoá API cho phương thức lớp provideAPIKey: trên GMSServices.

    5. Tạo hoặc cập nhật ViewController. Nếu bản đồ xuất hiện khi bộ điều khiển khung hiển thị này hiển thị, hãy nhớ tạo bản đồ trong phương thức viewDidLoad.

    6. Khi khởi tạo chế độ xem bản đồ, hãy đặt các lựa chọn cấu hình bằng GMSMapViewOptions. Các thuộc tính bao gồm frame, camera, mapID,backgroundColor hoặc screen.

    7. Đặt thuộc tính các lựa chọn về bản đồ camera bằng đối tượng GMSCameraPosition. Tham số này chỉ định tâm và mức thu phóng của bản đồ.

    8. Tạo và khởi tạo một lớp GMSMapView bằng phương thức GMSMapView options:. Nếu bản đồ này chỉ được dùng làm khung hiển thị duy nhất của trình điều khiển khung hiển thị, thì bạn có thể dùng giá trị mặc định CGRectZero của lựa chọn bản đồ frame làm khung hiển thị frame – bản đồ sẽ tự động đổi kích thước.

    9. Đặt đối tượng GMSMapView làm khung hiển thị của trình điều khiển khung hiển thị. Ví dụ: self.view = mapView;.

Ví dụ dưới đây thêm một bản đồ vào ứng dụng, với tâm là trung tâm Singapore.

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()

    let options = GMSMapViewOptions()
    options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    options.frame = self.view.bounds;

    let mapView = GMSMapView(options:options)
    self.view = mapView
  }
}

Objective-C

- (void)viewDidLoad {
  [super viewDidLoad];

  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                        longitude:103.848
                                                             zoom:12];
  options.frame = self.view.bounds;

  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  self.view = mapView;
}

Sau khi làm theo các bước này, bạn có thể định cấu hình thêm đối tượng GMSMapView.

Bước tiếp theo

Sau khi hoàn tất các bước này, bạn có thể định cấu hình chế độ cài đặt bản đồ.