基於百度地圖的android地理位置擷取

來源:互聯網
上載者:User

標籤:android   web api   百度地圖   

通過手機擷取GPS資訊,然後把利用GPS經緯度查詢相應的地理位置資訊。

1、利用android內建API實現,經過測試基本沒有結果。留作參考。關鍵代碼如下:

Geocoder geocoder=new Geocoder(GotoMyLocationActivity.this); //        Geocoder geocoder = new Geocoder(this, Locale.CHINA);                       try {                //Thread.sleep(2000);                places = geocoder.getFromLocation(latitude, longitude, 5);               // Thread.sleep(2000);                Toast.makeText(GotoMyLocationActivity.this, places.size()+"", Toast.LENGTH_LONG).show();                System.out.println(places.size()+"");         } catch (Exception e) {                  e.printStackTrace();        }


 String placename = "";        if (places != null && places.size() > 0) {                // placename=((Address)places.get(0)).getLocality();                //一下的資訊將會具體到某條街                //其中getAddressLine(0)表示國家,getAddressLine(1)表示精確到某個區,getAddressLine(2)表示精確到具體的街                placename = ((Address) places.get(0)).getAddressLine(0) + ", " + System.getProperty("line.separator")                                + ((Address) places.get(0)).getAddressLine(1) + ", "                                + ((Address) places.get(0)).getAddressLine(2);                Toast.makeText(GotoMyLocationActivity.this, placename, Toast.LENGTH_LONG).show();                       }else{         Toast.makeText(GotoMyLocationActivity.this, "無法擷取地理資訊", Toast.LENGTH_LONG).show();        }

2、利用百度地圖API實現

關鍵代碼:

// GPS編碼成地理位置// 初始化搜尋模組,註冊事件監聽// 把gps訊號轉成百度地圖座標JWD jwd = GPSToBaiDu.getData(longitude+"",latitude+"");//LatLng ptCenter = new LatLng(latitude, longitude);ptCenter = new LatLng(Double.parseDouble(jwd.getY()), Double.parseDouble(jwd.getX()));

mSearch.reverseGeoCode(new ReverseGeoCodeOption().location(ptCenter));mSearch.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {@Overridepublic void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {if (result == null|| result.error != SearchResult.ERRORNO.NO_ERROR) {Toast.makeText(GotoMyLocationActivity.this, "抱歉,未能找到結果",Toast.LENGTH_LONG).show();return;}Toast.makeText(GotoMyLocationActivity.this,result.getAddress(), Toast.LENGTH_LONG).show();mAddr = result.getAddress();


3、利用web api實現

關鍵代碼:

/** *  * @param latitude 緯度 * @param longitude經度 * @return ReturnValue 返回地址相關資訊 */public static ReturnValue geocoding(String latitude, String longitude) {//String l = "http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&location=39.983424,116.322987&output=json&pois=1";//ak mean the key.you should apply it from baidu.String key = "XXXXXXXXXXXXXXXXX";String url = "http://api.map.baidu.com/geocoder/v2/" +"?ak="+key+"&location="+latitude+","+longitude+"&output=json&pois=1";ReturnValue rv = httpRequest(url,"GET");if(null==rv)return null;return rv;}

demo:http://download.csdn.net/detail/u014600432/8184399


基於百度地圖的android地理位置擷取

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.