GMSMapView 类参考文档


概览

这是 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:
 设置 minZoommaxZoom
(可为 null 的 GMSCameraPosition *)- cameraForBounds:insets:
 构建一个展示 paddingbounds 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 委托。
GMSCameraPositioncamera
 控制相机,用于定义地图的朝向。
GMSProjection投影
 返回可用于在屏幕坐标和纬度/经度坐标之间进行转换的 GMSProjection 对象。
BOOL myLocationEnabled
 控制是否启用“我的位置”点和精确度圆圈。
CL * myLocation
 如果启用了“我的位置”功能,可显示设备位置点的绘制位置。
GMSMarkerselectedMarker
 所选标记。
BOOL trafficEnabled
 控制地图是否绘制路况数据(如果有)。
GMSMapViewTypemapType
 控制应显示的地图图块的类型。
GMSMapStylemapStyle
 控制地图的样式。
浮点数minZoom
 最小缩放范围(相机最远可缩小)。
浮点数maxZoom
 最大缩放(相机最接近地球)。
BOOL buildingsEnabled
 设置后,3D 建筑将视情况展示。
BOOL indoorEnabled
 设置是否显示室内地图(如果有)。
GMSIndoorDisplay室内显示屏
 获取 GMSIndoorDisplay 实例,该实例可用于观察或控制室内数据显示的各个方面。
GMSUISettings设置
 获取 GMSUISettings 对象,该对象用于控制地图的界面设置。
UIEdgeInsets内边距
 控制视图的“visible”区域。
GMSMapViewPaddingAdjustBehaviorpaddingAdjustBehavior
 控制如何为内边距值添加安全区域边衬区。
BOOL accessibilityElementHidden
 默认为 YES。
GMSMapLayer图层
 用于图层的自定义 CALayer 类型的访问器。
GMSFrameRatepreferredFrameRate
 控制渲染帧速率。
GMSCoordinateBoundscameraTargetBounds
 如果为 nil,则会限制相机目标,使手势不能使它离开指定的边界。
GMSMapCapabilitiesFlagsmapCapabilities
 当前有可用的所有条件式功能(取决于 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

设置 minZoommaxZoom

此方法要求最小值小于或等于最大值,否则会抛出名称为 NSRangeException 的异常。

-(可为 null 的 GMSCameraPosition *)cameraForBounds: (GMSCoordinateBounds *) 边界
边衬区: (UIEdgeInsets) 边衬区

构建一个展示 paddingbounds 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: 使用结果。


- (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 的动画块内添加动画效果。

控制如何为内边距值添加安全区域边衬区。

与内边距一样,安全区域边衬区会定位位置控件,例如设备安全区域的罗盘、“我的位置”按钮和楼层选择器。

默认为 kGMSMapViewPaddingAdjustBehaviorAlways。

- (BOOL) accessibilityElementHidden [read, write, assign]

默认为 YES。

如果设置为 NO,GMSMapView 会为叠加层对象(例如 GMSMarkerGMS 折线)生成无障碍元素。

此属性遵循非正式的 UIAccessibility 协议,默认值 YES 除外。

- (GMSMapLayer*) [read, retain]

用于图层的自定义 CALayer 类型的访问器。

- (GMSFrameRate) preferredFrameRate [read, write, assign]

控制渲染帧速率。

默认值为 kGMSFrameRateMaximum。

- (GMSCoordinateBounds*) cameraTargetBounds [read, write, assign]

如果为 nil,则会限制相机目标,使手势不能使它离开指定的边界。

- (GMSMapCapabilitiesFlags) mapCapabilities [read, assign]

当前有可用的所有条件式功能(取决于 mapID 或其他地图设置)。

不包括始终可用的功能。