Chủ đề này mô tả cách định cấu hình bản đồ đã được thêm vào ứng dụng iOS bằng cách sử dụng SDK Maps dành cho iOS.
Tổng quan
Sau khi thêm bản đồ vào ứng dụng, bạn có thể định cấu hình chế độ cài đặt ban đầu và thời gian chạy của bản đồ. Để biết thông tin chi tiết về cách thêm một vùng chứa bản đồ, hãy xem Thêm bản đồ.
Cài đặt bản đồ ban đầu bao gồm:
- Vị trí máy ảnh, bao gồm: vị trí, thu phóng, đeo và nghiêng. Hãy xem phần Máy ảnh và chế độ xem để biết thông tin chi tiết về vị trí của máy ảnh.
- Loại bản đồ.
- Các thành phần giao diện người dùng để hiển thị, chẳng hạn như nút thu phóng và la bàn.
- Cử chỉ để bật.
Trong thời gian chạy, bạn có thể định cấu hình các chế độ cài đặt này và một số chế độ cài đặt bổ sung bằng cách cập nhật đối tượng GMSMapView
.
Loại bản đồ
Bạn có thể tuỳ chỉnh bản đồ của mình bằng một trong số nhiều loại bản đồ. Loại bản đồ sẽ chi phối bản trình bày tổng thể của bản đồ. Ví dụ: tập bản đồ thường chứa bản đồ chính trị tập trung vào việc hiển thị ranh giới và bản đồ đường thể hiện tất cả các đường của một thành phố hoặc khu vực. SDK bản đồ dành cho iOS cung cấp các loại bản đồ sau:
Loại bản đồ | |
---|---|
Bình thường | Giá trị:
kGMSTypeNormal Bản đồ đường đi điển hình. Hiển thị đường, một số tính năng do con người xây dựng và các đặc điểm tự nhiên quan trọng như sông. Đường và nhãn đối tượng địa lý cũng hiển thị.
|
Kết hợp | Giá trị:
kGMSTypeHybrid Dữ liệu ảnh vệ tinh với bản đồ đường được thêm vào. Đường và nhãn
tính năng cũng hiển thị. |
Vệ tinh | Giá trị:
kGMSTypeSatellite Dữ liệu ảnh vệ tinh. Đường và nhãn đối tượng không hiển thị.
|
Địa hình | Giá trị:
kGMSTypeTerrain Dữ liệu địa hình. Bản đồ bao gồm màu sắc, đường viền và nhãn, cùng với bóng đổ phối cảnh. Một số đường và nhãn cũng hiển thị.
|
Không có | Giá trị:
kGMSTypeNone Không có ô bản đồ nào. Các ô bản đồ cơ sở sẽ không được hiển thị. Chế độ này hữu ích cùng với các lớp ô xếp. Việc hiển thị dữ liệu giao thông sẽ bị vô hiệu hoá khi loại bản đồ được đặt thành không có. |
Thay đổi loại bản đồ
Để đặt loại bản đồ, hãy gán giá trị mới cho thuộc tính GMSMapView.mapType
. Ví dụ: để hiển thị loại bản đồ vệ tinh:
Swift
let camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView.map(withFrame: .zero, camera: camera) mapView.mapType = .satellite
Objective-C
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.mapType = kGMSTypeSatellite;
Trình chọn bên dưới sẽ hiển thị bản so sánh về địa hình, bản đồ pháp tuyến và bản đồ kết hợp cho cùng một địa điểm:
Bản đồ trong nhà
Ở mức thu phóng cao, SDK Maps dành cho iOS sẽ hiển thị sơ đồ tầng cho các không gian trong nhà, chẳng hạn như sân bay, trung tâm mua sắm, cửa hàng bán lẻ lớn và trạm phương tiện. Sơ đồ tầng trong nhà được tích hợp vào các ô bản đồ mặc định cho loại bản đồ "bình thường" (kGMSTypeNormal
) và được tự động bật khi người dùng phóng to và mờ dần khi bản đồ được thu nhỏ.
Bạn có thể tắt bản đồ trong nhà bằng cách đặt thuộc tính indoorEnabled
của GMSMapView
thành NO
.
Swift
mapView.isIndoorEnabled = false
Objective-C
mapView.indoorEnabled = NO;
Ngoài ra, bạn chỉ có thể tắt chế độ kiểm soát Bộ chọn tầng.
Thêm sơ đồ tầng
Sơ đồ mặt bằng có ở một số địa điểm. Nếu không có dữ liệu về sơ đồ tầng nhà cho một toà nhà mà bạn muốn làm nổi bật trong ứng dụng, bạn có thể:
- Thêm sơ đồ tầng trực tiếp vào Google Maps. Với mục tiêu này, tất cả người dùng Google Maps đều có thể sử dụng kế hoạch của bạn.
- Hiển thị sơ đồ tầng dưới dạng Lớp phủ mặt đất. Việc này sẽ chỉ cho phép người dùng ứng dụng xem sơ đồ tầng của bạn.
Lớp lưu lượng truy cập
Bạn có thể cho phép người dùng xem bản đồ với thông tin về mật độ giao thông xếp chồng lên trên bản đồ đó. Dữ liệu này cung cấp thông tin tóm tắt bằng hình ảnh về tình hình giao thông tại địa phương. Bạn có thể bật và tắt lớp lưu lượng truy cập bằng cách gọi phương thức trafficEnabled
. Ví dụ sau đây cho thấy cách lớp giao thông có thể xuất hiện trên bản đồ.
Hỗ trợ tiếp cận
Theo mặc định, các phần tử hỗ trợ tiếp cận trên bản đồ sẽ bị ẩn. Bạn có thể bật
tính năng hỗ trợ tiếp cận bằng cách đặt thuộc tính accessibilityElementsHidden
của
GMSMapView
thành NO
. Điều này sẽ tạo ra các phần tử hỗ trợ tiếp cận cho các đối tượng lớp phủ (chẳng hạn như GMSMarker
và cửa sổ thông tin, GMSPolyline
, v.v.).
Swift
mapView.accessibilityElementsHidden = false
Objective-C
mapView.accessibilityElementsHidden = NO;
Thuộc tính này tuân theo giao thức UIAccessibility
không chính thức, ngoại trừ giá trị mặc định trong SDK Maps dành cho iOS là YES
.
Vị trí của tôi
Theo mặc định, dữ liệu vị trí sẽ không xuất hiện trên bản đồ. Bạn có thể bật dấu chấm "Vị trí của tôi" màu xanh dương và hướng la bàn bằng cách đặt myLocationEnabled
trên GMSMapView
.
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
Việc bật tính năng này cũng sẽ cung cấp vị trí hiện tại của người dùng thông qua thuộc tính myLocation
. Thuộc tính này có thể không có sẵn ngay – ví dụ: nếu người dùng được iOS nhắc nhập để cho phép truy cập vào dữ liệu này. Trong trường hợp này, giá trị sẽ là 0.
Swift
print("User's location: \(String(describing: mapView.myLocation))")
Objective-C
NSLog(@"User's location: %@", mapView.myLocation);
Tòa nhà 3D
Khi xem cận cảnh nhiều thành phố, các toà nhà 3D sẽ hiển thị như bạn có thể thấy trong ảnh ở Seattle, Washington bên dưới.

