【发布时间】:2013-07-19 20:19:08
【问题描述】:
说到点子上了。 我正在使用 Google Maps Android Api v2 distanceBetween 方法来获取用户位置与地图上某个点之间的距离,如下所示:
float[] distance = new float[1];
Location currentLocation = PECApplication.getInstance().getLocationClient().getLastLocation();
Location.distanceBetween(currentLocation.getLatitude(), currentLocation.getLongitude(), marker.getPosition().latitude, marker.getPosition().longitude, distance);
TextView distanceView = (TextView) infoWindow.findViewById(R.id.eventDistanceValue);
distanceView.setText(formatDistance(distance[0]));
问题是结果与我从谷歌地图网站收到的结果不匹配。在其中一种情况下,Google Maps 网站的距离是 31 公里,而 distanceBetween 方法的结果是 23,328 公里。 有人有线索吗?非常感谢。
【问题讨论】:
-
您可能会考虑发布为您提供这些结果的实际纬度和经度值。另外,
Location与 Maps V2 无关。 -
只是一个有根据的猜测:谷歌地图会给你在道路、人行道等上的旅行长度,而
distanceBetween()方法只是计算两点之间的距离“如乌鸦飞翔”(或更多技术上正确:“位移”)。另见:distanceBetween() returns inaccurate result?