<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    百度地圖API中geocoding的用法

    Posted on 2012-11-06 13:42 kiss_xian 閱讀(5826) 評論(3)  編輯  收藏

            最近看百度地圖官方API,寫了一個通過地址獲取經緯度,
    或者通過經緯度得到詳細地址的工具類方法,源碼如下:

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.util.HashMap;
    import java.util.Map;

    public class LatitudeUtils {
     
     public static final String KEY_1 = "327db7009617d6806b9c38e819ea06ac"; 
     /**
      * 返回輸入地址的經緯度坐標
      * key lng(經度),lat(緯度)
      */
     public static Map<String,String> getLatitude(String address){
      try {
    //  將地址轉換成utf-8的16進制
         address = URLEncoder.encode(address, "UTF-8");
    //  如果有代理,要設置代理,沒代理可注釋
    //  System.setProperty("http.proxyHost","192.168.172.23");
    //  System.setProperty("http.proxyPort","3209");
       URL resjson = new URL("http://api.map.baidu.com/geocoder?address="
                          + address +"&output=json&key="+ KEY_1);
      
       BufferedReader in = new BufferedReader(
                          new InputStreamReader(resjson.openStream()));
       String res;
       StringBuilder sb = new StringBuilder("");
       while((res = in.readLine())!=null){
        sb.append(res.trim());
       }
       in.close();
       String str = sb.toString();
       System.out.println("return json:"+str);
       Map<String,String> map = null;
       if(StringUtils.validNull(str)){
        int lngStart = str.indexOf("lng\":");
        int lngEnd = str.indexOf(",\"lat");
        int latEnd = str.indexOf("},\"precise");
        if(lngStart > 0 && lngEnd > 0 && latEnd > 0){
         String lng = str.substring(lngStart+5, lngEnd);
         String lat = str.substring(lngEnd+7, latEnd);
         map = new HashMap<String,String>();
         map.put("lng", lng);
         map.put("lat", lat);
         return map;
        }
       }
      }catch (Exception e) {
       e.printStackTrace();
      }
      return null;
     }
     public static void main(String args[]){
      Map<String,String> map = LatitudeUtils.getLatitude("北京西城區北京北站");
        if(null != map){
           System.out.println(map.get("lng"));
           System.out.println(map.get("lat"));
        }
     }
    }

    注:這里只是geocoding用法的一個具體實現,其中各個可選參數具體含義 
           請參考http://developer.baidu.com/map/geocoding-api.htm
         

    Feedback

    # re: 百度地圖API中geocoding的用法  回復  更多評論   

    2013-08-06 14:28 by 蔣永永
    validNull()你這個方法從哪里來的?

    # re: 百度地圖API中geocoding的用法  回復  更多評論   

    2013-09-19 11:55 by 饒衡
    這個代碼很好用,請問有沒有通過經緯碼得到詳細地址的代碼

    # re: 百度地圖API中geocoding的用法  回復  更多評論   

    2015-09-09 12:13 by 劉通
    @饒衡
    同求 通過坐標轉換地址

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲成av人片在线看片| 激情97综合亚洲色婷婷五| 亚洲国产综合专区电影在线| 日韩大片在线永久免费观看网站 | 亚洲香蕉免费有线视频| 中文字幕无码一区二区免费| 亚洲人成色77777| 中文字幕乱码免费看电影| 亚洲精品国产精品乱码不卡√| 一级毛片**免费看试看20分钟| 亚洲毛片av日韩av无码| 精品无码国产污污污免费网站国产| 亚洲无码黄色网址| 国产永久免费高清在线| 久久亚洲春色中文字幕久久久| 亚洲第一网站免费视频| 亚洲一区免费视频| 麻豆精品国产免费观看| 极品美女一级毛片免费| 久久亚洲中文字幕精品一区四| 三级黄色免费观看| 亚洲综合男人的天堂色婷婷| 思思re热免费精品视频66| 亚洲国产精品日韩av不卡在线 | 久久久久高潮毛片免费全部播放| 亚洲视屏在线观看| 国产高清在线免费| 国产V片在线播放免费无码| 国产AV无码专区亚洲A∨毛片| 曰批全过程免费视频播放网站 | 中文在线免费观看| 在线观看亚洲人成网站| 大学生一级特黄的免费大片视频| 野花视频在线官网免费1| 亚洲AV中文无码乱人伦下载| www.免费在线观看| 羞羞视频免费网站含羞草| 亚洲av无码潮喷在线观看| 成全高清视频免费观看| 久久精品免费网站网| 亚洲精品欧洲精品|