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/

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



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


          網站導航:
           
          主站蜘蛛池模板: 梧州市| 夏邑县| 同江市| 将乐县| 长寿区| 静宁县| 沙田区| 柳林县| 南康市| 汾西县| 于田县| 罗平县| 上虞市| 临泽县| 光山县| 新竹市| 荔波县| 崇文区| 安丘市| 离岛区| 左权县| 沁阳市| 富民县| 绿春县| 乌兰浩特市| 七台河市| 梁平县| 鄯善县| 慈利县| 宾阳县| 兰州市| 大关县| 尼木县| 山阳县| 湘乡市| 温州市| 大洼县| 遵义县| 沙洋县| 内丘县| 璧山县|