Sử dụng Mã bản đồ

Mã bản đồ là một giá trị nhận dạng được liên kết với một kiểu hoặc đối tượng bản đồ cụ thể. Định cấu hình kiểu bản đồ và liên kết kiểu đó với mã bản đồ trong Google Cloud Console. Sau đó, khi bạn tham chiếu đến một mã bản đồ trong mã của mình, kiểu bản đồ liên kết với mã đó sẽ hiển thị trong ứng dụng. Mọi nội dung cập nhật kiểu sau đó mà bạn thực hiện sẽ tự động xuất hiện trong ứng dụng mà không cần khách hàng cập nhật.

Khi tạo, mã bản đồ được liên kết với một dự án và cũng bị giới hạn ở một nền tảng (Android, iOS, JavaScript) hoặc đối với API tĩnh của Maps.

Để tạo hoặc quản lý mọi mã bản đồ trong Cloud Console, bạn phải có vai trò IAM của Chủ sở hữu dự án hoặc Người chỉnh sửa dự án.

Các quyền bắt buộc

Để tạo hoặc quản lý mọi mã bản đồ hoặc Kiểu bản đồ trong một dự án nhất định trên Google Cloud, bạn phải giữ vai trò IAM của Chủ sở hữu hoặc Người chỉnh sửa đối với dự án đó.

Tạo mã bản đồ

Mã bản đồ là giá trị nhận dạng duy nhất đại diện cho một thực thể của Google Map. Bạn có thể tạo mã bản đồ và cập nhật kiểu liên kết với mã bản đồ bất cứ lúc nào trong Cloud Console.

Cách tạo mã bản đồ:

  1. Trong Cloud Console, hãy truy cập vào trang Quản lý Maps.
  2. Chọn Tạo mã bản đồ mới để hiển thị biểu mẫu Tạo mã bản đồ mới.
    Tạo mã bản đồ mới

    Trong biểu mẫu, hãy làm như sau:

    • Chỉ định tên bản đồ.
    • Chỉ định loại bản đồ hoặc nền tảng.
    • Đối với bản đồ JavaScript, hãy chọn đường quét hoặc loại bản đồ vectơ.
    • Nhập nội dung mô tả về bản đồ.
    • Chọn Tiếp theo để hiển thị mã bản đồ mới.

Liên kết mã bản đồ với một kiểu bản đồ

Những hướng dẫn này giả định rằng có ít nhất một kiểu bản đồ hiện có trong dự án của bạn.

  1. Trong Cloud Console, hãy truy cập vào trang Quản lý Maps.
  2. Trên trang này, chọn mã bản đồ hiện có từ cột Tên bản đồ.
  3. Ở cuối biểu mẫu này, hãy chọn một kiểu bản đồ từ trình đơn thả xuống Kiểu bản đồ được liên kết với Mã bản đồ này.
  4. Chọn Lưu.
    Ảnh chụp màn hình cho thấy trang chi tiết của một mã bản đồ, bao gồm cả trường thả xuống cho phép người dùng liên kết kiểu bản đồ với mã bản đồ này.

Thêm mã bản đồ vào ứng dụng của bạn

Android

Thêm mã bản đồ thông qua một phần tử <fragment> trong tệp bố cục của hoạt động (bằng cách sử dụng lớp MapView) hoặc theo phương thức lập trình thông qua lớp GoogleMapOptions.

Ví dụ: giả sử bạn đã tạo mã bản đồ được lưu trữ dưới dạng giá trị chuỗi có tên map_id trong res/values/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="map_id">YOUR_MAP_ID</string>
</resources>

Đối với các bản đồ được thêm qua phần tử <fragment> trong tệp bố cục của hoạt động, tất cả các mảnh bản đồ cần có kiểu tuỳ chỉnh đều phải chỉ định mã bản đồ trong thuộc tính map:mapId:

<fragment xmlns:map="http://schemas.android.com/apk/res-auto"
    class="com.google.android.gms.maps.SupportMapFragment"
    …
    map:mapId="@string/map_id" />

Bạn cũng có thể sử dụng thuộc tính map:mapId của lớp MapView để chỉ định mã nhận dạng bản đồ:

<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    ....
    map:mapId="@string/map_id" />

