我正在使用母语开发iOS,Android和Windows Phone应用程序。 Atm我正在计算当前位置和点列表之间的距离。以下是我在Android上如何执行此操作的示例:
Location currentLocation = new Location( "CurrentLocation" );
Location.distanceBetween(mLatitude, mLongitude, tempLoc.getLatitude(), tempLoc.getLongitude(), results);
问题是,Location.distanceBetween让我在鸟眼中有一段距离,我想改变它以给我行车方向的距离(最快的路线)(只需要距离,而不是在地图上画出来)。我甚至不确定这是否可行。所以我有两个问题。
提前致谢。
答案 0 :(得分:0)
您可以向Google API询问这两点之间的行车路线,并迭代每一步,包括距离。
https://developers.google.com/maps/documentation/directions/#JSON
例如,您可以执行以下请求:
http://maps.googleapis.com/maps/api/directions/json?origin=Chicago,IL&destination=Los+Angeles,CA&waypoints=Joplin,MO|Oklahoma+City,OK&sensor=false
但使用坐标而不是地址。结果将是这样的:
{
"status": "OK",
"routes": [ {
"summary": "I-40 W",
"legs": [ {
"steps": [ {
"travel_mode": "DRIVING",
"start_location": {
"lat": 41.8507300,
"lng": -87.6512600
},
"end_location": {
"lat": 41.8525800,
"lng": -87.6514100
},
"polyline": {
"points": "a~l~Fjk~uOwHJy@P"
},
"duration": {
"value": 19,
"text": "1 min"
},
"html_instructions": "Head \u003cb\u003enorth\u003c/b\u003e on \u003cb\u003eS Morgan St\u003c/b\u003e toward \u003cb\u003eW Cermak Rd\u003c/b\u003e",
"distance": {
"value": 207,
"text": "0.1 mi"
}
},...
也许您可以添加每个步骤的距离值:207 + ...