地面叠加层

请选择平台: Android iOS JavaScript

地面叠加层是地图上与纬度/经度关联的叠加层 坐标,因此它们会随着您拖动或缩放地图而移动。

简介

地面叠加层是固定在地图上的图像。取消点赞 标记,地面叠加层以地球表面为参照物。 旋转、倾斜或缩放地图将会改变 调整图片的方向

如需添加地面叠加层,请创建一个同时定义了这两种图层的 GMSGroundOverlay 对象 一个图标和一个边界如果其中任何一个都未指定,将导致出现地面叠加层 不会在地图上显示。您还可以选择指定 将影响图像在地图上的位置。定义 必要选项,请设置此对象的 map 属性以添加叠加层。

添加叠加层

  1. 实例化一个新的 GMSGroundOverlay 对象。
  2. icon 属性设置为 UIImage 的实例。
  3. bounds 属性设置为 GMSCoordinateBounds 的实例。通过 边界分别表示图像的西南角和东北角。
  4. 根据需要设置可选属性,例如 bearingzoomLevel
  5. 设置 map 属性 - 图片会显示在地图上。

下例展示了如何将地面叠加层添加到现有的 GMSMapView 对象。

Swift

let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655)
let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544)
let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
let icon = UIImage(named: "newark_nj_1922")

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView
      

Objective-C

CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest
                                                                        coordinate:northEast];

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"];
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;
      

移除叠加层

您可以通过设置 将 GMSGroundOverlaymap 属性设为 nil。或者,您也可以 叠加层(包括当前位于地图上的地面叠加层)的 GMSMapView clear 方法。

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

将地面叠加层添加到 请务必保留 GMSGroundOverlay 对象。您可以 稍后可通过更改此对象来修改地面叠加层。

Swift

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView

// ...

overlay.isTappable = true
      

Objective-C

GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

// ...
overlay.tappable = YES;
      

事件

您可以监听地图上发生的事件,例如当用户点按某个 叠加层。要监听事件,您必须实现 GMSMapViewDelegate 协议。请参阅 事件指南以及 GMSMapViewDelegate