java調用百度地圖API依據地理位置中文獲取經緯度


百度地圖api提供了非常多地圖相關的免費接口,有利於地理位置相關的開發,百度地圖api首頁:http://developer.baidu.com/map/

博主使用過依據地理依據地理位置中文獲取經緯度的api,以下提供java調用百度api接口的代碼。詳情可參考百度地圖api相關說明:http://developer.baidu.com/map/index.php?title=webapi/guide/webservice-geocoding。很多其它功能待讀者挖掘啦。

public Map<String, BigDecimal> getLatAndLngByAddress(String addr){
        String address = "";
        String lat = "";
        String lng = "";
        try {  
            address = java.net.URLEncoder.encode(addr,"UTF-8");  
        } catch (UnsupportedEncodingException e1) {  
            e1.printStackTrace();  
        } 
        String url = String.format("http://api.map.baidu.com/geocoder/v2/?

" +"ak=4rcKAZKG9OIl0wDkICSLx8BA&output=json&address=%s",address); URL myURL = null; URLConnection httpsConn = null; //進行轉碼 try { myURL = new URL(url); } catch (MalformedURLException e) { } try { httpsConn = (URLConnection) myURL.openConnection(); if (httpsConn != null) { InputStreamReader insr = new InputStreamReader( httpsConn.getInputStream(), "UTF-8"); BufferedReader br = new BufferedReader(insr); String data = null; if ((data = br.readLine()) != null) { lat = data.substring(data.indexOf("\"lat\":") + ("\"lat\":").length(), data.indexOf("},\"precise\"")); lng = data.substring(data.indexOf("\"lng\":") + ("\"lng\":").length(), data.indexOf(",\"lat\"")); } insr.close(); } } catch (IOException e) { } Map<String, BigDecimal> map = new HashMap<String, BigDecimal>(); map.put("lat", new BigDecimal(lat)); map.put("lng", new BigDecimal(lng)); return map; }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM