【发布时间】:2014-08-29 12:23:10
【问题描述】:
我可以使用纬度和纬度从谷歌交通 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 (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");
但是我用来查看结果的 toast 没有显示任何内容.. 是空的,并且我在行中收到 JSONObject 错误:地址 = resultArry.getJSONObject(0).getString("formatted_address").toString();
所以,这是我要解析的 json:http://maps.googleapis.com/maps/api/directions/json?origin=vicenza&destination=costabissara&sensor=false
我会显示路线..当然我改变了:
`JSONArray resultArry = jsonObj.getJSONArray("results");
Address = resultArry.getJSONObject(0).getString("formatted_address").toString();`
到
`JSONArray resultArry = jsonObj.getJSONArray("routes");
Address = resultArry.getJSONObject(0).getString("legs").toString();`
但没有成功..
【问题讨论】:
标签: java android json google-maps