简体   繁体   English

在 MapKit swift 5 上突出显示两点之间

[英]Highlight between two points on MapKit swift 5

I am struggling to try and Highlight the road between 2 points using MapKit.我正在努力尝试使用 MapKit 突出显示两点之间的道路。 All I don't want directions i just want to try and Highlight the road between these two points.所有我不想要方向,我只想尝试并突出显示这两点之间的道路。

My code is:我的代码是:

import UIKit
import MapKit
class ViewController: UIViewController {

@IBOutlet weak var mapView: MKMapView!


struct Points {
  var name: String
  var lattitude: CLLocationDegrees
  var longtitude: CLLocationDegrees
}



override func viewDidLoad() {
    super.viewDidLoad()


    let points = [
    Points(name: "Point 1", lattitude: 52.100525, longtitude: -9.623071),
    Points(name: "Point 2", lattitude: 52.07241, longtitude: -9.575299)
    ]

    fetchPointsOnMap(points)

}


func fetchPointsOnMap(_ points: [Points]) {
  for points in points {
    let annotations = MKPointAnnotation()
    annotations.title = points.name
    annotations.coordinate = CLLocationCoordinate2D(latitude:
      points.lattitude, longitude: points.longtitude)
    mapView.addAnnotation(annotations)
  }
}

}`

You can draw a line :你可以画一条线

   directionsRequest.transportType = MKDirectionsTransportType.automobile

        //Draw polyline by using MKRoute so it follows the street roads...
        for (k, item) in arrayarrayPlacemarks.enumerated() {
            if k < (arrayarrayPlacemarks.count - 1) {
                directionsRequest.source = item
                directionsRequest.destination = arrayarrayPlacemarks[k+1]

                let directions = MKDirections(request: directionsRequest)
          directions.calculate { (response:MKDirections.Response!, error: Error!) -> Void in
                    if error == nil {
                        self.locRoute = response.routes[0] as? MKRoute
                        let geodesic:MKPolyline = self.locRoute!.polyline
                        self.mapView.addOverlay(geodesic)
                    }
                }
            }
        }

Delegate :代表

  func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
        if overlay.isKind(of: MKPolyline.self){
                var polylineRenderer = MKPolylineRenderer(overlay: overlay)
                polylineRenderer.fillColor = UIColor.blue
                polylineRenderer.strokeColor = UIColor.blue
                polylineRenderer.lineWidth = 2

            return polylineRenderer
     }
        return MKOverlayRenderer(overlay: overlay)
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM