在运行时更改目标坐标(动态)
Posted
技术标签:
【中文标题】在运行时更改目标坐标(动态)【英文标题】:Changing destination coordinates at runtime (Dynamically) 【发布时间】:2016-12-20 15:15:02 【问题描述】:我想编写一个 android 应用程序,用户 A 可以在其中自行导航到用户 B(使用 Google 地图和他们的导航器)。 但我希望我的 android 应用程序能够实时更新 user B 的坐标并将其发送给 user A。
我的问题是:用户 A 有没有办法检索更新后的坐标 AND 没有得到每次用户 B 改变位置时计算的新路线?
由于我希望我的用户 B 每 15 米发送一次新坐标,如果 用户 A 每次都得到一个新的路线计算,那就太糟糕了。
【问题讨论】:
【参考方案1】:您可以在渲染器上使用setDirection() 方法并将其传递给DirectionsResult。 DirectionsResult 包含路线查询的结果,您可以自己处理,也可以自动处理在地图上显示结果。渲染器是一个 MVCObject,它会自动检测其属性的任何变化,并在其关联方向发生变化时更新地图。
以下示例计算 Route 上两个位置之间的方向,其中起点和终点由下拉列表中给定的“开始”和“结束”值设置。 DirectionsRenderer
处理指示位置之间的折线显示,以及在起点、目的地和任何航点(如果适用)放置标记。
function calcRoute()
var start = document.getElementById('start').value;
var end = document.getElementById('end').value;
var request =
origin: start,
destination: end,
travelMode: 'DRIVING'
;
directionsService.route(request, function(result, status)
if (status == 'OK')
directionsDisplay.setDirections(result);
);
【讨论】:
感谢您的回答。所以我想我需要在我的原生 android 应用程序中使用 webview 才能呈现变化的位置,对吗?或者是否可以在没有 webview 的情况下向控制器和客户端(视图)发送新的目的地?您能描述一下使用 MVCObject 显示带有导航的 Google 地图的第一步吗? 这里是扩展 MVObject 的指南:developers.google.com/maps/documentation/javascript/reference @user3506 上面的问题你得到答案了吗? 使用 setDirections 导致刷新标记并导致用户体验不流畅,您确实有任何方法可以平滑体验。以上是关于在运行时更改目标坐标(动态)的主要内容,如果未能解决你的问题,请参考以下文章