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/

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



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


          網站導航:
           
          主站蜘蛛池模板: 海门市| 临沭县| 前郭尔| 万载县| 霍山县| 东莞市| 赞皇县| 合肥市| 周宁县| 沙洋县| 彭泽县| 东莞市| 大方县| 天门市| 开远市| 永州市| 铜陵市| 开化县| 峨山| 卓尼县| 信宜市| 辽阳县| 嘉峪关市| 九寨沟县| 阜阳市| 凉城县| 钟山县| 阳原县| 青神县| 明溪县| 马公市| 阳山县| 蒲城县| 台江县| 米泉市| 霍城县| 三原县| 铜川市| 新平| 凤庆县| 垫江县|