如何更改 MGLPolyline 的颜色?
How to change the color of a MGLPolyline?
如何更改 MGLPolyline 的颜色?我看过 但答案没有用。我还尝试了一些其他代码,但它太依赖苹果地图了。那么我怎样才能改变线条的颜色,最好还能编辑线条的其他方面呢? Bellow 是我相信我应该进行这些编辑的代码的地方,但我不是 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
}
}
您只能在 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
}
你必须mapView.delegate = self
然后实现这个方法:
func mapView(_ mapView: MGLMapView, strokeColorForShapeAnnotation annotation: MGLShape) -> UIColor {
return .blue
}
如何更改 MGLPolyline 的颜色?我看过
@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
}
}
您只能在 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
}
你必须mapView.delegate = self
然后实现这个方法:
func mapView(_ mapView: MGLMapView, strokeColorForShapeAnnotation annotation: MGLShape) -> UIColor {
return .blue
}