是否有任何公式可以在不使用谷歌地图的情况下获得两个位置之间的旅行时间或从颤动的距离
Posted
技术标签:
【中文标题】是否有任何公式可以在不使用谷歌地图的情况下获得两个位置之间的旅行时间或从颤动的距离【英文标题】:is there any formula to get travel time between two locations or from distance in flutter without using google maps 【发布时间】:2021-02-06 12:23:03 【问题描述】:我有两个位置,我有计算它们之间距离的公式,但我想在不使用谷歌地图或任何 API 调用的情况下计算它们之间的旅行时间。有什么公式可以在颤振中做到这一点吗?
【问题讨论】:
【参考方案1】:我认为真正的旅行时间取决于很多因素,例如您所走的道路或限速。
除了一些复杂的阐述,通常由后端执行,我认为不可能计算出来。
无论如何,既然你已经知道了距离,你可以简单地通过给出一个假设的速度然后使用基本的物理公式来估计它。
时间 = 距离/速度。
【讨论】:
谢谢,我试过了,但有时它会给出来自 google api 的不同值,具有很大的不同值 正如我所说,对于真正的旅行时间,您需要使用复杂的算法(它会处理许多不同的参数),这些算法通常在一些复杂的后端实现,这些后端可以通过 API 访问。这只是一个物理公式,我认为结果不匹配是很明显的。 如果您认为它有帮助,请考虑投票。谢谢。 如果这个或任何答案已经解决了您的问题,请考虑通过单击复选标记接受它。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。【参考方案2】:如果不使用 Google API,您将无法找到两个位置之间的行驶距离。 但是,您可以在颤振中使用此公式获得以米为单位的空中距离。
double calculateDistance(
double lat1, double lon1, double lat2, double lon2)
var p = 0.017453292519943295;
var c = cos;
var a = 0.5 -
c((lat2 - lat1) * p) / 2 +
c(lat1 * p) * c(lat2 * p) * (1 - c((lon2 - lon1) * p)) / 2;
var temp = 12742 * asin(sqrt(a));
return (temp * 1000);
【讨论】:
非常感谢,我做到了,但你知道结果是公里还是米? ,它有时会给出不同的值来自 google api,你知道任何其他准确的公式吗? 是的,它的结果是米而不是公里。此外,结果可能会略有不同,因为同一地点的纬度和经度可能会有所不同。因为手机缓存不同的纬度,即使是同一个地方。以上是关于是否有任何公式可以在不使用谷歌地图的情况下获得两个位置之间的旅行时间或从颤动的距离的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 kml 的情况下向 android studio 中的谷歌地图应用程序添加大量多边形
如何在不使用API 的情况下获得Google云端硬盘的可用空间?
如何在不点击标记的情况下在 iOS 谷歌地图中显示信息窗口?