Để chỉ định mã nhận dạng bản đồ theo phương thức lập trình, hãy truyền mã đó vào một thực thể MapFragment bằng cách sử dụng lớp GoogleMapOptions:

Java

 MapFragment mapFragment = MapFragment.newInstance(
     new GoogleMapOptions()
         .mapId(getResources().getString(R.string.map_id)));

Kotlin

 val mapFragment = MapFragment.newInstance(
     GoogleMapOptions()
         .mapId(resources.getString(R.string.map_id))
 )

Trong Android Studio, hãy tạo và chạy ứng dụng như bình thường. Kiểu tuỳ chỉnh, như được định cấu hình ở bước đầu tiên, sẽ được áp dụng cho tất cả các bản đồ có mã nhận dạng.

iOS

Để tạo bản sao của bản đồ bằng mã bản đồ, hãy thực hiện các bước sau:

  1. Tạo GMSMapID bằng chuỗi mã bản đồ trong Cloud Console.
  2. Tạo GMSMapView chỉ định mã bản đồ mà bạn vừa tạo.

Swift

let camera = GMSCameraPosition(latitude: 47.0169, longitude: -122.336471, zoom: 12)
let mapID = GMSMapID(identifier: "<YOUR MAP ID>")
let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: camera)
self.view = mapView

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.0169
                                                        longitude:-122.336471
                                                             zoom:12];
GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"<YOUR MAP ID>"];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:camera];
self.view = mapView;

Nếu đang sử dụng mã bản đồ của riêng mình, bạn có thể đặt mã bản đồ trong Cloud Console để tạo một kiểu mới bất cứ lúc nào, và kiểu đó sẽ tự động được phản ánh trên chế độ xem bản đồ cho bạn và người dùng trong vòng khoảng 6 giờ.

Nếu muốn xem các thay đổi ngay lập tức, bạn có thể đóng và khởi động lại ứng dụng bằng cách thoát khỏi ứng dụng, buộc thoát ứng dụng trong danh sách ứng dụng đã dùng gần đây rồi mở lại. Khi đó, bản đồ đã cập nhật sẽ xuất hiện.

JavaScript

Cách tạo bản đồ bằng mã bản đồ trong mã xử lý ứng dụng:

  1. Nếu bạn đang tuỳ chỉnh bản đồ bằng mã JSON nhúng, hãy xoá thuộc tính styles khỏi đối tượng MapOptions; nếu không, hãy bỏ qua bước này.

  2. Thêm mã nhận dạng bản đồ vào bản đồ bằng cách sử dụng thuộc tính mapId. Ví dụ:

map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8,
mapId: 'MAP_ID'
});

Bản đồ tĩnh

Để thêm mã bản đồ vào một bản đồ mới hoặc hiện có sử dụng một trong các API dịch vụ web của chúng tôi, hãy thêm tham số URL map_id và đặt tham số đó thành mã bản đồ của bạn. Ví dụ này cho thấy cách thêm mã nhận dạng bản đồ vào bản đồ bằng cách sử dụng Maps Static API.

<img src="https://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600x300&maptype=roadmap&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318&markers=color:red%7Clabel:C%7C40.718217,-73.998284&key=YOUR_API_KEY&map_id=YOUR_MAP_ID&signature=YOUR_SIGNATURE" />

Một bản đồ nằm ở giữa Cầu Brooklyn ở Thành phố New York, New York, Hoa Kỳ với các chế độ điều khiển bản đồ ở góc dưới bên phải. Bản đồ hiển thị kiểu tuỳ chỉnh trên đường, mặt nước và đất liền.

Nếu có chữ ký số trong URL tĩnh của Maps trước khi thêm mã bản đồ, bạn sẽ cần tạo và thêm chữ ký số mới sau khi thêm mã bản đồ. Khi tạo bí mật ký URL mới, hãy nhớ xoá chữ ký số trước đó khỏi URL.

Các tính năng dùng được khi sử dụng mã bản đồ

Tạo kiểu bản đồ trên đám mây: tạo kiểu, tùy chỉnh và quản lý bản đồ của bạn bằng Google Cloud Console.
Có trên mọi nền tảng (Android, JavaScript, iOS và Maps Static API)

Bản đồ vectơ: bản đồ bao gồm các ô dựa trên vectơ, được vẽ vào thời gian tải ở phía máy khách bằng WebGL.
Có trên JavaScript