我有一个通过点坐标创建的GMSPolygon,我需要将它与我的mapView集成。但是地图是mkMapView。
由于我正在使用群集引脚等,我希望保留我在地图上完成的工作,但现在这会导致所需的其他功能出现问题。
代码如下(mainMapView是一个mkMapView)
let rectangle = GMSPolygon(path: path)
rectangle.map = GMSMapView(mainMapView)
rectangle.fillColor = UIColor(red:0, green:0, blue:0.3, alpha:0.5)
有没有办法将GMSPolygon与mkMapView结合使用?
感谢。
编辑:我应该指出这条路径'是一个GMSMutablePath,如果不是暗示的那样。
答案 0 :(得分:1)
当然,没有任何现成的,但可以快速完成自定义桥接
MyPolygonOverlay
。符合MKOverlay。您可以使用GMSPolygon初始化。addOverlay
MyPolygonOverlayRenderer
。可以绘制MyPolygonOverlay
(或者更确切地说是GMSPolygon)。您的mkmapview委托需要在rendererForOverlay
方法注意MyPolygonOverlayRenderer
,您可以继承MKPathOverlayRenderer并将GMSPath转换为CGPath:)
如果有问题,请随时回复
答案 1 :(得分:1)
感谢Daij-Djan,我已经成功地以下列方式构建了MKPolygon。
var mkPoints = [CLLocationCoordinate2D]()
然后将点添加到数组中。
let c = CLLocationCoordinate2DMake(pointInCoord.latitude, pointInCoord.longitude)
mkPoints.append(c)
添加MKPolygon。
let polygon = MKPolygon(coordinates: &mkPoints, count: mkPoints.count)
mainMapView.addOverlay(polygon)
然后添加渲染器。
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
let pr = MKPolygonRenderer(overlay: overlay)
pr.fillColor = UIColor(red: 51/255, green: 204/255, blue: 255, alpha:0.5)
return pr
}