-1

我正在使用 MapboxStatic 成功创建静态图像,并将记录的轨道坐标作为 GeoJson 数据。

我不知道如何编辑绘制在图像上的路线的颜色 - 它默认为黑色/灰色,我找不到更改它的方法。

我意识到它必须是通过编辑 GeoJson 属性本身,但我不知道如何快速实现它?

很想知道如何以某种方式改变颜色......

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

1 回答 1

1

您需要使用允许控制特征属性的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")
于 2020-11-03T22:14:49.057 回答