【问题标题】:Highlight between two points on MapKit swift 5MapKit swift 5上两点之间的突出显示
【发布时间】:2020-02-19 01:12:26
【问题描述】:

我正在努力尝试使用 MapKit 突出显示两点之间的道路。所有我不想要的方向,我只想尝试并突出这两点之间的道路。

我的代码是:

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)
  }
}

}`

【问题讨论】:

    标签: ios mapkit swift5


    【解决方案1】:

    你可以画一条线

       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)
                        }
                    }
                }
            }
    

    代表

      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)
        }
    

    【讨论】:

    • 我似乎无法在我的代码中实现这一点,你能帮忙吗?
    猜你喜欢
    • 2020-03-05
    • 1970-01-01
    • 2012-05-22
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多