<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 劉通
    @饒衡
    同求 通過坐標轉換地址

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲日韩一区二区三区| 亚洲精品电影天堂网| 视频一区在线免费观看| 成年人在线免费观看| 亚洲综合中文字幕无线码| 国产成人免费午夜在线观看| 自怕偷自怕亚洲精品| 成人免费激情视频| 亚洲国产精品综合久久久| 黄页网站在线看免费| 亚洲欧美日韩中文高清www777| 成人看的午夜免费毛片| 亚洲av无码一区二区三区人妖 | 精品97国产免费人成视频| 亚洲精品麻豆av| 久久精品免费观看国产| 亚洲成人免费电影| 国产美女无遮挡免费视频| 一级毛片免费全部播放| 亚洲成A人片777777| 91福利免费体验区观看区| 亚洲精品第一国产综合野| 日韩在线视频免费看| 特级毛片aaaa免费观看| 亚洲国产AV无码专区亚洲AV| 日本h在线精品免费观看| 亚洲avav天堂av在线网毛片| 三上悠亚亚洲一区高清| 无码中文字幕av免费放dvd| 亚洲fuli在线观看| 四虎影视永久免费视频观看| 色www永久免费| 亚洲欧美国产国产一区二区三区 | 午夜老司机免费视频| 一级毛片a免费播放王色 | 亚洲精品无码久久| 亚洲男人的天堂www| 日韩免费一区二区三区在线播放| 美国免费高清一级毛片| 香蕉视频在线观看亚洲| 免费看美女被靠到爽的视频|