Tổng quan
Đây là lớp chính của SDK Google Maps dành cho iOS và là điểm truy cập cho tất cả các phương thức liên quan đến bản đồ.
Bản đồ phải được tạo thực thể thông qua một trong các hàm khởi tạo -init hoặc -initWithOptions:.
Bạn chỉ có thể đọc và sửa đổi GMSMapView từ luồng chính, tương tự như tất cả các đối tượng UIKit. Việc gọi các phương thức này từ một luồng khác sẽ dẫn đến ngoại lệ hoặc hành vi không xác định.
Hàm thành viên công khai | |
(loại thực thể) | – init |
Khởi động bằng CGRectZero và các tuỳ chọn mặc định. | |
(loại thực thể) | – initWithOptions: |
Tạo chế độ xem bản đồ mới với các tuỳ chọn cho sẵn. | |
(loại thực thể) | – initWithFrame: |
(loại thực thể) | – initWithCoder: |
(loại thực thể) | – initWithFrame:camera: |
Tạo và trả về chế độ xem bản đồ, với khung và mục tiêu máy ảnh. | |
(loại thực thể) | – initWithFrame:mapID:camera: |
Tạo và trả về chế độ xem bản đồ có khung, mã bản đồ và mục tiêu máy ảnh. | |
(void) | – startRendering (Bắt đầu kết xuất) |
Yêu cầu bản đồ này bật trình kết xuất. | |
(void) | – stopRendering |
Yêu cầu bản đồ này tắt nguồn trình kết xuất. | |
(void) | – xoá |
Xoá tất cả nội dung đánh dấu đã được thêm vào bản đồ, bao gồm cả các điểm đánh dấu, hình nhiều đường và lớp phủ trên mặt đất. | |
(void) | – setMinZoom:maxZoom: |
Đặt minZoom và maxZoom . | |
(nullable GMSCameraPosition *) | – cameraForBounds:insets: |
Tạo GMSCameraPosition để hiển thị bounds bằng padding . | |
(void) | – moveCamera: |
Thay đổi camera theo update . | |
(BOOL) | – areEqualForRenderingPosition:position: |
Kiểm tra xem các vị trí máy ảnh nhất định có thực tế khiến máy ảnh được kết xuất giống nhau hay không, có tính đến mức độ chính xác và các phép biến đổi được sử dụng nội bộ. | |
(GMSFeatureLayer < GMSPlaceFeature * > *) | – featureLayerOfFeatureType: |
Trả về lớp đối tượng thuộc kiểu được chỉ định. | |
(void) | – animateToCameraPosition: |
Tạo ảnh động cho máy ảnh của bản đồ này thành cameraPosition . | |
(void) | – animateToLocation: |
Dưới dạng animateToCameraPosition:, nhưng chỉ thay đổi vị trí của máy ảnh (tức là từ vị trí hiện tại thành location ). | |
(void) | – animateToZoom: |
Dưới dạng animateToCameraPosition:, nhưng chỉ thay đổi mức thu phóng của máy ảnh. | |
(void) | – animateToBearing: |
Là animateToCameraPosition:, nhưng chỉ thay đổi góc phương vị của máy ảnh (tính bằng độ). | |
(void) | – animateToXemAngle: |
Dưới dạng animateToCameraPosition:, nhưng chỉ thay đổi góc xem của máy ảnh (tính bằng độ). | |
(void) | – animateWithCameraUpdate: |
Áp dụng cameraUpdate cho máy ảnh hiện tại, sau đó sử dụng kết quả theo animateToCameraPosition:. | |
Hàm thành viên công khai tĩnh | |
(loại thực thể) | + mapWithFrame:camera: |
Tạo và trả về chế độ xem bản đồ có mục tiêu khung và máy ảnh. | |
(loại thực thể) | + mapWithFrame:mapID:camera: |
Trình khởi tạo tiện lợi để tạo và trả về chế độ xem bản đồ có khung, mã bản đồ và mục tiêu máy ảnh. | |
Thuộc tính | |
Mã IBOutlet< GMSMapViewDelegate > | uỷ quyền |
Ủy quyền GMSMapView. | |
GMSCameraPosition * | máy ảnh |
Điều khiển máy ảnh giúp xác định cách định hướng bản đồ. | |
GMSProjection * | phép chiếu |
Trả về đối tượng GMSProjection mà bạn có thể sử dụng để chuyển đổi giữa toạ độ màn hình và toạ độ vĩ độ/kinh độ. | |
CẢM ƠN | myLocationEnabled |
Kiểm soát xem có bật vòng tròn Vị trí của tôi và độ chính xác không. | |
CLLocation * | myLocation |
Nếu Vị trí của tôi được bật, cho thấy nơi chấm vị trí thiết bị đang được vẽ. | |
GMSMarker * | selectedMarker |
Điểm đánh dấu được chọn. | |
CẢM ƠN | trafficEnabled |
Kiểm soát việc bản đồ có đang vẽ dữ liệu giao thông hay không, nếu có. | |
GMSMapViewType | mapType |
Kiểm soát loại ô bản đồ sẽ hiển thị. | |
GMSMapStyle * | mapStyle |
Kiểm soát kiểu của bản đồ. | |
float | minZoom |
Mức thu phóng tối thiểu (có thể thu nhỏ máy ảnh xa nhất). | |
float | maxZoom |
Thu phóng tối đa (máy ảnh gần với Trái Đất nhất). | |
CẢM ƠN | buildingsEnabled |
Nếu bạn đặt chính sách này, các toà nhà 3D sẽ hiển thị nếu có. | |
CẢM ƠN | indoorEnabled |
Đặt bản đồ trong nhà có hiển thị hay không, nếu có. | |
GMSIndoorDisplay * | indoorDisplay |
Lấy thực thể GMSIndoorDisplay cho phép quan sát hoặc kiểm soát các khía cạnh của màn hình dữ liệu trong nhà. | |
GMSUISettings (Cài đặt GMSUI) * | cài đặt |
Lấy đối tượng GMSUISettings (Kiểm soát chế độ cài đặt giao diện người dùng cho bản đồ). | |
UIEdgeInsets | padding |
Kiểm soát vùng "hiển thị" của khung hiển thị. | |
GMSMapViewPaddingAdjustmentBehavior | paddingAdjustmentBehavior |
Kiểm soát cách thêm các phần lồng ghép vùng an toàn vào giá trị khoảng đệm. | |
CẢM ƠN | accessibilityElementsHidden |
Giá trị mặc định là YES. | |
GMSMapLayer * | lớp |
Trình truy cập cho loại CALayer tuỳ chỉnh dùng cho lớp. | |
GMSFrameRate (Tỷ lệ khung hình) | preferredFrameRate |
Kiểm soát tốc độ khung hình kết xuất. | |
GMSCoordinateBounds * | cameraTargetBounds |
Nếu giá trị không là nil, hãy ràng buộc mục tiêu máy ảnh để các cử chỉ không thể làm cho mục tiêu đó rời khỏi giới hạn đã chỉ định. | |
GMSMapCapabilityFlags | mapCapabilities |
Tất cả các khả năng hoạt động theo điều kiện (tuỳ thuộc vào mapID hoặc các chế độ cài đặt khác của bản đồ) có sẵn tại thời điểm hiện tại. | |
Hàm liên quan | |
(Lưu ý rằng đây không phải là hàm thành phần.) | |
NSString *const | kGMSAccessibilityCompass |
Giá trị nhận dạng hỗ trợ tiếp cận cho nút la bàn. | |
NSString *const | kGMSAccessibilityMyLocation |
Giá trị nhận dạng hỗ trợ tiếp cận cho nút "vị trí của tôi". | |
NSString *const | kGMSAccessibilityOutOfQuota |
Giá trị nhận dạng hỗ trợ tiếp cận cho nhãn lỗi "hết hạn mức". |
Tài liệu về hàm thành phần
– (instancetype) init |
Khởi động bằng CGRectZero và các tuỳ chọn mặc định.
– (instancetype) initWithOptions: | (GMSMapViewOptions không rỗng *) | tuỳ chọn |
Tạo chế độ xem bản đồ mới với các tuỳ chọn cho sẵn.
Phương thức này sao chép giá trị của đối tượng tuỳ chọn.
– (instancetype) initWithFrame: | (CGRect) | khung |
– (instancetype) initWithCoder: | (NSCoder *) | bộ mã hoá |
+ (instancetype) mapWithFrame: | (CGRect) | khung | |
máy ảnh: | (GMSCameraPosition *) | máy ảnh | |
Tạo và trả về chế độ xem bản đồ có mục tiêu khung và máy ảnh.
+ (instancetype) mapWithFrame: | (CGRect) | khung | |
mapID: | (GMSMapID *) | mapID | |
máy ảnh: | (GMSCameraPosition *) | máy ảnh | |
Trình khởi tạo tiện lợi để tạo và trả về chế độ xem bản đồ có khung, mã bản đồ và mục tiêu máy ảnh.
– (instancetype) initWithFrame: | (CGRect) | khung | |
máy ảnh: | (GMSCameraPosition *) | máy ảnh | |
Tạo và trả về chế độ xem bản đồ, với khung và mục tiêu máy ảnh.
- Lưu ý:
- Phiên bản này không còn dùng nữa. Thay vào đó, hãy sử dụng -init hoặc -initWithOptions:.
– (instancetype) initWithFrame: | (CGRect) | khung | |
mapID: | (GMSMapID *) | mapID | |
máy ảnh: | (GMSCameraPosition *) | máy ảnh | |
Tạo và trả về chế độ xem bản đồ có khung, mã bản đồ và mục tiêu máy ảnh.
- Lưu ý:
- Phiên bản này không còn dùng nữa. Thay vào đó, hãy sử dụng -init hoặc -initWithOptions:.
– (vô hiệu) startRendering |
Yêu cầu bản đồ này bật trình kết xuất.
Điều này là không bắt buộc và không thay đổi giá trị.
- Lưu ý:
- Phiên bản này không còn dùng nữa. Phương thức này đã lỗi thời và sẽ bị xoá trong bản phát hành sau này.
– (vô hiệu) stopRendering |
Yêu cầu bản đồ này tắt nguồn trình kết xuất.
Điều này là không bắt buộc và không thay đổi giá trị.
- Lưu ý:
- Phiên bản này không còn dùng nữa. Phương thức này đã lỗi thời và sẽ bị xoá trong bản phát hành sau này.
– (vô hiệu) xoá |
Xoá tất cả nội dung đánh dấu đã được thêm vào bản đồ, bao gồm cả các điểm đánh dấu, hình nhiều đường và lớp phủ trên mặt đất.
Thao tác này sẽ không xoá dấu chấm vị trí hiển thị hoặc đặt lại mapType hiện tại.
– (vô hiệu) setMinZoom: | (float) | minZoom | |
maxZoom: | (float) | maxZoom | |
Đặt minZoom
và maxZoom
.
Phương thức này dự kiến mức tối thiểu phải nhỏ hơn hoặc bằng giá trị tối đa, nếu không sẽ gửi một ngoại lệ có tên là NSRangeException.
- (nullable GMSCameraPosition *) cameraForBounds: | (GMSCoordinateBounds *) | giới hạn | |
phần lồng ghép: | (UIEdgeInsets) | phần lồng ghép | |
Tạo GMSCameraPosition để hiển thị bounds
bằng padding
.
Máy ảnh sẽ không có góc phương vị và độ nghiêng bằng 0 (tức là hướng về phía bắc và nhìn thẳng vào Trái đất). Điều này có tính đến khung và khoảng đệm của GMSMapView này.
Nếu giới hạn không hợp lệ, phương thức này sẽ trả về máy ảnh nil.
– (vô hiệu) moveCamera: | (GMSCameraUpdate *) | cập nhật |
Thay đổi camera theo update
.
Quá trình thay đổi máy ảnh diễn ra ngay lập tức (không có ảnh động).
– (BOOL) areEqualForRenderingPosition: | (GMSCameraPosition *) | vị trí | |
vị trí: | (GMSCameraPosition *) | otherPosition | |
Kiểm tra xem các vị trí máy ảnh nhất định có thực tế khiến máy ảnh được kết xuất giống nhau hay không, có tính đến mức độ chính xác và các phép biến đổi được sử dụng nội bộ.
– (GMSFeatureLayer<GMSPlaceFeature *> *) featureLayerOfFeatureType: | (GMSFeatureType) | featureType |
Trả về lớp đối tượng thuộc kiểu được chỉ định.
Các lớp tính năng phải được định cấu hình trong Cloud Console.
Nếu một lớp thuộc loại được chỉ định không tồn tại trên bản đồ này hoặc nếu kiểu dựa trên dữ liệu không được bật hoặc nếu Khung kết xuất kim loại không được sử dụng, thì lớp thu được sẽ là NO
và sẽ không phản hồi bất kỳ lệnh gọi nào.
Yêu cầu kết xuất đồ hoạ Metal. Tìm hiểu cách bật Metal tại https://developers.google.com/maps/documentation/ios-sdk/config#use-metal
– (vô hiệu) animateToCameraPosition: | (GMSCameraPosition *) | cameraPosition |
Tạo ảnh động cho máy ảnh của bản đồ này thành cameraPosition
.
– (vô hiệu) animateToLocation: | (CLLocationCoordinate2D) | vị trí |
Như animateToCameraPosition:, nhưng chỉ thay đổi vị trí của máy ảnh (tức là từ vị trí hiện tại thành location
).
– (vô hiệu) animateToZoom: | (float) | thu phóng |
Dưới dạng animateToCameraPosition:, nhưng chỉ thay đổi mức thu phóng của máy ảnh.
Giá trị này được giới hạn bởi [kGMSMinZoomLevel, kGMSMaxZoomLevel].
– (vô hiệu) animateToBearing: | (CLLocationDirection) | mang |
Là animateToCameraPosition:, nhưng chỉ thay đổi góc phương vị của máy ảnh (tính bằng độ).
0 có nghĩa là hướng bắc thực.
– (vô hiệu) animateToXemAngle: | (gấp đôi) | viewingAngle |
Dưới dạng animateToCameraPosition:, nhưng chỉ thay đổi góc xem của máy ảnh (tính bằng độ).
Giá trị này sẽ được giới hạn ở mức nhỏ nhất là 0 (tức là hướng thẳng xuống) và từ 30 đến 45 độ về phía đường chân trời, tuỳ thuộc vào độ gần với trái đất.
– (vô hiệu) animateWithCameraUpdate: | (GMSCameraUpdate *) | cameraUpdate |
Áp dụng cameraUpdate
cho máy ảnh hiện tại, sau đó sử dụng kết quả theo animateToCameraPosition:.
Tài liệu về bạn bè và hàm liên quan
– (NSString* const) kGMSAccessibilityCompass [related] |
Giá trị nhận dạng hỗ trợ tiếp cận cho nút la bàn.
– (NSString* const) kGMSAccessibilityMyLocation [related] |
Giá trị nhận dạng hỗ trợ tiếp cận cho nút "vị trí của tôi".
– (NSString* const) kGMSAccessibilityOutOfQuota [related] |
Giá trị nhận dạng hỗ trợ tiếp cận cho nhãn lỗi "hết hạn mức".
Tài liệu về thuộc tính
- (id IBOutlet<GMSMapViewDelegate>) uỷ quyền [read, write, assign] |
Ủy quyền GMSMapView.
– (GMSCameraPosition*) camera [read, write, copy] |
Điều khiển máy ảnh giúp xác định cách định hướng bản đồ.
Quá trình sửa đổi thuộc tính này sẽ diễn ra ngay lập tức.
– (GMSProjection*) phép chiếu [read, assign] |
Trả về đối tượng GMSProjection mà bạn có thể sử dụng để chuyển đổi giữa toạ độ màn hình và toạ độ vĩ độ/kinh độ.
Đây là ảnh chụp nhanh của phép chiếu hiện tại và sẽ không tự động cập nhật khi máy ảnh di chuyển. Nó đại diện cho phép chiếu của khung GMSMapView được vẽ gần đây nhất hoặc; trong đó máy ảnh đã được đặt rõ ràng hoặc bản đồ vừa được tạo, khung sắp tới. Giá trị này sẽ không bao giờ bằng không.
– (BOOL) myLocationEnabled [read, write, assign] |
Kiểm soát xem có bật vòng tròn Vị trí của tôi và độ chính xác không.
Giá trị mặc định là NO.
– (CLLocation*) myLocation [read, assign] |
Nếu Vị trí của tôi được bật, cho thấy nơi chấm vị trí thiết bị đang được vẽ.
Nếu Google Analytics 4 bị vô hiệu hoá hoặc được bật nhưng không có dữ liệu vị trí, thì giá trị này sẽ bằng không. Bạn có thể quan sát thuộc tính này bằng KVO.
– (GMSMarker*) selectedMarker [read, write, assign] |
Điểm đánh dấu được chọn.
Việc đặt thuộc tính này sẽ chọn một điểm đánh dấu cụ thể, hiển thị cửa sổ thông tin trên đó. Nếu thuộc tính này không phải là không, việc đặt nó là nil sẽ bỏ chọn điểm đánh dấu, ẩn cửa sổ thông tin. Bạn có thể quan sát thuộc tính này bằng KVO.
– (BOOL) trafficEnabled [read, write, assign] |
Kiểm soát việc bản đồ có đang vẽ dữ liệu giao thông hay không, nếu có.
Điều này phụ thuộc vào tình trạng sẵn có của dữ liệu giao thông. Giá trị mặc định là NO.
– (GMSMapViewType) mapType [read, write, assign] |
Kiểm soát loại ô bản đồ sẽ hiển thị.
Giá trị mặc định là kGMSTypeNormal.
– (GMSMapStyle*) mapStyle [read, write, assign] |
Kiểm soát kiểu của bản đồ.
Giá trị mapStyle không có giá trị sẽ chỉ áp dụng nếu mapType là Bình thường.
– (số thực) minZoom [read, assign] |
Mức thu phóng tối thiểu (có thể thu nhỏ máy ảnh xa nhất).
Giá trị mặc định là kGMSMinZoomLevel. Được sửa đổi bằng -setMinZoom:maxZoom:.
– (số thực) maxZoom [read, assign] |
Thu phóng tối đa (máy ảnh gần với Trái Đất nhất).
Giá trị mặc định là kGMSMaxZoomLevel. Được sửa đổi bằng -setMinZoom:maxZoom:.
– (BOOL) buildingsEnabled [read, write, assign] |
Nếu bạn đặt chính sách này, các toà nhà 3D sẽ hiển thị nếu có.
Giá trị mặc định là YES.
Điều này có thể hữu ích khi thêm một lớp ô tuỳ chỉnh vào bản đồ, để làm cho nó rõ ràng hơn ở mức thu phóng cao. Việc thay đổi giá trị này sẽ khiến tất cả các thẻ thông tin bị mất hiệu lực trong một thời gian ngắn.
– (BOOL) indoorEnabled [read, write, assign] |
Đặt bản đồ trong nhà có hiển thị hay không, nếu có.
Giá trị mặc định là YES.
Nếu bạn đặt chính sách này thành KHÔNG, thì các bộ nhớ đệm dành cho dữ liệu trong nhà có thể bị xoá hoàn toàn và mọi tầng mà người dùng cuối hiện đang chọn có thể được đặt lại.
– (GMSIndoorDisplay*) indoorDisplay [read, assign] |
Lấy thực thể GMSIndoorDisplay cho phép quan sát hoặc kiểm soát các khía cạnh của màn hình dữ liệu trong nhà.
- (GMSUISettings*) cài đặt [read, assign] |
Lấy đối tượng GMSUISettings (Kiểm soát chế độ cài đặt giao diện người dùng cho bản đồ).
– (UIEdgeInsets) khoảng đệm [read, write, assign] |
Kiểm soát vùng "hiển thị" của khung hiển thị.
Bằng cách áp dụng khoảng đệm, một khu vực xung quanh cạnh của thành phần hiển thị có thể được tạo ra. Vùng này sẽ chứa dữ liệu bản đồ nhưng không chứa các thành phần điều khiển trên giao diện người dùng.
Nếu khoảng đệm không cân bằng, tâm hình ảnh của chế độ xem sẽ di chuyển cho phù hợp. Khoảng đệm cũng sẽ ảnh hưởng đến thuộc tính projection
, vì vậy, vùng hiển thị sẽ không bao gồm vùng đệm. GMSCameraUpdate fitToBounds sẽ đảm bảo rằng cả khoảng đệm này và mọi khoảng đệm yêu cầu đều sẽ được xem xét.
Thuộc tính này có thể là ảnh động trong một khối ảnh động dựa trên UIView.
– (GMSMapViewPaddingAdjustmentBehavior) paddingAdjustmentBehavior [read, write, assign] |
Kiểm soát cách thêm các phần lồng ghép vùng an toàn vào giá trị khoảng đệm.
Giống như khoảng đệm, vùng an toàn sẽ lồng ghép các nút điều khiển vị trí trên bản đồ, chẳng hạn như la bàn, nút vị trí của tôi và bộ chọn tầng trong vùng an toàn của thiết bị.
Giá trị mặc định là kGMSMapViewPaddingPaddingBehaviorAlways.
– (BOOL) accessibilityElementsHidden [read, write, assign] |
Giá trị mặc định là YES.
Nếu bạn đặt thành NO, thì GMSMapView sẽ tạo 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à GMSPolyline.
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 là YES.
– (GMSMapLayer*) lớp [read, retain] |
Trình truy cập cho loại CALayer tuỳ chỉnh dùng cho lớp.
– (GMSFrameRate) preferredFrameRate [read, write, assign] |
Kiểm soát tốc độ khung hình kết xuất.
Giá trị mặc định là kGMSFrameRateMedium.
– (GMSCoordinateBounds*) cameraTargetBounds [read, write, assign] |
Nếu giá trị không là nil, hãy ràng buộc mục tiêu máy ảnh để các cử chỉ không thể làm cho mục tiêu đó rời khỏi giới hạn đã chỉ định.
– (GMSMapCapabilityFlags) mapCapabilities [read, assign] |
Tất cả các khả năng hoạt động theo điều kiện (tuỳ thuộc vào mapID hoặc các chế độ cài đặt khác của bản đồ) có sẵn tại thời điểm hiện tại.
Không bao gồm các tính năng luôn hoạt động.