首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析指南

解析指南
EN

Stack Overflow用户
提问于 2014-08-29 12:23:10
回答 1查看 645关注 0票数 1

我可以使用经度和纬度从google检索数据,但不能使用directions属性。这就是我迄今所做的

代码语言:javascript
复制
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;
    }
}

我试图以这样的方式更改StringBuffersb.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(“结果”);

代码语言:javascript
复制
        Address = resultArry.getJSONObject(0).getString("formatted_address").toString();`

‘`JSONArray =jsonObj.getJSONArray(“路由”);

代码语言:javascript
复制
        Address = resultArry.getJSONObject(0).getString("legs").toString();`

但没有成功..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-29 12:59:19

我已经试过你的例子了,成功了。我唯一需要做的更改是,我没有将坐标传递给ReadAddressFromWebService,而是传递了源字符串和目标字符串:

代码语言:javascript
复制
String from = "vicenza";
String to = "costabissara";

String Address = ReadAddressFromWebService(from,to);

origindestination使用的是位置名而不是坐标。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25568216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档