【问题标题】:Google Maps Android Api v2 distanceBetween method innacurateGoogle Maps Android Api v2 distance Between 方法不准确
【发布时间】: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?

标签: java android


【解决方案1】:

MH 是对的。如果您想获得沿路行驶的距离,您必须使用网络服务Google Directions。因此,您必须使用您选择的起点和终点进行 http 请求。响应是一个 JSON,其中包含有关您的点之间的路线的详细信息,例如实际距离、转弯指示等等。

有关代码的一些详细信息,请参阅this 问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-24
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多