百度地圖 根據經緯度擷取地址

來源:互聯網
上載者:User

1、設定AndroidManfest.xml許可權

View Code

 <!-- 訪問網路的許可權 -->    <uses-permission android:name="android.permission.INTERNET" />    <!-- 訪問精確位置的許可權 -->    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />    <!-- 訪問網路狀態的許可權 -->    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <!-- 訪問WIFI網路狀態的許可權 -->    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <!-- 改變WIFI網路狀態的許可權 -->    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />    <!-- 讀寫儲存卡的許可權 -->    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <!-- 讀取電話狀態的許可權 -->    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

2、配置jar包

3、初始化設定BMapManager

View Code

mapManager = new BMapManager(this);        mapManager.init("EDB67AD764D300895C95ABA02A4DDC58D5485CCD",                new MyMKGeneralListener());        // 設定通知間隔:iMaxSecond - 最大通知間隔,單位:秒;iMinSecond - 最小通知間隔,單位:秒        mapManager.getLocationManager().setNotifyInternal(20, 5);

4、擷取手機經緯度,並顯示地址資訊

View Code

mapManager.getLocationManager().requestLocationUpdates(new MyLocationListener());mapManager.start();

在LocationListener中擷取經緯度

View Code

    class MyLocationListener implements LocationListener {        @Override        public void onLocationChanged(Location arg0) {            int jindu = (int) (arg0.getLatitude()*1000000);            int weidu = (int) (arg0.getLongitude()*1000000);            tv1.setText("經度:" + jindu + ",緯度:" + weidu);            MKSearch search = new MKSearch();            search.init(mapManager, new MyMKSearchListener());            search.reverseGeocode(new GeoPoint(jindu, weidu));        }    }

在MKSearch介面中進行地址轉化

View Code

@Override        public void onGetAddrResult(MKAddrInfo arg0, int arg1) {            if (arg0 == null) {                tv2.setText("沒有擷取想要的位置");            } else {                GeoPoint point = arg0.geoPt;                tv2.setText("地址:" + arg0.strAddr + ",座標:"                        + point.getLatitudeE6() + "," + point.getLongitudeE6());            }        }

效果:

源碼下載:BaiduMapTest.rar

附加部分解釋

View Code

/** * 實現MKSearchListener介面,用於實現非同步搜尋服務,得到搜尋結果 *  * @author liufeng */public class MySearchListener implements MKSearchListener {    /**     * 根據經緯度搜尋地址資訊結果     * @param result 搜尋結果     * @param iError 錯誤號碼(0表示正確返回)     */    @Override    public void onGetAddrResult(MKAddrInfo result, int iError) {    }    /**     * 駕車路線搜尋結果     * @param result 搜尋結果     * @param iError 錯誤號碼(0表示正確返回)     */    @Override    public void onGetDrivingRouteResult(MKDrivingRouteResult result, int iError) {    }    /**     * POI搜尋結果(範圍檢索、城市POI檢索、周邊檢索)     * @param result 搜尋結果     * @param type 返回結果類型(11,12,21:poi列表 7:城市列表)     * @param iError 錯誤號碼(0表示正確返回)     */    @Override    public void onGetPoiResult(MKPoiResult result, int type, int iError) {    }    /**     * 公交轉乘路線搜尋結果     * @param result 搜尋結果     * @param iError 錯誤號碼(0表示正確返回)     */    @Override    public void onGetTransitRouteResult(MKTransitRouteResult result, int iError) {    }    /**     * 步行路線搜尋結果     * @param result 搜尋結果     * @param iError 錯誤號碼(0表示正確返回)     */    @Override    public void onGetWalkingRouteResult(MKWalkingRouteResult result, int iError) {    }}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.