我能使用langitude和纬度,但以检索从谷歌公交API数据不directions
属性。这是我到目前为止谷歌公交JSON解析方向
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
try
{
String Lat=Double.toString(22.508507985602836);
String Long=Double.toString(73.474991977022533);
String Address = ReadAddressFromWebService(Lat,Long);
Toast.makeText(this,Address, Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
Log.e("error","Json parsing error :"+ e.toString());
Toast.makeText(this,e.toString(), Toast.LENGTH_LONG).show();
}
}
public String ReadAddressFromWebService(String latitude, String longitude) {
String Address="";
StringBuffer sb=new StringBuffer();
sb.append("http://maps.googleapis.com/maps/api/geocode/json?latlng="+
latitude +","+longitude +"&sensor=false");
String url=sb.toString();
HttpClient httpClient=new DefaultHttpClient();
Log.i("","HTTP client created");
String responseData="";
try {
HttpResponse response=httpClient.execute(new HttpGet(url));
response.addHeader("Accept-Language", "it-IT");
HttpEntity entity=response.getEntity();
Log.i("", "HTTP Response arrived");
BufferedReader bf=new BufferedReader(new
InputStreamReader((entity.getContent()),"UTF-8"));
String line="";
Log.i("","Start buffre reading");
while((line=bf.readLine())!=null){
responseData=responseData+line;
}
JSONObject jsonObj = new JSONObject(responseData);
JSONArray resultArry = jsonObj.getJSONArray("results");
Address = resultArry.getJSONObject(0).getString("formatted_address").toString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return Address;
}
}
我试图改变做在这样的StringBuffer
:sb.append("http://maps.googleapis.com/maps/api/directions/json?origin="+ latitude +"&destination="+longitude +"&sensor=false");
但我用看到的结果并没有显示任何东西..敬酒是空的,我得到了一个行错误的JSONObject:地址= resultArry.getJSONObject(0).getString("formatted_address").toString();
因此,这为t他JSON我将解析:http://maps.googleapis.com/maps/api/directions/json?origin=vicenza&destination=costabissara&sensor=false
,我会显示路线..当然我改变:
`JSONArray resultArry = jsonObj.getJSONArray( “结果”);
Address = resultArry.getJSONObject(0).getString("formatted_address").toString();`
到
`JSONArray resultArry = jsonObj.getJSONArray( “路由”);
Address = resultArry.getJSONObject(0).getString("legs").toString();`
但没有成功..
谢谢你,你是对的..但是,在这种方式下,我可以设置2个不同的城市..我怎么能回收目的地使用同一城市的2个地址?我不知道你是否理解.. – 2014-08-29 13:03:34
@ End.Game [这是一个检查](http://maps.googleapis.com/maps/api/directions/json?origin=ViaEugenioMontale36077,Vicenza,Italy&destination=StradadelleCaperse,15536100Casale ,意大利维琴察&传感器= FALSE)。你只需用逗号分隔地址,城市和国家。您可以从[Google地图](http://maps.google.com)获取完整地址。 – Simas 2014-08-29 13:12:02
哦,好的,非常感谢你:) – 2014-08-29 13:16:02