Kiểu bản đồ mới sắp xuất hiện trên Nền tảng Google Maps. Bản cập nhật này để tạo kiểu bản đồ bao gồm một bảng màu mặc định mới và các cải tiến về trải nghiệm bản đồ cũng như khả năng hữu dụng. Tất cả kiểu bản đồ sẽ được cập nhật tự động vào tháng 3 năm 2025. Để biết thêm thông tin về phạm vi cung cấp và cách chọn tham gia sớm hơn, hãy xem bài viết Kiểu bản đồ mới cho Nền tảng Google Maps.
Trang này là hướng dẫn nhanh về cách tạo kiểu cho bản đồ của bạn, sử dụng chế độ ban đêm làm ví dụ.
Tổng quan
Với các lựa chọn kiểu, bạn có thể tuỳ chỉnh cách trình bày các kiểu bản đồ tiêu chuẩn của Google, thay đổi cách hiển thị trực quan của các đối tượng như đường, công viên, doanh nghiệp và các địa điểm yêu thích khác. Tức là bạn có thể làm nổi bật các thành phần cụ thể của bản đồ hoặc làm cho bản đồ bổ trợ cho kiểu của ứng dụng.
Kiểu chỉ hoạt động trên loại bản đồ kGMSTypeNormal.
Đang áp dụng kiểu cho bản đồ của bạn
Để áp dụng kiểu bản đồ tuỳ chỉnh cho một bản đồ, hãy gọi GMSMapStyle(...) để tạo một thực thể GMSMapStyle, truyền vào một URL cho tệp JSON cục bộ hoặc một chuỗi JSON chứa định nghĩa kiểu. Gán thực thể GMSMapStyle cho thuộc tính mapStyle của bản đồ.
Sử dụng tệp JSON
Các ví dụ sau đây cho thấy cách gọi GMSMapStyle(...) và truyền một URL cho một tệp cục bộ:
Swift
import GoogleMaps
class MapStyling: UIViewController {
// Set the status bar style to complement night-mode.
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override func loadView() {
let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 14.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
do {
// Set the map style by passing the URL of the local file.
if let styleURL = Bundle.main.url(forResource: "style", withExtension: "json") {
mapView.mapStyle = try GMSMapStyle(contentsOfFileURL: styleURL)
} else {
NSLog("Unable to find style.json")
}
} catch {
NSLog("One or more of the map styles failed to load. \(error)")
}
self.view = mapView
}
}
Objective-C
#import "MapStyling.h"
@import GoogleMaps;
@interface MapStyling ()
@end
@implementation MapStyling
// Set the status bar style to complement night-mode.
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- (void)loadView {
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.myLocationEnabled = YES;
NSBundle *mainBundle = [NSBundle mainBundle];
NSURL *styleUrl = [mainBundle URLForResource:@"style" withExtension:@"json"];
NSError *error;
// Set the map style by passing the URL for style.json.
GMSMapStyle *style = [GMSMapStyle styleWithContentsOfFileURL:styleUrl error:&error];
if (!style) {
NSLog(@"The style definition could not be loaded: %@", error);
}
mapView.mapStyle = style;
self.view = mapView;
}
@end
Để xác định các lựa chọn kiểu, hãy thêm một tệp mới vào dự án có tên là style.json, rồi dán nội dung khai báo kiểu JSON sau đây cho việc định kiểu ở chế độ ban đêm:
Các ví dụ sau đây cho thấy cách gọi GMSMapStyle(...) và truyền một tài nguyên chuỗi:
Swift
class MapStylingStringResource: UIViewController {
let MapStyle = "JSON_STYLE_GOES_HERE"
// Set the status bar style to complement night-mode.
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override func loadView() {
let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 14.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
do {
// Set the map style by passing a valid JSON string.
mapView.mapStyle = try GMSMapStyle(jsonString: MapStyle)
} catch {
NSLog("One or more of the map styles failed to load. \(error)")
}
self.view = mapView
}
}
Objective-C
@implementation MapStylingStringResource
// Paste the JSON string to use.
static NSString *const kMapStyle = @"JSON_STYLE_GOES_HERE";
// Set the status bar style to complement night-mode.
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- (void)loadView {
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.myLocationEnabled = YES;
NSError *error;
// Set the map style by passing a valid JSON string.
GMSMapStyle *style = [GMSMapStyle styleWithJSONString:kMapStyle error:&error];
if (!style) {
NSLog(@"The style definition could not be loaded: %@", error);
}
mapView.mapStyle = style;
self.view = mapView;
}
@end
Để xác định các lựa chọn kiểu, hãy dán chuỗi kiểu sau làm giá trị của biến kMapStyle:
Bản đồ được tạo kiểu sử dụng 2 khái niệm để áp dụng màu sắc và các thay đổi khác về kiểu cho bản đồ:
Bộ chọn chỉ định các thành phần địa lý mà bạn có thể tạo kiểu trên bản đồ. Các thuộc tính này bao gồm đường phố, công viên, vùng nước, v.v., cũng như nhãn. Bộ chọn bao gồm các tính năng và phần tử, được chỉ định dưới dạng thuộc tính featureType và elementType.
Bộ định kiểu (Stylers) là các thuộc tính màu và chế độ hiển thị mà bạn có thể áp dụng cho các phần tử bản đồ. Tuỳ chọn này xác định màu hiển thị thông qua tổ hợp các giá trị màu sắc, màu sắc và độ sáng/gamma.
Sử dụng Trình hướng dẫn tạo kiểu của nền tảng Maps để tạo đối tượng định kiểu JSON một cách nhanh chóng. SDK Maps dành cho iOS hỗ trợ khai báo kiểu tương tự như API JavaScript của Maps.