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:
 构建呈现具有 paddingboundsGMSCameraPosition
(void) - moveCamera
 根据 update 更改相机。
(BOOL)- areEqualForRenderingPosition:position:
 根据内部使用的精度和转换级别,检查指定的摄像头位置实际上是否会导致摄像头的渲染效果相同。
(void) - animateToCameraPosition
 将此地图的相机以动画形式呈现给 cameraPosition
(void) - animateToLocation
 与 animateToCameraPosition: 类似,但仅更改相机的位置(即从当前位置更改为 location)。
(void) - animateToZoom:
 与 animateToCameraPosition: 类似,但仅更改相机的缩放级别。
(void) - animateToBearing
 与 animateToCameraPosition: 类似,但仅更改相机方向角(以度为单位)。
(void) - animateToBrowsingAngle
 与 animateToCameraPosition: 类似,但仅更改摄像头的视角(以度为单位)。
(void) - animateWithCameraUpdate:
 cameraUpdate 应用于当前相机,然后按照 animateToCameraPosition: 使用结果。

静态公共成员函数

(实例类型)+ mapWithFrame:camera:
 构建并返回包含帧和相机目标的地图视图。
(实例类型)+ mapWithFrame:mapID:camera:
 用于构建和返回带框架、地图 ID 和相机目标的地图视图的便捷初始化程序。

属性

IBOutlet ID< GMSMapViewDelegate >委托
 GMSMapView 委托。
GMSCameraPosition *camera
 控制相机,相机用于定义地图的朝向。
GMSProjection投影
 返回可用于在屏幕坐标和纬度/经度坐标之间进行转换的 GMSProjection 对象。
BOOL myLocationEnabled
 控制是否启用“我的位置”点和准确度圆圈。
CLLocation * myLocation
 如果启用了“我的位置”,系统会显示用户位置点的绘制位置。
GMSMarker*selectedMarker
 选中的标记。
BOOL trafficEnabled
 控制地图是否绘制路况数据(如果有)。
GMSMapViewTypemapType
 控制应显示的地图图块的类型。
GMSMapStyle*mapStyle
 控制地图的样式。
浮点数minZoom
 最小缩放(相机最远可缩小)。
浮点数maxZoom
 最大缩放(相机最接近地球)。
BOOL buildingsEnabled
 如果设置此参数,3D 建筑将尽可能显示。
BOOL indoorEnabled
 设置是否显示室内地图(如果有的话)。
GMSIndoorDisplay*indoorDisplay
 获取 GMSIndoorDisplay 实例(该实例可用于观察或控制室内数据显示的各个方面)。
GMSUISettings设置
 获取用于控制地图的用户界面的GMSUISettings对象。
UIEdgeInsets内边距
 控制视图的“可见”区域。
GMSMapViewPaddingAdjustBehaviorpadding 调整 Behavior
 控制如何向内边距值添加安全区域边衬区。
BOOL accessibilityElementHidden
 默认值为 YES。
GMSMapLayer*图层
 用于图层的自定义 CALayer 类型的访问器。
GMSFrameRatepreferredFrameRate
 控制渲染帧速率。
GMSCoordinateBounds*cameraTargetBounds
 如果不是 nil,则限制相机目标,以便手势不能使其离开指定的边界。

(请注意,这些不是成员函数。)

NSString *constkGMSAccessibilityMyLocation
 “我的位置”按钮的无障碍标识符。

成员函数文档

+ (instancetype) mapWithFrame: (CGRect) 框架
摄像头: (GMSCameraPosition *) 相机

构建并返回包含帧和相机目标的地图视图。

+ (instancetype) mapWithFrame: (CGRect) 框架
mapID: (GMSMapID *) 地图 ID
摄像头: (GMSCameraPosition *) 相机

用于构建和返回带框架、地图 ID 和相机目标的地图视图的便捷初始化程序。

-(实例类型)initWithFrame: (CGRect) 框架
摄像头: (GMSCameraPosition *) 相机

构建并返回地图视图,其中包含帧和相机目标。

-(实例类型)initWithFrame: (CGRect) 框架
mapID: (GMSMapID *) 地图 ID
摄像头: (GMSCameraPosition *) 相机

构建并返回包含帧、地图 ID 和相机目标的地图视图。

-(无效)startRendering

