小编Rob*_*b.R的帖子

Mapbox 多彩折线

我正在将我的应用程序移至 Mapbox,而我所坚持的事情之一是创建一条彩色多段线,其中段颜色根据速度动态设置。我能做的最接近的事情是创建一组不同颜色的线,并将它们添加到地图中,就像许多单独的线一样,但处理时间和帧速率下降太多,更不用说你可以看到不同的线段。使用 MapKit 或 Google 地图可以轻松实现这一点,但据我所知,Mapbox 中的折线只能有一种颜色。

这里有人问了一个非常类似的问题,但那是 3 年前的事了,答案似乎与使用方向 API 相关。

基本功能如下所示,我创建了一个自定义 MGLMulticolorPolyline 类,以便我可以设置颜色

    func locationPolyLine(locations : [Location], averageSpeed: Double, topSpeed: Double) -> [MGLMulticolorPolyline] {




    var coordinates: [(CLLocation, CLLocation)] = []
    var speeds: [Double] = []
    let smallerLocationArray = locations.enumerated().filter({ index, _ in
        index % 2 != 0
    }).map { $0.1 }




    for (first, second) in zip(smallerLocationArray, smallerLocationArray.dropFirst()) {
        //create an array of coordinates
        let start = CLLocation(latitude: first.locLatitude, longitude: first.locLongitude)
        let end = CLLocation(latitude: second.locLatitude, longitude: second.locLongitude) …
Run Code Online (Sandbox Code Playgroud)

mapbox swift mapbox-ios

6
推荐指数
1
解决办法
1597
查看次数

标签 统计

mapbox ×1

mapbox-ios ×1

swift ×1