我可以使用经度和纬度从google检索数据,但不能使用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");
但是我用来看结果的祝酒词没有显示任何东西..。为空,并得到一行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 =jsonObj.getJSONArray(“结果”);
Address = resultArry.getJSONObject(0).getString("formatted_address").toString();`至
‘`JSONArray =jsonObj.getJSONArray(“路由”);
Address = resultArry.getJSONObject(0).getString("legs").toString();`但没有成功..。
发布于 2014-08-29 12:59:19
我已经试过你的例子了,成功了。我唯一需要做的更改是,我没有将坐标传递给ReadAddressFromWebService,而是传递了源字符串和目标字符串:
String from = "vicenza";
String to = "costabissara";
String Address = ReadAddressFromWebService(from,to);origin和destination使用的是位置名而不是坐标。
https://stackoverflow.com/questions/25568216
复制相似问题