2011-06-26 57 views
0

我使用Google方向API並接收數據作爲json文件。我的網址是像Google方向API json文件解析

http://maps.googleapis.com/maps/api/directions/json?origin=Adelaide,SA&destination=Adelaide,SA&waypoints=optimize:true|Barossa+Valley,SA|Clare,SA|Connawarra,SA|McLaren+Vale,SA&sensor=false

,我用優化:true參數。當我閱讀它時,通過航點提供了從源到目的地的最佳路徑。而現在我完全不知道json文件的結構。我查找json文件的結構,但我不知道如何採取Google方向API給我的路徑順序。

+1

你還沒有標記任何回答的問題。永遠。用舊的修復,人們會更願意幫助你 – Eric

回答

0

我也嘗試使用谷歌的方向API中的Android。 所以我做了一個開源項目來幫助做到這一點。 你可以在這裏找到:https://github.com/MathiasSeguy-Android2EE/GDirectionsApiUtils

它是如何工作的,definitly簡單:

public class MainActivity extends ActionBarActivity implements DCACallBack{ 
/** 
* Get the Google Direction between mDevice location and the touched location using the  Walk 
* @param point 
*/ 
private void getDirections(LatLng point) { 
    GDirectionsApiUtils.getDirection(this, mDeviceLatlong, point,  GDirectionsApiUtils.MODE_WALKING); 
} 

/* 
* The callback 
* When the direction is built from the google server and parsed, this method is called and give you the expected direction 
*/ 
@Override 
public void onDirectionLoaded(List<GDirection> directions) {   
    // Display the direction or use the DirectionsApiUtils 
    for(GDirection direction:directions) { 
     Log.e("MainActivity", "onDirectionLoaded : Draw GDirections Called with path " + directions); 
     GDirectionsApiUtils.drawGDirection(direction, mMap); 
    } 
} 
0

你提到會給你應遵循的最佳路由呼叫。爲了知道路線是什麼,您需要查看waypoint_order的值。

你的電話,航點的順序是: 「waypoint_order,其中」:[3,2,0,1]

所以,最佳的結果是,你需要訪問航點的順序:產地 - 3 - 2 - 0 - 1 - 目的地。

你的情況,那就是: 阿德萊德,SA - 麥克拉倫谷,SA - Connawarra,SA - 巴羅莎谷,SA - 克萊爾,SA - 阿德萊德,SA

您的來電: http://maps.googleapis.com/maps/api/directions/json?origin=Adelaide,SA&destination=Adelaide,SA&waypoints=optimize:true|Barossa+Valley,SA|Clare,SA|Connawarra,SA|McLaren+Vale,SA&sensor=false