使用具有超过25个航点/坐标的MapBox绘制路线/折线

时间:2019-11-19 09:26:40

标签: android mapbox mapbox-android

我有26个坐标的列表,将来坐标可能会增加。我基本上是想在澳大利亚周围画一条路线/折线。我想在单个路线构建器调用中绘制整个路线/折线。现在有两个限制。

val routeBuilder = NavigationRoute.builder(mContext).accessToken(MapBoxUtils.MAP_KEY).origin(startPoint!!).destination(it)
                .profile(DirectionsCriteria.PROFILE_CYCLING)

            val endIndex = checkPointList.size - 1
            for ((index, point) in checkPointList.withIndex()) {
                if (index != 0 && index < endIndex) {
                    routeBuilder.addWaypoint(Point.fromLngLat(point.coordinates.longitude.toDouble(), point.coordinates.latitude.toDouble()))
                }
            }


            routeBuilder.build().getRoute(object:Callback<DirectionsResponse> {
                override fun onFailure(call: Call<DirectionsResponse>, t: Throwable) {
                    Timber.e("Error: " + t.message)
                }

                override fun onResponse(call: Call<DirectionsResponse>, response: Response<DirectionsResponse>) {
                    if (response.body() == null) {
                        showToast(getErrorMessage(response.errorBody()!!.string()))
                        return
                    } else if (response.body()!!.routes().size < 1) {
                        showToast("No routes found")
                        return
                    } else{
                    //draw route here
                }

            })
  1. 在请求中添加的坐标点不能超过25个。
  2. 所有航路点之间的最大总距离不能超过10,000公里。我的情况是12,000公里。

此处https://docs.mapbox.com/api/navigation/

我已经联系技术支持,他们没有回复我的要求。让我知道是否有任何解决方法,否则我必须打两个电话才能实现此目的。

1 个答案:

答案 0 :(得分:0)

我终于收到了MapBox技术支持的答复。

  

感谢您使用Mapbox!正如我们的文档中所述   Directions API限制和限制,限制为300   每分钟请求数,每条路线上最多25个航路点。的   所有航点之间的10,000公里的限制无法更改。   但是,您可以考虑向路线发出多个请求   API,然后将结果串联在一起。例如,“端口   “ Hedland”可能是传递给一个API请求的最后一个目的地,并且   也是传递到下一个API请求的第一个目标。   将生成的路线串联起来会产生一条连续的线。