• Android中使用地图之地址(字符串类型)转换经纬度


    项目中用到根据距离排序,看百度地图帮助文档,试了几种方法都没有得以实现,最后通过网页版的json的以实现地址如下,传地址值即可

    http://maps.google.com/maps/api/geocode/json?address=%E5%8C%97%E4%BA%AC%E9%82%AE%E7%94%B5%E5%A4%A7%E5%AD%A6&sensor=false

     1 public JSONObject getLocationInfo(String address) {
     2         // 发送json请求获取地址的json对象
     3         HttpGet httpGet = new HttpGet("http://maps.google."
     4                 + "com/maps/api/geocode/json?address=" + address
     5                 + "ka&sensor=false");
     6         HttpClient client = new DefaultHttpClient();
     7         HttpResponse response;
     8         StringBuilder stringBuilder = new StringBuilder();
     9 
    10         try {
    11             response = client.execute(httpGet);
    12             HttpEntity entity = response.getEntity();
    13             InputStream stream = entity.getContent();
    14             int b;
    15             while ((b = stream.read()) != -1) {
    16                 stringBuilder.append((char) b);
    17             }
    18         } catch (ClientProtocolException e) {
    19         } catch (IOException e) {
    20         }
    21 
    22         JSONObject jsonObject = new JSONObject();
    23         try {
    24             jsonObject = new JSONObject(stringBuilder.toString());
    25         } catch (JSONException e) {
    26             // TODO Auto-generated catch block
    27             e.printStackTrace();
    28         }
    29         return jsonObject;
    30     }
    31 
    32     public GeoPoint getGeoPoint(JSONObject jsonObject) {
    33         // 解析json获取经纬度信息
    34         Double lon = new Double(0);
    35         Double lat = new Double(0);
    36 
    37         try {
    38             lon = ((JSONArray) jsonObject.get("results")).getJSONObject(0)
    39                     .getJSONObject("geometry").getJSONObject("location")
    40                     .getDouble("lng");
    41 
    42             lat = ((JSONArray) jsonObject.get("results")).getJSONObject(0)
    43                     .getJSONObject("geometry").getJSONObject("location")
    44                     .getDouble("lat");
    45 
    46         } catch (JSONException e) {
    47             e.printStackTrace();
    48         }
    49         return new GeoPoint((int) (lat * 1E6), (int) (lon * 1E6));
    50     }
  • 相关阅读:
    HDU1266 Reverse Number
    codevs1380 没有上司的舞会
    codevs1163 访问艺术馆
    codevs2144 砝码称重 2
    codevs1553 互斥的数
    codevs1230 元素查找
    codevs3118 高精度练习之除法
    codevs1245 最小的N个和
    codevs1063 合并果子
    codevs1052 地鼠游戏
  • 原文地址:https://www.cnblogs.com/snowspace/p/3293036.html
Copyright © 2020-2023  润新知