Android 计算经度和纬度阵列的道路距离
我有一个Android应用程序,每15秒捕获一次lat long,我们使用这组lat long来查找起点和终点之间的道路距离(第一个和最后一个lat long按时间戳排序) 实际上,该应用程序适用于在城市中运行微型卡车的客户,他们的卡车司机将使用该应用程序标记行程的开始/结束、丢包等。我们将根据行程中的公里数向客户收费 在我们的场景中,车辆将在充满转弯、环岛和一次又一次穿越同一路径的殖民地/小区域内传送数据包 因此,我试图找到一种计算所有收集到的lat-long距离的最佳方法 我选择了两种方法:Android 计算经度和纬度阵列的道路距离,android,google-maps,google-maps-android-api-2,haversine,Android,Google Maps,Google Maps Android Api 2,Haversine,我有一个Android应用程序,每15秒捕获一次lat long,我们使用这组lat long来查找起点和终点之间的道路距离(第一个和最后一个lat long按时间戳排序) 实际上,该应用程序适用于在城市中运行微型卡车的客户,他们的卡车司机将使用该应用程序标记行程的开始/结束、丢包等。我们将根据行程中的公里数向客户收费 在我们的场景中,车辆将在充满转弯、环岛和一次又一次穿越同一路径的殖民地/小区域内传送数据包 因此,我试图找到一种计算所有收集到的lat-long距离的最佳方法 我选择了两种方法:
public String getDistance(final double lat1, final double lon1, final double lat2, final double lon2){
String parsedDistance;
String response;
Thread thread=new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL("http://maps.googleapis.com/maps/api/directions/json?origin=" + lat1 + "," + lon1 + "&destination=" + lat2 + "," + lon2 + "&sensor=false&units=metric&mode=driving");
final HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
InputStream in = new BufferedInputStream(conn.getInputStream());
response = org.apache.commons.io.IOUtils.toString(in, "UTF-8");
JSONObject jsonObject = new JSONObject(response);
JSONArray array = jsonObject.getJSONArray("routes");
JSONObject routes = array.getJSONObject(0);
JSONArray legs = routes.getJSONArray("legs");
JSONObject steps = legs.getJSONObject(0);
JSONObject distance = steps.getJSONObject("distance");
parsedDistance=distance.getString("text");
} catch (ProtocolException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
return parsedDistance;
}
我的问题是,我如何才能获得我自己的一组横向长度或一条特定的路径的准确距离,Z字型和充分的转弯?我也在我的问题中提到过,我已经尝试过这个解决方案作为一种选择。只要谷歌有它的地图,(它在道路上等等),它就应该适合你。如果谷歌没有为你的路线绘制地图,据我所知,我认为没有办法通过公路获得一段距离。