如何在谷歌地图(swift)中的两个标记之间绘制路线?

时间:2016-06-15 09:44:05

标签: swift google-maps routes direction

我想展示我制作的两个标记之间的方向。我该怎么做?我怎样才能表明方向?

以下是我用来制作标记的代码:

func mapView(mapView: GMSMapView, didLongPressAtCoordinate coordinate: CLLocationCoordinate2D) {
    if counterMarker < 2
    {
        counterMarker += 1
        let marker = GMSMarker(position: coordinate)
        marker.appearAnimation = kGMSMarkerAnimationPop

        marker.map = mapView
        marker.position.latitude = coordinate.latitude
        marker.position.longitude = coordinate.longitude

        print(marker.position.latitude)
        print(marker.position.longitude)

    }

以下是点击时删除标记的代码:

func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool {

        let alert = UIAlertController(title: "Alert", message: "Are you Sure for deleting ?!", preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction(UIAlertAction(title: "No", style: UIAlertActionStyle.Default) {
            UIAlertAction in
            NSLog("No Pressed")


            })
        alert.addAction(UIAlertAction(title: "Yes", style: UIAlertActionStyle.Default) {
            UIAlertAction in
            NSLog("Yes Pressed")
            marker.map = nil
            self.counterMarker -= 1

        })

        self.presentViewController(alert, animated: true, completion: nil)

        return true
    }

我喜欢显示哪个标记用于目的地,哪个标记用于原点。

2 个答案:

答案 0 :(得分:4)

使用Polylines可以在地图上绘制线条。您需要通过创建具有两个或更多点的相应GMSMutablePath对象来指定其路径。每个CLLocationCoordinate2D代表地球表面上的一个点。根据您将它们添加到路径的顺序在点之间绘制线段。

示例:

let path = GMSMutablePath()
path.addCoordinate(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0))
path.addCoordinate(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.0))
path.addCoordinate(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.2))
path.addCoordinate(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.2))
path.addCoordinate(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0))

let rectangle = GMSPolyline(path: path)
rectangle.map = mapView

检查以下相关链接:

  

对于Swift 2.0 Google地图,要使地图视图符合折线   你正在绘制的路线:

let path: GMSPath = GMSPath(fromEncodedPath: route)!
    routePolyline = GMSPolyline(path: path)
    routePolyline.map = mapView


    var bounds = GMSCoordinateBounds()

    for index in 1...path.count() {
        bounds = bounds.includingCoordinate(path.coordinateAtIndex(index))
    }

    mapView.animateWithCameraUpdate(GMSCameraUpdate.fitBounds(bounds))

希望这有帮助! :)

答案 1 :(得分:0)

使用GMSPolyline并将其map属性设置为GMSMapView,以在地图上绘制折线/路线