java Google transit json解析方向
我可以使用Langitute和latitude从google transit api检索数据,但不能使用directions
属性。。到目前为止,我就是这么做的
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 (安卓.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错误:Address=resultArry.getJSONObject(0).getString("formatted_address").toString();
这就是我要解析的json:http://maps.googleapis.com/maps/api/directions/json?origin=vicenza&destination=costabissara&sensor=false
我会展示路线。。我当然改变了:
`JSONArray resultary=jsonObj。getJSONArray(“结果”)
Address = resultArry.getJSONObject(0).getString("formatted_address").toString();`
到
`JSONArray resultary=jsonObj。getJSONArray(“路线”)
Address = resultArry.getJSONObject(0).getString("legs").toString();`
但是没有成功
# 1 楼答案
我试过你的例子,效果很好。我唯一需要做的改变是,我没有将坐标传递给
ReadAddressFromWebService
,而是传递了原点和目标字符串:origin
和destination
使用的是位置名称,而不是坐标