概览
这是 Google Maps SDK for iOS 的主类,也是与地图相关的所有方法的入口点。
地图应通过 -init 或 -initWithOptions: 构造函数之一进行实例化。
与所有 UIKit 对象类似,GMSMapView只能从主线程中读取和修改。从其他线程调用这些方法将会导致异常或未定义的行为。
公共成员函数 | |
(instancetype) | - init |
使用 CGRectZero 和默认选项进行初始化。 | |
(instancetype) | - initWithOptions: |
使用指定选项创建新的地图视图。 | |
(instancetype) | - initWithFrame:: |
(instancetype) | - initWithCoder: |
(instancetype) | - initWithFrame:camera: |
构建并返回包含帧和相机目标的地图视图。 | |
(instancetype) | - initWithFrame:mapID:camera: |
构建并返回包含框架、地图 ID 和相机目标的地图视图。 | |
(void) | - startRendering |
指示此地图启动其渲染程序。 | |
(void) | - stopRendering |
指示此地图关闭其渲染程序。 | |
(void) | - 清除 |
清除已添加到地图的所有标记,包括标记、多段线和地面叠加层。 | |
(void) | - setMinZoom:maxZoom:: |
设置 minZoom 和 maxZoom 。 | |
(nullable GMSCameraPosition *) | - cameraForBounds:insets: |
构建一个使用 padding 呈现 bounds 的 GMSCameraPosition。 | |
(void) | - moveCamera: |
根据 update 更改相机。 | |
(BOOL) | - areEqualForRenderingPosition:position: |
考虑到内部使用的精度和转换级别,检查给定的相机位置是否实际上会使相机得到相同的渲染。 | |
(GMSFeatureLayer < GMSPlaceFeature * > *) | - featureLayerOfFeatureType: |
返回指定类型的地图项图层。 | |
(void) | - animateToCameraPosition: |
以动画方式将此地图的相机呈现为 cameraPosition 。 | |
(void) | - animateToLocation: |
作为 animateToCameraPosition:,但仅更改相机的位置(即从当前位置更改为 location )。 | |
(void) | - animateToZoom: |
作为 animateToCameraPosition:,但仅更改镜头的缩放级别。 | |
(void) | - animateToBearing: |
用作 animateToCameraPosition:,但只会更改镜头的方向角(以度为单位)。 | |
(void) | - animateTo SeeAngle: |
作为 animateToCameraPosition:,但仅更改镜头的视角(以度为单位)。 | |
(void) | - animateWithCameraUpdate: |
将 cameraUpdate 应用于当前相机,然后根据 animateToCameraPosition: 使用结果。 | |
静态公开成员函数 | |
(instancetype) | + mapWithFrame:camera: |
使用框架和相机目标构建并返回地图视图。 | |
(instancetype) | + mapWithFrame:mapID:camera: |
用于构建和返回包含帧、地图 ID 和相机目标的地图视图的简便初始化程序。 | |
属性 | |
IBOutlet id< GMSMapViewDelegate > | 委托 |
GMSMapView 代理。 | |
GMSCameraPosition * | camera |
控制相机,用于定义地图的朝向。 | |
GMSProjection * | 投影 |
返回可用于在屏幕坐标与纬度/经度坐标之间进行转换的GMSProjection对象。 | |
BOOL | myLocationEnabled |
控制是否启用“我的位置”圆点和精确度圆圈。 | |
CLLocation * | myLocation |
如果启用了“我的位置”,会显示设备位置圆点的绘制位置。 | |
GMSMarker * | selectedMarker |
所选标记。 | |
BOOL | trafficEnabled |
控制地图是否在绘制路况数据(如果有)。 | |
GMSMapViewType | mapType |
控制应显示的地图图块类型。 | |
GMSMapStyle * | mapStyle |
控制地图的样式。 | |
float | minZoom |
最小缩放级别(相机可以缩小到最远距离)。 | |
float | maxZoom |
最大缩放级别(镜头最接近地球的距离)。 | |
BOOL | buildingsEnabled |
如果设置此参数,系统将在支持的国家/地区显示 3D 建筑。 | |
BOOL | indoorEnabled |
设置是否显示室内地图(如果有)。 | |
GMSIndoorDisplay * | indoorDisplay |
获取 GMSIndoorDisplay 实例,该实例可用于观察或控制室内数据显示的各个方面。 | |
GMSUISettings * | 设置 |
获取GMSUISettings对象,该对象用于控制地图的界面设置。 | |
UIEdgeInsets | 内边距 |
控制视图的“可见”区域。 | |
GMSMapViewPaddingAdjustmentBehavior | paddingAdjustmentBehavior |
控制如何将安全区域边衬区添加到内边距值。 | |
BOOL | accessibilityElementsHidden |
默认值为 YES。 | |
GMSMapLayer * | 层 |
用于图层的自定义 CALayer 类型的访问器。 | |
GMSFrameRate | preferredFrameRate |
控制渲染帧速率。 | |
GMSCoordinateBounds * | cameraTargetBounds |
如果不是 nil,则约束相机目标,使手势不会导致相机目标离开指定的边界。 | |
GMSMapCapabilityFlags | mapCapabilities |
当前时间可用的所有有条件可用(取决于 mapID 或其他地图设置)的功能。 | |
相关函数 | |
(请注意,这些函数不是成员函数。) | |
NSString *常量 | kGMSAccessibilityCompass |
罗盘按钮的无障碍功能标识符。 | |
NSString *常量 | kGMSAccessibilityMyLocation |
“我的位置”按钮的无障碍功能标识符。 | |
NSString *常量 | kGMSAccessibilityOutOfQuota |
“配额不足”错误标签的无障碍功能标识符。 |
成员函数文档
- (instancetype) init |
使用 CGRectZero 和默认选项进行初始化。
- (instancetype) initWithOptions: | (非 null GMSMapViewOptions *) | options |
使用指定选项创建新的地图视图。
该方法会复制选项对象的值。
- (instancetype) initWithFrame:: | (CGRect) | 帧 |
-(实例类型)initWithCoder: | (NSCoder *) | 编码器 |
+ (instancetype) mapWithFrame: | (CGRect) | 帧 | |
相机: | (GMSCameraPosition *) | 相机 | |
使用框架和相机目标构建并返回地图视图。
+ (instancetype) mapWithFrame: | (CGRect) | 帧 | |
mapID: | (GMSMapID *) | mapID | |
相机: | (GMSCameraPosition *) | 相机 | |
用于构建和返回包含帧、地图 ID 和相机目标的地图视图的简便初始化程序。
- (instancetype) initWithFrame:: | (CGRect) | 帧 | |
相机: | (GMSCameraPosition *) | 相机 | |
构建并返回包含帧和相机目标的地图视图。
- 注意:
- 已弃用。请改用 -init 或 -initWithOptions:。
- (instancetype) initWithFrame:: | (CGRect) | 帧 | |
mapID: | (GMSMapID *) | mapID | |
相机: | (GMSCameraPosition *) | 相机 | |
构建并返回包含框架、地图 ID 和相机目标的地图视图。
- 注意:
- 已弃用。请改用 -init 或 -initWithOptions:。
- (void) startRendering |
指示此地图启动其渲染程序。
这是可选操作,具有幂等性。
- 注意:
- 已弃用。此方法已过时,并将在未来的版本中移除。
- (void) stopRendering |
指示此地图关闭其渲染程序。
这是可选操作,具有幂等性。
- 注意:
- 已弃用。此方法已过时,并将在未来的版本中移除。
- (void) 清除 |
清除已添加到地图的所有标记,包括标记、多段线和地面叠加层。
这不会清除可见位置圆点或重置当前的 mapType。
- (void) setMinZoom: | (float) | minZoom | |
maxZoom: | (float) | maxZoom | |
设置 minZoom
和 maxZoom
。
此方法要求最小值小于或等于最大值,否则将抛出名称为 NSRangeException 的异常。
- (nullable GMSCameraPosition *) cameraForBounds: | (GMSCoordinateBounds *) | 边界 | |
边衬区: | (UIEdgeInsets) | 边衬区 | |
构建一个使用 padding
呈现 bounds
的 GMSCameraPosition。
镜头将没有方向角和倾斜度(即朝北并直视地球)。这会考虑该GMSMapView的框架和内边距。
如果边界无效,此方法将返回一个 nil 相机。
- (void) moveCamera: | (GMSCameraUpdate *) | update |
根据 update
更改相机。
镜头变化是瞬时完成的(没有动画)。
- (BOOL) areEqualForRenderingPosition: | (GMSCameraPosition *) | position | |
位置: | (GMSCameraPosition *) | otherPosition | |
考虑到内部使用的精度和转换级别,检查给定的相机位置是否实际上会使相机得到相同的渲染。
- (GMSFeatureLayer<GMSPlaceFeature *> *) featureLayerOfFeatureType: | (GMSFeatureType) | featureType |
返回指定类型的地图项图层。
必须在 Cloud 控制台中配置地图项图层。
如果指定类型的图层在此地图上不存在,或者未启用数据驱动型样式,或者未使用 Metal 渲染框架,则生成的图层的 isAvailable 将为 NO
,并且不会响应任何调用。
需要使用 Metal 渲染程序。如需了解如何启用 Metal,请访问 https://developers.google.com/maps/documentation/ios-sdk/config#use-metal
- (void) animateToCameraPosition: | (GMSCameraPosition *) | cameraPosition |
以动画方式将此地图的相机呈现为 cameraPosition
。
-(空)animateToLocation: | (CLLocationCoordinate2D) | 位置 |
作为 animateToCameraPosition:,但仅更改相机的位置(即从当前位置更改为 location
)。
-(空)animateToZoom: | (float) | 缩放 |
作为 animateToCameraPosition:,但仅更改镜头的缩放级别。
该值由 [kGMSMinZoomLevel, kGMSMaxZoomLevel] 限制。
-(空)animateToBearing: | (CLLocationDirection) | 方位 |
用作 animateToCameraPosition:,但只会更改镜头的方向角(以度为单位)。
零表示正北。
-(空)animateToSuggestedAngle: | (双精度浮点数) | viewingAngle |
作为 animateToCameraPosition:,但仅更改镜头的视角(以度为单位)。
根据与地球的相对距离,这个值被固定到地平线的最小值为零(即直下),在 30 度到 45 度之间。
-(空)animateWithCameraUpdate: | (GMSCameraUpdate *) | cameraUpdate |
将 cameraUpdate
应用于当前相机,然后根据 animateToCameraPosition: 使用结果。
好友和相关函数文档
- (NSString* const) kGMSAccessibilityCompass [related] |
罗盘按钮的无障碍功能标识符。
- (NSString* const) kGMSAccessibilityMyLocation [related] |
“我的位置”按钮的无障碍功能标识符。
- (NSString* const) kGMSAccessibilityOutOfQuota [related] |
“配额不足”错误标签的无障碍功能标识符。
属性说明
- (IBOutlet id<GMSMapViewDelegate>) 委托 [read, write, assign] |
GMSMapView 代理。
- (GMSCameraPosition*) 镜头 [read, write, copy] |
控制相机,用于定义地图的朝向。
此属性的修改是即时完成的。
- (GMSProjection*) 投影 [read, assign] |
返回可用于在屏幕坐标与纬度/经度坐标之间进行转换的GMSProjection对象。
这是当前投影的快照,不会在镜头移动时自动更新。它表示上次绘制的GMSMapView帧的投影,或者已经明确设置镜头或刚刚创建地图的下一帧的投影。它永远不会为 nil。
- (BOOL) myLocationEnabled [read, write, assign] |
控制是否启用“我的位置”圆点和精确度圆圈。
默认值为“否”。
- (CLLocation*) myLocation [read, assign] |
如果启用了“我的位置”,会显示设备位置圆点的绘制位置。
如果已停用,或已启用但没有可用的位置数据,则此值为 nil。可以使用 KVO 观察此属性。
- (GMSMarker*) selectedMarker [read, write, assign] |
所选标记。
设置此属性会选择一个特定标记,并在该标记上显示信息窗口。如果此属性不为 nil,则将其设为 nil 会取消选择标记,从而隐藏信息窗口。可以使用 KVO 观察此属性。
- (BOOL) trafficEnabled [read, write, assign] |
控制地图是否在绘制路况数据(如果有)。
具体以流量数据的可用性为准。默认值为“否”。
- (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) padding [read, write, assign] |
控制视图的“可见”区域。
通过应用内边距,可以创建围绕视图边缘的区域,该区域将包含地图数据,但不包含界面控件。
如果内边距不平衡,视图的视觉中心将视情况移动。内边距还会影响 projection
属性,因此可见区域不会包含内边距区域。GMSCameraUpdatefitToBounds 可确保将相应的内边距和所请求的任何内边距考虑在内。
此属性可在基于 UIView 的动画块内添加动画效果。
- (GMSMapViewPaddingAdjustmentBehavior) paddingAdjustmentBehavior [read, write, assign] |
控制如何将安全区域边衬区添加到内边距值。
与内边距一样,安全区域边衬区会在设备安全区域内定位地图控件,例如罗盘、“我的位置”按钮和楼层选择器。
默认值为 kGMSMapViewPaddingPersonalizationBehaviorAlways。
- (BOOL) accessibilityElementsHidden [read, write, assign] |
默认值为 YES。
如果设为“NO”,GMSMapView会为叠加层对象(如GMSMarker和GMSPolyline)生成无障碍元素。
此属性遵循非正式的 UIAccessibility 协议,但默认值 YES 除外。
- (GMSMapLayer*) 图层 [read, retain] |
用于图层的自定义 CALayer 类型的访问器。
- (GMSFrameRate) preferredFrameRate [read, write, assign] |
控制渲染帧速率。
默认值为 kGMSFrameRateLimit。
- (GMSCoordinateBounds*) cameraTargetBounds [read, write, assign] |
如果不是 nil,则约束相机目标,使手势不会导致相机目标离开指定的边界。
- (GMSMapCapabilityFlags) mapCapabilities [read, assign] |
当前时间可用的所有有条件可用(取决于 mapID 或其他地图设置)的功能。
不包含始终可用的功能。