如何在谷歌地图上画线

时间:2017-10-12 08:06:22

标签: ios swift google-maps-sdk-ios

我有很多来自服务器的用户坐标,我想要绘制线来连接像this这样的用户。

我尝试使用This way,但我的应用程序崩溃了,我想这发生了,因为我发送了太多请求。

2 个答案:

答案 0 :(得分:3)

最简单的方法是使用GMSPolyline

假设您有一个coordinates数组CLLocationCoordinate2D,并且它们的顺序正确。

let path = GMSMutablePath()
for coord in coordinates {
    path.add(coord)
}
let line = GMSPolyline(path: path)
line.strokeColor = UIColor.blue
line.strokeWidth = 3.0
line.map = self.map

答案 1 :(得分:0)

-Swift 4扩展

使用坐标生成路径:

extension GMSMutablePath {
    convenience init(coordinates: [CLLocationCoordinate2D]) {
        self.init()
        for coordinate in coordinates {
            add(coordinate)
        }
    }
}

添加地图路径:

extension GMSMapView {
    func addPath(_ path: GMSPath, strokeColor: UIColor? = nil, strokeWidth: CGFloat? = nil, geodesic: Bool? = nil, spans: [GMSStyleSpan]? = nil) {
        let line = GMSPolyline(path: path)
        line.strokeColor = strokeColor ?? line.strokeColor
        line.strokeWidth = strokeWidth ?? line.strokeWidth
        line.geodesic = geodesic ?? line.geodesic
        line.spans = spans ?? line.spans
        line.map = self
    }
}

用法:

let path = GMSMutablePath(coordinates: [<#Coordinates#>])
mapView.addPath(path)