概览
这是 Google Maps SDK for iOS 的主类,也是与地图相关的所有方法的入口点。
地图应通过便捷构造函数 [GMSMapView mapWithFrame:camera:] 进行实例化。该应用还可以使用默认的 [[GMSMapView alloc] initWithFrame:] 方法(其相机将设置为默认位置)来创建。
与所有 UIKit 对象类似,GMSMapView 只能从主线程中读取和修改。从其他线程调用这些方法将导致异常或未定义的行为。
公开成员函数 | |
(实例类型) | - initWithFrame:camera: |
构建并返回包含框架和相机目标的地图视图。 | |
(实例类型) | - initWithFrame:mapID:camera: |
构建并返回包含帧、地图 ID 和相机目标的地图视图。 | |
(void) | - startRendering |
告知此地图启动其渲染程序。 | |
(void) | - stopRendering |
告知此地图关闭渲染程序。 | |
(void) | - 清除 |
清除已添加到地图中的所有标记,包括标记、多段线和地面叠加层。 | |
(void) | - setMinZoom:maxZoom: |
设置 minZoom 和 maxZoom 。 | |
(可为 null 的 GMSCameraPosition *) | - cameraForBounds:insets: |
构建一个展示 padding 的 bounds GMSCameraPosition。 | |
(void) | - moveCamera: |
根据 update 更改相机。 | |
(布尔值) | - areEqualForRenderingPosition:position: |
根据相机使用的精度和转换级别,检查相机的实际位置是否会导致相机渲染同样。 | |
(void) | - animateToCameraPosition: |
将此地图的相机添加动画效果到 cameraPosition 。 | |
(void) | - animateToLocation: |
与 animateToCameraPosition: 相同,但仅更改相机的位置(即从当前位置更改为 location )。 | |
(void) | - animateToZoom: |
与 animateToCameraPosition: 相同,但仅更改相机的缩放级别。 | |
(void) | - animateToBearing: |
与 animateToCameraPosition: 相同,但仅更改相机方向角(以度为单位)。 | |
(void) | - animateToViewerAngle: |
与 animateToCameraPosition: 相同,但仅更改相机的视角(以度为单位)。 | |
(void) | - animateWithCameraUpdate: |
将 cameraUpdate 应用于当前相机,然后按照 animateToCameraPosition: 使用结果。 | |
静态公共成员函数 | |
(实例类型) | + mapWithFrame:camera: |
构建并返回包含帧和相机目标的地图视图。 | |
(实例类型) | + mapWithFrame:mapID:camera: |
使用框架、地图 ID 和相机目标构建和返回地图视图的便捷初始化程序。 | |
属性 | |
IBOutlet ID<GMSMapViewDelegate > | 委托 |
GMSMapView 委托。 | |
GMSCameraPosition * | camera |
控制相机,用于定义地图的朝向。 | |
GMSProjection * | 投影 |
返回可用于在屏幕坐标和纬度/经度坐标之间进行转换的 GMSProjection 对象。 | |
BOOL | myLocationEnabled |
控制是否启用“我的位置”点和精确度圆圈。 | |
CL * | myLocation |
如果启用了“我的位置”功能,可显示设备位置点的绘制位置。 | |
GMSMarker * | selectedMarker |
所选标记。 | |
BOOL | trafficEnabled |
控制地图是否绘制路况数据(如果有)。 | |
GMSMapViewType | mapType |
控制应显示的地图图块的类型。 | |
GMSMapStyle * | mapStyle |
控制地图的样式。 | |
浮点数 | minZoom |
最小缩放范围(相机最远可缩小)。 | |
浮点数 | maxZoom |
最大缩放(相机最接近地球)。 | |
BOOL | buildingsEnabled |
设置后,3D 建筑将视情况展示。 | |
BOOL | indoorEnabled |
设置是否显示室内地图(如果有)。 | |
GMSIndoorDisplay * | 室内显示屏 |
获取 GMSIndoorDisplay 实例,该实例可用于观察或控制室内数据显示的各个方面。 | |
GMSUISettings * | 设置 |
获取 GMSUISettings 对象,该对象用于控制地图的界面设置。 | |
UIEdgeInsets | 内边距 |
控制视图的“visible”区域。 | |
GMSMapViewPaddingAdjustBehavior | paddingAdjustBehavior |
控制如何为内边距值添加安全区域边衬区。 | |
BOOL | accessibilityElementHidden |
默认为 YES。 | |
GMSMapLayer * | 图层 |
用于图层的自定义 CALayer 类型的访问器。 | |
GMSFrameRate | preferredFrameRate |
控制渲染帧速率。 | |
GMSCoordinateBounds * | cameraTargetBounds |
如果为 nil,则会限制相机目标,使手势不能使它离开指定的边界。 | |
GMSMapCapabilitiesFlags | mapCapabilities |
当前有可用的所有条件式功能(取决于 mapID 或其他地图设置)。 | |
相关函数 | |
(请注意,这些都不是成员函数。) | |
NSString *对比度 | kGMSAccessibilityCompass |
罗盘按钮的无障碍标识符。 | |
NSString *对比度 | kGMSAccessibilityMyLocation |
“我的位置”按钮的无障碍标识符。 | |
NSString *对比度 | kGMSAccessibilityOutOf 配额 |
“配额不足”错误标签的无障碍标识符。 |
成员函数文档
+ (instancetype) mapWithFrame: | (CGRect) | 帧 | |
相机: | (GMSCameraPosition *) | 相机 | |
构建并返回包含帧和相机目标的地图视图。
+ (instancetype) mapWithFrame: | (CGRect) | 帧 | |
mapID: | (GMSMapID *) | 映射 ID | |
相机: | (GMSCameraPosition *) | 相机 | |
使用框架、地图 ID 和相机目标构建和返回地图视图的便捷初始化程序。
-(实例类型)initWithFrame: | (CGRect) | 帧 | |
相机: | (GMSCameraPosition *) | 相机 | |
构建并返回包含框架和相机目标的地图视图。
-(实例类型)initWithFrame: | (CGRect) | 帧 | |
mapID: | (GMSMapID *) | 映射 ID | |
相机: | (GMSCameraPosition *) | 相机 | |
构建并返回包含帧、地图 ID 和相机目标的地图视图。
- (void) startRendering |
告知此地图启动其渲染程序。
(可选)幂等性。
- 注意:
- 已弃用。此方法已过时,并将在未来的版本中移除。
- (void) stopRendering |
告知此地图关闭渲染程序。
(可选)幂等性。
- 注意:
- 已弃用。此方法已过时,并将在未来的版本中移除。
-(无效)清除 |
清除已添加到地图中的所有标记,包括标记、多段线和地面叠加层。
这不会清除可见的位置点,也不会重置当前的 mapType。
- (void) setMinZoom: | (浮点数) | minZoom | |
maxZoom: | (浮点数) | maxZoom | |
设置 minZoom
和 maxZoom
。
此方法要求最小值小于或等于最大值,否则会抛出名称为 NSRangeException 的异常。
-(可为 null 的 GMSCameraPosition *)cameraForBounds: | (GMSCoordinateBounds *) | 边界 | |
边衬区: | (UIEdgeInsets) | 边衬区 | |
构建一个展示 padding
的 bounds
GMSCameraPosition。
相机将具有零方位和倾斜度(即朝北,朝向地球)。此操作会将此GMSMapView的帧和内边距考虑在内。
如果边界无效,此方法将返回空相机。
- (void) moveCamera: | (GMSCameraUpdate *) | update |
根据 update
更改相机。
相机更改是即时的(没有动画)。
- (BOOL) areEqualForRenderingPosition: | (GMSCameraPosition *) | 位置 | |
位置: | (GMSCameraPosition *) | otherPosition | |
根据相机使用的精度和转换级别,检查相机的实际位置是否会导致相机渲染同样。
- (void) animateToCameraPosition: | (GMSCameraPosition *) | cameraPosition |
将此地图的相机添加动画效果到 cameraPosition
。
- (void) animateToLocation: | (CLLocationCoordinate2D) | 地理位置 |
与 animateToCameraPosition: 相同,但仅更改相机的位置(即从当前位置更改为 location
)。
- (void) animateToZoom: | (浮点数) | 缩放 |
与 animateToCameraPosition: 相同,但仅更改相机的缩放级别。
该值由 [kGMSMinZoomLevel、kGMSMaxZoomLevel] 限制。
- (void) animateToBearing: | (CLLocationDirection) | 方位 |
与 animateToCameraPosition: 相同,但仅更改相机方向角(以度为单位)。
0 表示正北。
-(空)animateToViewerAngle: | (双精度) | 查看角度 |
与 animateToCameraPosition: 相同,但仅更改相机的视角(以度为单位)。
这个值将至少被限制到零(即垂直朝下),且靠近地平线 30 到 45 度,具体取决于与地球的相对距离。
- (void) animateWithCameraUpdate: | (GMSCameraUpdate *) | cameraUpdate |
将 cameraUpdate
应用于当前相机,然后按照 animateToCameraPosition: 使用结果。
Friends 和 Related Function 文档
- (NSString* 常量) kGMSAccessibilityCompass [related] |
罗盘按钮的无障碍标识符。
-(NSString* 常量)kGMSAccessibilityMyLocation [related] |
“我的位置”按钮的无障碍标识符。
-(NSString* 常量)kGMSAccessibilityOutOfQuota [related] |
“配额不足”错误标签的无障碍标识符。
属性说明
- (IBOutlet id<GMSMapViewDelegate>) 委托 [read, write, assign] |
GMSMapView 委托。
- (GMSCameraPosition*) 摄像头 [read, write, copy] |
控制相机,用于定义地图的朝向。
修改属性可以即时完成。
- (GMSProjection*) 投影 [read, assign] |
返回可用于在屏幕坐标和纬度/经度坐标之间进行转换的 GMSProjection 对象。
这是当前投影的快照,不会在相机移动时自动更新。它表示上一个绘制的 GMSMapView 帧的投影,或者表示已明确设置相机或刚创建的地图(即将进入的帧)。它永远不会为 nil。
- (BOOL) myLocationEnabled [read, write, assign] |
控制是否启用“我的位置”点和精确度圆圈。
默认为 NO。
- (CLLocation*) myLocation [read, assign] |
如果启用了“我的位置”功能,可显示设备位置点的绘制位置。
如果此政策已停用或已启用,但没有可用的位置数据,则此值为 nil。此属性可通过 KVO 进行观察。
- (GMSMarker*) SelectedMarker [read, write, assign] |
所选标记。
设置此属性可选择一个特定标记,该标记会在其上显示信息窗口。如果此属性为非 nil,则将其设置为 nil 会取消选中标记并隐藏信息窗口。此属性可通过 KVO 进行观察。
- (BOOL) trafficEnabled [read, write, assign] |
控制地图是否绘制路况数据(如果有)。
这取决于路况数据的可用性。默认为 NO。
- (GMSMapViewType) mapType [read, write, assign] |
控制应显示的地图图块的类型。
默认为 kGMSTypenormal。
- (GMSMapStyle*) mapStyle [read, write, assign] |
控制地图的样式。
仅当 mapType 为“normal”时,非 nil mapStyle 才会应用。
-(浮点数)minZoom [read, assign] |
最小缩放范围(相机最远可缩小)。
默认为 kGMSMinZoomLevel。使用 -setMinZoom:maxZoom: 修改。
-(浮点)maxZoom [read, assign] |
最大缩放(相机最接近地球)。
默认为 kGMSMaxZoomLevel。使用 -setMinZoom:maxZoom: 修改。
- (BOOL) buildingsEnabled [read, write, assign] |
设置后,3D 建筑将视情况展示。
默认为 YES。
此功能在向地图添加自定义图块图层时可能会非常有用,这样可以在高缩放级别更清晰。更改此值会导致所有图块暂时失效。
- (BOOL) indoorEnabled [read, write, assign] |
设置是否显示室内地图(如果有)。
默认为 YES。
如果将此选项设置为“NO”,则室内数据的缓存可能会被完全清除,而最终用户当前选择的任何楼层都可能会被重置。
- (GMSIndoorDisplay*) 室内显示 [read, assign] |
获取 GMSIndoorDisplay 实例,该实例可用于观察或控制室内数据显示的各个方面。
- (GMSUISettings*) 设置 [read, assign] |
获取 GMSUISettings 对象,该对象用于控制地图的界面设置。
- (UIEdgeInsets) 内边距 [read, write, assign] |
控制视图的“visible”区域。
通过应用内边距,可以围绕视图边缘创建包含地图数据但不会包含界面控件的区域。
如果内边距不平衡,视图的视觉中心将相应地移动。内边距也会影响 projection
属性,因此可见区域不会包含内边距区域。GMSCameraUpdate FitToBounds 可确保将此内边距与所请求的任何内边距都考虑在内。
可以在基于 UIView 的动画块内添加动画效果。
- (GMSMapViewPaddingAdjustBehavior) paddingAdjustBehavior [read, write, assign] |
控制如何为内边距值添加安全区域边衬区。
与内边距一样,安全区域边衬区会定位位置控件,例如设备安全区域的罗盘、“我的位置”按钮和楼层选择器。
默认为 kGMSMapViewPaddingAdjustBehaviorAlways。
- (BOOL) accessibilityElementHidden [read, write, assign] |
默认为 YES。
如果设置为 NO,GMSMapView 会为叠加层对象(例如 GMSMarker 和 GMS 折线)生成无障碍元素。
此属性遵循非正式的 UIAccessibility 协议,默认值 YES 除外。
- (GMSMapLayer*) 层 [read, retain] |
用于图层的自定义 CALayer 类型的访问器。
- (GMSFrameRate) preferredFrameRate [read, write, assign] |
控制渲染帧速率。
默认值为 kGMSFrameRateMaximum。
- (GMSCoordinateBounds*) cameraTargetBounds [read, write, assign] |
如果为 nil,则会限制相机目标,使手势不能使它离开指定的边界。
- (GMSMapCapabilitiesFlags) mapCapabilities [read, assign] |
当前有可用的所有条件式功能(取决于 mapID 或其他地图设置)。
不包括始终可用的功能。