【发布时间】:2018-06-05 09:47:43
【问题描述】:
所以我在 Javascript 中使用 google.maps.geometry.spherical.computeDistanceBetween,在 Java 中使用 SphericalUtil 中的 computeDistanceBetween。
对于相同的位置,我得到不同的距离。我可以做些什么来将它们校准为相同,或者我可以使用两个库在前端(Javascript)和后端(Java)中获得相似的结果吗?
以下是一些值和示例:
在 Javascript 中:
var from = new google.maps.LatLng(33.44138, -111.97500000000002);
var to = new google.maps.LatLng(33.505904166596224, -112.09470748901367);
var distanceBetween = google.maps.geometry.spherical.computeDistanceBetween(from, to);
console.log(distanceBetween);
在 Java 中:
LatLng from = new LatLng(Float.parseFloat("33.44138"), Float.parseFloat("-111.97500000000002"));
LatLng to = new LatLng(Float.parseFloat("33.505904166596224"), Float.parseFloat("-112.09470748901367"));
double distanceBetween = SphericalUtil.computeDistanceBetween(from, to);
System.out.println(distanceBetween);
在 Java 中使用 Double 而不是 Float:
LatLng from = new LatLng(Double.parseDouble("33.44138"), Double.parseDouble("-111.97500000000002"));
LatLng to = new LatLng(Double.parseDouble("33.505904166596224"), Double.parseDouble("-112.09470748901367"));
double distanceBetween = SphericalUtil.computeDistanceBetween(from, to);
System.out.println(distanceBetween);
Javascript 值为:13234.355969270651 Java(浮点)值为:13219.474110913057 Java(双精度)值为:13219.565680296535
谢谢!
【问题讨论】:
-
不同的浮点指针精度类型?
-
嘿,你是阿米尔,不是罗伯特!请发布您的代码和结果以进行比较。
-
好的,我会添加示例。
-
好的,我添加了一个例子。您现在可以看到输出之间存在差异。谢谢!
-
这可能是地球底层模型的差异。 Google 可能使用扁球体,而 Java 模型似乎使用球形模型 - 但我无法证实这一点。你可以在edwilliams.org/gccalc.htm查看一堆模型。
标签: javascript java android google-maps google-maps-api-3