Sử dụng mã bản đồ
Mã bản đồ là giá trị nhận dạng được liên kết với một kiểu bản đồ hoặc đối tượng địa lý 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 một mã bản đồ trong mã, kiểu bản đồ liên kết với mã đó sẽ hiển thị trong ứng dụng của bạn. Mọi lần cập nhật kiểu tiếp theo 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 thông tin.
Sau khi tạo, mã bản đồ sẽ được liên kết với một dự án và cũng bị hạn chế ở một nền tảng (Android, iOS, JavaScript) hoặc API Maps tĩnh.
Để tạo hoặc quản lý mã bản đồ bất kỳ trong Cloud Console, bạn phải có vai trò Quản trị viên 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ã bản đồ hoặc kiểu bản đồ trong một dự án Google Cloud cụ thể, bạn phải có vai trò Chủ sở hữu hoặc Người chỉnh sửa IAM đố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 bản sao của Google Map. Bạn có thể tạo mã bản đồ và cập nhật một kiểu được 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 đồ:
- Trong Cloud Console, hãy chuyển đến trang Quản lý Maps.
- Chọn Create New Map ID (Tạo mã bản đồ mới) để hiển thị biểu mẫu 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 loại bản đồ đường quét hoặc 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 ID bản đồ với 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.
- Trong Cloud Console, hãy chuyển đến trang Quản lý Maps.
- Trên trang này, hãy chọn một mã bản đồ hiện có từ cột Tên bản đồ.
- Ở cuối biểu mẫu này, hãy chọn kiểu bản đồ trong trình đơn thả xuống Kiểu bản đồ liên kết với Mã bản đồ này.
- Chọn Lưu.
Thêm mã bản đồ vào ứng dụng
Android
Thêm mã bản đồ thông qua 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 sử dụng lớp GoogleMapOptions
theo phương thức lập trình.
Ví dụ: giả sử bạn đã tạo một 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 bản đồ được thêm thông 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 đồ phải có kiểu tuỳ chỉnh phải chỉ định mã nhận dạng 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ã 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ã bản đồ theo phương thức lập trình, hãy chuyển mã này vào một bản sao 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 của bạn 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ả bản đồ có mã nhận dạng.
iOS
Để tạo bản đồ bằng mã bản đồ, hãy thực hiện như sau:
- Tạo
GMSMapID
bằng chuỗi mã bản đồ trong Cloud Console. - 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 đồ riêng, bạn có thể đặt mã bản đồ trong Cloud Console để có 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 khoảng 6 giờ.
Nếu muốn xem nội dung 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 khỏi ứng dụng trong danh sách ứng dụng đã sử dụng gần đây rồi mở lại. Khi đó, bản đồ được cập nhật sẽ xuất hiện.
JavaScript
Để tạo bản đồ có ID bản đồ trong mã xử lý ứng dụng của bạn, hãy làm như sau:
Nếu bạn đang tùy chỉnh bản đồ của mình bằng mã JSON nhúng, hãy xóa thuộc tính
styles
khỏi đối tượngMapOptions
; nếu không, hãy bỏ qua bước này.Thêm một mã 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' });
Maps tĩnh
Để thêm mã nhận dạng bản đồ vào bản đồ mới hoặc hiện có sử dụng một trong các API dịch vụ web, 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 việc thêm mã bản đồ vào bản đồ bằng cách sử dụng API Maps tĩnh.
<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" />
Các tính năng khả dụng khi sử dụng ID bản đồ
Định 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ó sẵn trên tất cả các nền tảng (API Android, JavaScript, iOS và Maps tĩnh)
Bản đồ vectơ: một bản đồ bao gồm các ô dựa trên vectơ, được vẽ tại thời điểm tải ở phía máy khách bằng cách sử dụng WebGL.
Có sẵn trên JavaScript