指示此地图为渲染程序供电。

此为可选幂等函数。

注意
已弃用。此方法已过时,并将在未来的版本中移除。
-(无效)stopRendering

指示此地图关闭其渲染程序的电源。

此为可选幂等函数。

注意
已弃用。此方法已过时,并将在未来的版本中移除。
-(无效)清楚

用于清除已添加到地图中的所有标记,包括标记、多段线和地面叠加层。

这不会清除可见的位置点,也不会重置当前的 mapType。

- (void) setMinZoom: (浮点数) minZoom
maxZoom: (浮点数) maxZoom

设置 minZoommaxZoom

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

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

构建呈现具有 paddingboundsGMSCameraPosition

摄像头的方向角为零(即朝向北方,正对地球)。这会将此GMSMapView的框架和内边距考虑在内。

如果边界无效,此方法将返回 nil 相机。

-(无效)moveCamera (GMSCameraUpdate *) update

根据 update 更改相机。

相机更改瞬间完成(不含动画)。

- (BOOL) areEqualForRenderingPosition: (GMSCameraPosition *) 职位
位置: (GMSCameraPosition *) otherPosition

根据内部使用的精度和转换级别,检查指定的摄像头位置实际上是否会导致摄像头的渲染效果相同。

-(空)animateToCameraPosition: (GMSCameraPosition *) cameraPosition

将此地图的相机以动画形式呈现给 cameraPosition

-(无效)animateToLocation: (CLLocationCoordinate2D) 地理位置

与 animateToCameraPosition: 类似,但仅更改相机的位置(即从当前位置更改为 location)。

-(无效)animateToZoom: (浮点数) 缩放

与 animateToCameraPosition: 类似,但仅更改相机的缩放级别。

该值受 [kGMSMinZoomLevel, kGMSMaxZoomLevel] 的限制。

- (void) animateToBearing: (CLLocationDirection) 方位

与 animateToCameraPosition: 类似,但仅更改相机方向角(以度为单位)。

零表示正北。

-(无效)animateToBrowsingAngle (双精度) 查看角度

与 animateToCameraPosition: 类似,但仅更改摄像头的视角(以度为单位)。

这个值下限值下限为 0(即,正面朝下),高度大约在 30 到 45 度之间,具体取决于地平距离。

-(无效)animateWithCameraUpdate: (GMSCameraUpdate *) cameraUpdate

cameraUpdate 应用于当前相机,然后按照 animateToCameraPosition: 使用结果。


-(NSString* 常量)kGMSAccessibilityMyLocation [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*) 已选择标记 [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。

如果将此项设为“否”,则室内数据的缓存可能会被完全清除,且最终用户当前选择的任何楼层都可能会被重置。

- (GMSIndoorDisplay*) indoorDisplay [read, assign]

获取 GMSIndoorDisplay 实例(该实例可用于观察或控制室内数据显示的各个方面)。

- (GMSUISettings*) 设置 [read, assign]

获取用于控制地图的用户界面的GMSUISettings对象。

- (UIEdgeInsets) 内边距 [read, write, assign]

控制视图的“可见”区域。

通过应用内边距,可以围绕视图边缘创建包含地图数据但不包含界面控件的区域。

如果内边距不均衡,则视图的视觉中心会适当地移动。内边距还会影响 projection 属性,因此可见区域不会包含内边距区域。GMSCameraUpdate FitToBounds 可确保将此内边距与所请求的任何内边距都考虑在内。

可以为基于 UIView 的动画块添加动画效果。

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

与内边距一样,安全区域边衬区可在地图安全区域内插入位置地图控件,例如罗盘、“我的位置”按钮和楼层选择器。

默认为 kGMSMapViewPaddingAdjustBehaviorBehavior。

- (BOOL) 无障碍功能元素隐藏 [read, write, assign]

默认值为 YES。

如果设置为“NO”,则GMSMapView会为叠加层对象(例如GMSMarkerGMSpolyline)生成无障碍元素。

此属性遵循非正式的 UIAability 协议,默认值为“YES”。

- (GMSMapLayer*) 图层 [read, retain]

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

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

控制渲染帧速率。

默认值为 kGMSFrameRateMaximum。

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

如果不是 nil,则限制相机目标,以便手势不能使其离开指定的边界。