程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 使用百度地圖GeoCoding API確定路名、標志性建築和商場名的經度緯度

使用百度地圖GeoCoding API確定路名、標志性建築和商場名的經度緯度

編輯:關於JAVA

現在經常需要根據用戶提供的位置,提供一些和位置相關的信息。有時可以直接確定用戶的經度和緯度,有時不一定可以確定用戶的經度和緯度信息,用戶是 通過輸入一些路名、標志性建築或是商場名等位置,但是我們的數據庫可能並沒有存法用戶可能輸入的這些位置信息的經度緯度,這時候可以使用一些地圖提供的 API來確定,用戶所輸入的位置信息的經度和緯度。

我們使用百度地圖提供的GeoCoding API實現從位置信息到經度緯度的轉換,詳細的使用說明可以參考GeoCoding API。我們這裡做一個簡單的演示

public String getGeoCode(String query) throws ClientProtocolException, IOException{
    HttpClient httpClient = new DefaultHttpClient();
    String url = geoCodeRequestUrl(query);
    logger.log(Level.INFO, url);
    HttpGet httpget = new HttpGet(url);
    ResponseHandler<String> responseHandler = new BasicResponseHandler();
    String responseBody = httpClient.execute(httpget, responseHandler);//百度返回的經度緯度信息xml
    logger.log(Level.INFO,"baidu response:"+responseBody);
    return responseBody;
}
    
public String geoCodeRequestUrl(String query) throws UnsupportedEncodingException{
    String url = WeChatConstant.BASEURL + "geocoder?address=" + URLEncoder.encode(query,"UTF-8") + "&key="
            + WeChatConstant.MAPKEY + "&output=" + WeChatConstant.OUTPUTFORMAT;
    return url;
}

使用JUnit進行測試

@Test
public void testGeoCode() throws Exception {
    BaiduMapService bms = new BaiduMapService();
    String response = bms.getGeoCode("上地十街十號");
    BaiduGeoCodeResponse res = BaiduGeoCodeResponse.getBaiduGeoCode(response);//解析xml
    System.out.println(res.toString());
}

輸出的結果

<GeocoderSearchResponse> 
    <status>OK</status>
    <result>
                    <location>
                <lat>40.057098</lat>
                <lng>116.307175</lng>
            </location>    
            <precise>1</precise>
            <confidence>80</confidence>
            <level>道路</level>
            </result>    
</GeocoderSearchResponse>
BaiduGeoCodeResponse [lat=40.057098, lng=116.307175]

出處:http://www.qiyadeng.com/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved