首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何利用Mapbox Kotlin计算两个坐标之间的距离

如何利用Mapbox Kotlin计算两个坐标之间的距离
EN

Stack Overflow用户
提问于 2021-04-27 19:09:28
回答 1查看 1.1K关注 0票数 2

如何才能从Mapbox导航路线得到距离?在双格式下,我不想画路线--我只需要计算两点之间的距离,我已经能够用Truf计算出距离

代码语言:javascript
运行
复制
Storelocation = Point.fromLngLat(Stores.latitude, Stores.longitude)
Userlocation = Point.fromLngLat(UserLocation.Latitude, UserLocation.Longitude)
Distance = TurfMeasurement.distance(Storelocation, Userlocation, TurfConstants.UNIT_KILOMETERS)

但问题是,用这种方法不计算路线内的距离,它只是计算直线从点到点的,例如在Google地图上的距离是9公里,但是用这种方法上面的距离是6公里。

代码语言:javascript
运行
复制
private fun getRout(){
        NavigationRoute.builder(this)
            .accessToken(Mapbox.getAccessToken()!!)
            .origin(Userlocation)
            .destination(Storelocation).build().getRoute(object :Callback<DirectionsResponse> {
                override fun onResponse(call: Call<DirectionsResponse>, response: Response<DirectionsResponse>) {
                    val rout = response ?: return
                    val body = rout.body() ?: return
                    if (body.routes().count() == 0 ){
                        return
                    }
                    navigationMapRoute = NavigationMapRoute(null, mapView, map)
                    // Get Distance
                    Distance = ??

                }

                override fun onFailure(call: Call<DirectionsResponse>, t: Throwable) {

                }
            })
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-22 14:25:12

而不是这样:

代码语言:javascript
运行
复制
navigationMapRoute = NavigationMapRoute(null, mapView, map)
                // Get Distance
                Distance = ??

这样做:

代码语言:javascript
运行
复制
val route = response.body().routes().get(0)
val distance = route.distance()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67289284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档