qiyadeng

          專注于Java示例及教程
          posts - 84, comments - 152, trackbacks - 0, articles - 34

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

          本文鏈接地址: 確定路名、標志性建筑和商場名的經度緯度



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


          網站導航:
           
          主站蜘蛛池模板: 缙云县| 麻栗坡县| 额敏县| 临高县| 霍山县| 多伦县| 开原市| 武宣县| 芮城县| 巩留县| 青铜峡市| 上犹县| 青川县| 景谷| 汕头市| 绥德县| 呈贡县| 绥芬河市| 宾阳县| 尉犁县| 麻江县| 凤山市| 石景山区| 扬州市| 海城市| 通辽市| 博乐市| 梁河县| 滕州市| 虹口区| 双城市| 景宁| 昌江| 淳化县| 孟州市| 兴化市| 潼南县| 社会| 武汉市| 奇台县| 法库县|