更改静态地图图像中多段线的颜色
Change color of polyline in static map image
我使用 MapboxStatic 成功创建了静态图像,并将记录的轨道坐标作为 GeoJson 数据。
我不知道如何编辑图像上绘制的路线的颜色 - 它默认为 black/gray 颜色,我找不到更改它的方法。
我意识到它必须通过编辑 GeoJson 属性本身但我不知道如何在 swift?
很想了解如何以某种方式改变颜色...
let camera = SnapshotCamera(
lookingAtCenter: CLLocationCoordinate2D(latitude: self.mapView.camera.centerCoordinate.latitude, longitude: self.mapView.camera.centerCoordinate.longitude),
zoomLevel: 12)
let options = SnapshotOptions(
styleURL: self.mapView.styleURL,
camera: camera,
size: self.mapView.bounds.size)
let coordinates = self.viewModel.getTrack().locations?.map { loc -> CLLocationCoordinate2D in
CLLocationCoordinate2D(latitude: loc.latitude, longitude: loc.longitude)
}
let trackLine = MGLPolyline(coordinates: coordinates!, count: UInt(coordinates!.count))
let data = trackLine.geoJSONData(usingEncoding: String.Encoding.utf8.rawValue)
let getJson = GeoJSON(objectString: String(data: data, encoding: .utf8)!)
options.overlays.append(getJson)
您需要使用 MGLPolylineFeature 来控制特征属性。
所以不用
let trackLine = MGLPolyline(coordinates: coordinates!, count: UInt(coordinates!.count))
它应该看起来像
let trackLine = MGLPolylineFeature(coordinates: coordinates!, count: UInt(coordinates!.count))
polyline.attributes.updateValue("red", forKey: "stroke")
我使用 MapboxStatic 成功创建了静态图像,并将记录的轨道坐标作为 GeoJson 数据。
我不知道如何编辑图像上绘制的路线的颜色 - 它默认为 black/gray 颜色,我找不到更改它的方法。
我意识到它必须通过编辑 GeoJson 属性本身但我不知道如何在 swift?
很想了解如何以某种方式改变颜色...
let camera = SnapshotCamera(
lookingAtCenter: CLLocationCoordinate2D(latitude: self.mapView.camera.centerCoordinate.latitude, longitude: self.mapView.camera.centerCoordinate.longitude),
zoomLevel: 12)
let options = SnapshotOptions(
styleURL: self.mapView.styleURL,
camera: camera,
size: self.mapView.bounds.size)
let coordinates = self.viewModel.getTrack().locations?.map { loc -> CLLocationCoordinate2D in
CLLocationCoordinate2D(latitude: loc.latitude, longitude: loc.longitude)
}
let trackLine = MGLPolyline(coordinates: coordinates!, count: UInt(coordinates!.count))
let data = trackLine.geoJSONData(usingEncoding: String.Encoding.utf8.rawValue)
let getJson = GeoJSON(objectString: String(data: data, encoding: .utf8)!)
options.overlays.append(getJson)
您需要使用 MGLPolylineFeature 来控制特征属性。
所以不用
let trackLine = MGLPolyline(coordinates: coordinates!, count: UInt(coordinates!.count))
它应该看起来像
let trackLine = MGLPolylineFeature(coordinates: coordinates!, count: UInt(coordinates!.count))
polyline.attributes.updateValue("red", forKey: "stroke")