<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 閱讀(5827) 評論(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 劉通
    @饒衡
    同求 通過坐標轉換地址

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


    網站導航:
     
    主站蜘蛛池模板: 在线aⅴ亚洲中文字幕| 99re6在线视频精品免费| 国产亚洲人成在线播放| a级毛片免费在线观看| 久久99亚洲综合精品首页| 亚洲国产精品综合久久2007| 人碰人碰人成人免费视频| 午夜国产精品免费观看| 中文字幕亚洲天堂| 男女一边摸一边做爽的免费视频| 国产免费不卡v片在线观看| 亚洲精品国产成人片| 国产av无码专区亚洲av毛片搜| 国产高清不卡免费在线| 国产精品亚洲精品日韩已满| 国产久爱免费精品视频| 成人黄动漫画免费网站视频 | 免费日本黄色网址| 亚洲春黄在线观看| 免费A级毛片无码无遮挡内射| 国产99在线|亚洲| 91免费国产精品| 亚洲熟妇无码乱子AV电影| 爱情岛论坛免费视频| 日韩特黄特色大片免费视频| 亚洲中文无码av永久| 最近免费视频中文字幕大全| 国产v亚洲v天堂a无| 亚洲国产精品成人| 国产亚洲漂亮白嫩美女在线 | 国产V亚洲V天堂无码| 女人隐私秘视频黄www免费| 男女超爽刺激视频免费播放| 亚洲欧洲精品成人久久曰| **俄罗斯毛片免费| 亚洲AV无码国产在丝袜线观看| 一级毛片**免费看试看20分钟| 波多野结衣中文一区二区免费| 亚洲精品精华液一区二区| 99久久国产热无码精品免费 | 亚洲日韩中文字幕日韩在线|