Bạn có thể tắt toà nhà 3D bằng cách đặt thuộc tính GMSMapView
tương ứng trong Swift hoặc Objective-C, như minh hoạ bên dưới:
Swift
mapView.isBuildingsEnabled = false
Objective-C
[mapView setBuildingsEnabled:NO];
Khoảng đệm bản đồ
Google Map được thiết kế để lấp đầy toàn bộ khu vực do GMSMapView
xác định. Một số khía cạnh của cách bản đồ xuất hiện và hoạt động được xác định bởi các kích thước của chế độ xem:
- Mục tiêu của máy ảnh sẽ phản ánh tâm của vùng đệm.
- Công cụ điều khiển bản đồ được định vị tương đối với các cạnh của bản đồ.
- Thông tin pháp lý, chẳng hạn như tuyên bố bản quyền hoặc biểu trưng của Google xuất hiện ở cạnh dưới cùng của bản đồ.
Bạn có thể thêm khoảng đệm xung quanh các cạnh của bản đồ bằng cách sử dụng GMSMapView
.padding
. Bản đồ sẽ tiếp tục lấp đầy toàn bộ vùng chứa, nhưng vị trí văn bản và bộ điều khiển, cử chỉ bản đồ và chuyển động của máy ảnh sẽ hoạt động như thể nó được đặt trong một không gian nhỏ hơn. Điều này sẽ dẫn đến những thay đổi sau:
- Di chuyển máy ảnh thông qua các lệnh gọi API hoặc thao tác nhấn nút (ví dụ: la bàn, vị trí của tôi) sẽ tương ứng với vùng được đệm.
GMSMapView
.projection
sẽ trả về một phép chiếu chỉ bao gồm vùng đệm.- Các nút điều khiển trên giao diện người dùng sẽ được bù trừ từ cạnh của vùng chứa bằng số điểm đã chỉ định.
Khoảng đệm có thể hữu ích khi thiết kế giao diện người dùng trùng lặp với một số phần của bản đồ. Ví dụ: trong hình ảnh bên dưới, bản đồ sẽ được thêm vào dọc theo các cạnh bên trên và cạnh phải. Các nút điều khiển bản đồ có thể nhìn thấy và văn bản pháp lý sẽ được hiển thị dọc theo các cạnh của vùng đệm, được hiển thị bằng màu xanh lục, trong khi bản đồ sẽ tiếp tục lấp đầy toàn bộ vùng chứa, được hiển thị bằng màu xanh dương. Trong ví dụ này, bạn có thể di chuyển một trình đơn ở bên phải bản đồ mà không che khuất các thành phần điều khiển của bản đồ.
Để thêm khoảng đệm vào bản đồ, hãy tạo một đối tượng UIEdgeInsets
rồi chuyển đối tượng đó đến
GMSMapView
.padding
cơ sở lưu trú.
Swift
// Insets are specified in this order: top, left, bottom, right let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0) mapView.padding = mapInsets
Objective-C
// Insets are specified in this order: top, left, bottom, right UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0); mapView.padding = mapInsets;