Как изменить цвет MGLPolyline? - PullRequest
0 голосов
/ 07 февраля 2019

Как я могу изменить цвет MGLPolyline?Я посмотрел здесь , но ответ не сработал.Я также попробовал какой-то другой код, но он был слишком зависим от яблочных карт.Итак, как я могу изменить цвет линии и предпочтительно иметь возможность редактировать и другие аспекты линии?Ниже я верю в код, я должен делать эти изменения, но я не на 100%.

        @objc func useButtonTap(_ sender: UIGestureRecognizer) {
        print("use tap button pressed")
        startButton.backgroundColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.9)
        useTrackButton.backgroundColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.9)

        locationManager?.stopUpdatingLocation()

        print(locationList, "<-- location manager array in use button")
        if locationList == [] {
            print("nothing was tracked")
        } else {

            var mapCoordinates: [CLLocationCoordinate2D] = []

            for locationT in locationList {
                print(locationT, "<-- locationT")
                print(locationT.coordinate.latitude, "<-- latitude")
                print(locationT.coordinate.longitude, "<-- longitude")

                let locationLatitude = locationT.coordinate.latitude
                let locationLongitude = locationT.coordinate.longitude

                print(locationLatitude, "lat")
                print(locationLongitude, " long")
                let newCoord = CLLocationCoordinate2D(latitude: locationLatitude, longitude: locationLongitude) // - (0.0001/2)
                print(newCoord, "<-- new coord")
                mapCoordinates.append(newCoord)//+ 0.0001

            }

            polyline = MGLPolyline(coordinates: mapCoordinates, count: UInt(mapCoordinates.count))
//            toCome = polyline
//            mapView.add(polyline)

            mapView.addAnnotation(polyline) //used to be jsut .add, changed in order to try anwser for color chaning of polyline

        }
    }

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Вы должны сделать mapView.delegate = self

Затем реализовать этот метод:

func mapView(_ mapView: MGLMapView, strokeColorForShapeAnnotation annotation: MGLShape) -> UIColor {

  return .blue
}
0 голосов
/ 07 февраля 2019

Вы можете установить цвет и ширину полилинии только в функции MKMapViewDelegate .Проверьте пример ниже.

  public func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
      let polyLine = overlay as? MKPolyline
      let renderer = MKPolylineRenderer(overlay: overlay)
      renderer.lineWidth = 2.5
      renderer.strokeColor = UIColor(red: 47/255, green: 62/255, blue: 158/255, alpha: 1.0)
      return renderer
  }
...