国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

安卓:百度地圖開發(fā)(超詳細)

這篇具有很好參考價值的文章主要介紹了安卓:百度地圖開發(fā)(超詳細)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、百度地圖介紹

1. MapView類:

2. BaiduMap類:

3. GeoCoder類:

4.GeoCodeOption類:

5.GeoCodeResult類:

6. LocationClient類:

7.LocationClientOption 類:

8. RoutePlanSearch類:

9.LatLng 類:

10.?PoiSearch 類:?

11.PoiResult 類:

12.PoiInfo 類:

13.PoiOverlay 類:

14.MarkerOptions類:

15.MapStatusUpdate類:

二、使用例子

例1:獲取當(dāng)前位置:

?MainActivity :

?activity_main:

?AndroidManifest:

?運行結(jié)果

一、百度地圖介紹

????????百度地圖SDK是一套供開發(fā)者使用的軟件開發(fā)工具包(SDK),用于在Android應(yīng)用程序中集成和使用百度地圖功能。通過使用百度地圖SDK,開發(fā)者可以實現(xiàn)在自己的應(yīng)用中顯示地圖、獲取定位信息、進行搜索、導(dǎo)航等功能。

????????百度地圖SDK提供了許多常用的類和方法,用于實現(xiàn)各種地圖相關(guān)功能。以下是一些常用的類及其方法:

1. MapView類:

????????MapView 類是百度地圖SDK提供的一個控件類,用于在應(yīng)用程序的界面上顯示地圖。它是一個自定義的 View,可以與 BaiduMap 類關(guān)聯(lián),實現(xiàn)地圖的顯示和交互功能。?

? 常用方法:?

  • ? ?getMap():獲取百度地圖對象(BaiduMap)的實例。
  • ? ?onResume():在Activity的生命周期方法中調(diào)用,用于恢復(fù)地圖控件的繪制和定位功能。
  • ? ?onPause():在Activity的生命周期方法中調(diào)用,用于暫停地圖控件的繪制和定位功能。
  • ? ?onDestroy():在Activity的生命周期方法中調(diào)用,用于銷毀地圖控件。

2. BaiduMap類:

????????BaiduMap 類是百度地圖SDK中的核心類,用于管理和操作地圖。它提供了一系列方法和接口,用于顯示地圖、控制地圖狀態(tài)、添加覆蓋物、定位等功能。?

常用方法:??

  • ? ?setMapType():設(shè)置地圖顯示類型,如普通地圖、衛(wèi)星地圖等。
  • ? ?setMapStatus():設(shè)置地圖的狀態(tài),包括中心點坐標(biāo)、縮放級別、傾斜角度和旋轉(zhuǎn)角度等。
  • ? ?addOverlay():添加覆蓋物(Overlay),如標(biāo)記點(Marker)、折線(Polyline)和多邊形(Polygon)等。
  • ? ?clear():清除地圖上的所有覆蓋物。
  • ? ?setOnMapClickListener():設(shè)置地圖點擊事件監(jiān)聽器。
  • ? ?setOnMarkerClickListener():設(shè)置標(biāo)記點點擊事件監(jiān)聽器。

3. GeoCoder類:

????????GeoCoder 類是百度地圖SDK提供的一個地理編碼和反地理編碼工具類,用于將地址信息與地理坐標(biāo)之間進行轉(zhuǎn)換。通過 GeoCoder 類,開發(fā)者可以實現(xiàn)將地址解析為經(jīng)緯度坐標(biāo)(地理編碼),或者將經(jīng)緯度坐標(biāo)解析為地址信息(反地理編碼)。?

常用方法:??

  • ? ?newInstance():創(chuàng)建 GeoCoder 實例。
  • ? ?setOnGetGeoCodeResultListener():設(shè)置地理編碼查詢結(jié)果監(jiān)聽器。
  • ? ?setOnGetReverseGeoCodeResultListener():設(shè)置反地理編碼查詢結(jié)果監(jiān)聽器。
  • ? ?geocode():發(fā)起地理編碼查詢,將地址信息轉(zhuǎn)換為經(jīng)緯度坐標(biāo)。
  • ? ?reverseGeoCode():發(fā)起反地理編碼查詢,將經(jīng)緯度坐標(biāo)轉(zhuǎn)換為地址信息。

4.GeoCodeOption類:

????????GeoCodeOption類是百度地圖API中的一個選項類,用于設(shè)置地理編碼的參數(shù)和選項。地理編碼是將地理位置轉(zhuǎn)換為對應(yīng)的經(jīng)緯度坐標(biāo)的過程。

常用方法

  • address(String address):設(shè)置待編碼的地址信息。

  • city(String city):設(shè)置地址所在的城市名。

  • retCoordType(String coordType):設(shè)置返回結(jié)果的坐標(biāo)類型??蛇x參數(shù)包括:"bd09ll"(百度坐標(biāo),默認值)、"gcj02"(國測局坐標(biāo))和"wgs84"(WGS-84坐標(biāo))。

  • getAddress():獲取待編碼的地址信息。

  • getCity():獲取地址所在的城市名。

  • getRetCoordType():獲取返回結(jié)果的坐標(biāo)類型。

5.GeoCodeResult類:

????????GeoCodeResult類是百度地圖API中用于表示地理編碼結(jié)果的類。通過該類,可以獲取地理編碼的查詢結(jié)果信息,包括位置坐標(biāo)、地址描述等。?

  • getLocation()獲取地理編碼的位置坐標(biāo)(LatLng對象)。
  • getAddress()獲取地理編碼結(jié)果的地址描述。
  • getBusinessCircle():獲取地理編碼結(jié)果所屬的商圈名稱。
  • getSematicDescription()獲取地理編碼結(jié)果的語義化描述信息,即更詳細的文字描述。

6. LocationClient類:

?????????LocationClient 類是百度定位SDK提供的核心類,用于實現(xiàn)設(shè)備的定位功能。通過 LocationClient 類,開發(fā)者可以獲取設(shè)備的當(dāng)前位置信息,包括經(jīng)緯度坐標(biāo)、速度、方向等。

常用方法:??

  • ? ?registerLocationListener():注冊定位監(jiān)聽器。
  • ? ?start():開始定位。
  • ? ?stop():停止定位。

7.LocationClientOption 類:

??LocationClientOption是百度地圖定位 SDK 中的一個配置類,用于設(shè)置定位相關(guān)的參數(shù)和選項。通過創(chuàng)建 LocationClientOption 對象并對其進行適當(dāng)?shù)呐渲茫梢詫崿F(xiàn)更精確和個性化的定位功能。

常用方法

  • setLocationMode(LocationClientOption.LocationMode mode)設(shè)置定位模式,包括三種模式:

    • Hight_Accuracy:高精度模式,同時使用 GPS 和網(wǎng)絡(luò)定位。
    • Battery_Saving:低功耗模式,只使用網(wǎng)絡(luò)定位。
    • Device_Sensors:僅使用 GPS 定位。
  • setCoorType(String coorType)設(shè)置返回的定位結(jié)果坐標(biāo)系類型,包括:

    • bd09ll:百度經(jīng)緯度坐標(biāo)(默認)。
    • gcj02:國測局加密經(jīng)緯度坐標(biāo)。
    • bd09:百度墨卡托坐標(biāo)。
  • setScanSpan(int scanSpan)設(shè)置定位間隔時間,單位為毫秒。設(shè)定的值大于等于 1000ms 才有效。

  • setIsNeedAddress(boolean isNeedAddress)設(shè)置是否需要獲取地址信息,默認為 false。

  • setOpenGps(boolean isOpenGps)設(shè)置是否打開 GPS,默認為 false。

  • setIsNeedLocationDescribe(boolean isNeedLocationDesc)設(shè)置是否需要位置描述信息,默認為 false。

  • setIsNeedLocationPoiList(boolean isNeedLocationPoiList)設(shè)置是否需要周邊 POI 信息,默認為 false。

  • setIsIgnoreCacheException(boolean isIgnoreCacheException)設(shè)置是否忽略 GPS 定位失敗時的異常,默認為 false。

  • setEnableSimulateGps(boolean enableSimulateGps)設(shè)置是否允許模擬 GPS 位置,默認為 false。

8. RoutePlanSearch類:

????????RoutePlanSearch 類是百度地圖SDK提供的路線規(guī)劃搜索類,用于實現(xiàn)不同交通方式的路線規(guī)劃功能。通過 RoutePlanSearch 類,開發(fā)者可以根據(jù)起點和終點的坐標(biāo),進行駕車、步行、公交等多種交通方式的路線規(guī)劃,并獲取詳細的路線信息。

常用方法:??

  • ? ?setOnGetRoutePlanResultListener():設(shè)置路徑規(guī)劃結(jié)果監(jiān)聽器。
  • ? ?drivingSearch():發(fā)起駕車路線規(guī)劃。
  • ? ?walkingSearch():發(fā)起步行路線規(guī)劃。
  • ? ?transitSearch():發(fā)起公交路線規(guī)劃。

9.LatLng 類:

????????LatLng 類是百度地圖SDK提供的一個表示經(jīng)緯度坐標(biāo)的類。它用于存儲地理位置的經(jīng)度和緯度信息,并提供了一些方法來獲取和設(shè)置經(jīng)緯度值。?

常用方法:??

  • latitude()獲取緯度值。
  • longitude()獲取經(jīng)度值。
  • equals(LatLng other)判斷當(dāng)前 LatLng 對象是否與另一個 LatLng 對象相等。
  • toString()返回 LatLng 對象的字符串表示。?

10.?PoiSearch 類:?

????????PoiSearch 類是百度地圖SDK提供的一個興趣點搜索類,用于實現(xiàn)地圖上的興趣點檢索功能。通過 PoiSearch 類,開發(fā)者可以根據(jù)關(guān)鍵詞、地理位置等條件進行興趣點的搜索,并獲取相關(guān)的搜索結(jié)果。

常用方法:??

  • ?newInstance()創(chuàng)建 PoiSearch 實例。
  • searchInCity(PoiCitySearchOption option)在指定城市內(nèi)搜索興趣點。需要創(chuàng)建一個 PoiCitySearchOption 對象,并設(shè)置要搜索的城市名稱、關(guān)鍵詞等參數(shù),然后調(diào)用該方法進行搜索。
  • searchNearby(PoiNearbySearchOption option)在指定位置附近搜索興趣點。需要創(chuàng)建一個 PoiNearbySearchOption 對象,并設(shè)置中心點坐標(biāo)、搜索半徑、關(guān)鍵詞等參數(shù),然后調(diào)用該方法進行搜索。
  • searchInBound(PoiBoundSearchOption option)在指定矩形區(qū)域內(nèi)搜索興趣點。需要創(chuàng)建一個 PoiBoundSearchOption 對象,并設(shè)置矩形區(qū)域的左下角和右上角坐標(biāo)、關(guān)鍵詞等參數(shù),然后調(diào)用該方法進行搜索。
  • setOnGetPoiSearchResultListener(OnGetPoiSearchResultListener listener)設(shè)置興趣點搜索結(jié)果的監(jiān)聽器。需要實現(xiàn) OnGetPoiSearchResultListener 接口,并將其注冊給 PoiSearch 對象,以接收搜索結(jié)果的回調(diào)。
  • searchPoiDetail(PoiDetailSearchOption option)根據(jù)興趣點的 UID 獲取詳細信息。需要創(chuàng)建一個 PoiDetailSearchOption 對象,并設(shè)置興趣點的 UID,然后調(diào)用該方法進行詳情查詢。
  • searchPoiIndoor(PoiIndoorOption option)在室內(nèi)地圖中搜索興趣點。需要創(chuàng)建一個 PoiIndoorOption 對象,并設(shè)置室內(nèi)ID、關(guān)鍵詞等參數(shù),然后調(diào)用該方法進行搜索。
  • searchPoiPage(int pageNum)加載下一頁的搜索結(jié)果。需要指定要加載的頁碼,通過設(shè)置之前的搜索選項對象的 pageNum 屬性來實現(xiàn)分頁加載。
  • destroy()銷毀 PoiSearch 對象,釋放相關(guān)資源。

11.PoiResult 類:

????????PoiResult 類是百度地圖SDK中的一個類,用于表示興趣點搜索的結(jié)果集。它包含了符合搜索條件的一組興趣點數(shù)據(jù),并提供了相關(guān)的方法來獲取和操作這些數(shù)據(jù)。

  • getAllPoi()獲取搜索到的所有結(jié)果。
  • error:表示搜索結(jié)果的錯誤碼。?

12.PoiInfo 類:

????????PoiInfo 類是百度地圖SDK中的一個類,用于表示興趣點的信息。它包含了興趣點的名稱、地址、經(jīng)緯度坐標(biāo)等詳細信息,并提供了相關(guān)的方法來獲取和操作這些數(shù)據(jù)。?

  • name:POI 名稱。
  • address:POI 地址。

13.PoiOverlay 類:

????????PoiOverlay 類是百度地圖SDK中的一個類,用于在地圖上繪制興趣點標(biāo)注覆蓋物。它可以將 PoiResult 中的興趣點數(shù)據(jù)在地圖上展示,并提供了一些方法用于自定義標(biāo)注樣式和點擊事件處理。

  • setData():設(shè)置搜索到的 POI 數(shù)據(jù)。
  • addToMap():將興趣點標(biāo)注添加到地圖上。
  • zoomToSpan():縮放地圖以適應(yīng)所有興趣點。

14.MarkerOptions類:

????????MarkerOptions類是百度地圖API中的一個選項類,用于設(shè)置標(biāo)記點(Marker)的參數(shù)和選項。標(biāo)記點是地圖上用于標(biāo)識某個位置的圖標(biāo),常用于顯示興趣點、位置標(biāo)注等。?

  • position(LatLng position)設(shè)置標(biāo)記點的經(jīng)緯度坐標(biāo)。
  • icon(BitmapDescriptor icon)設(shè)置標(biāo)記點的圖標(biāo)資源,可以是本地圖片、遠程圖片或內(nèi)置的圖標(biāo)樣式。使用BitmapDescriptorFactory類創(chuàng)建BitmapDescriptor對象,并將其作為參數(shù)傳入。
  • zIndex(int zIndex)設(shè)置標(biāo)記點的堆疊順序,值越大表示越靠前。
  • perspective(boolean perspective)設(shè)置標(biāo)記點的透視效果,即傾斜角度。true表示啟用透視效果,false表示不啟用。
  • draggable(boolean draggable)設(shè)置標(biāo)記點是否可拖拽。true表示可拖拽,false表示不可拖拽。
  • animateType(MarkerAnimateType animateType)設(shè)置標(biāo)記點的動畫效果類型??梢允褂?code>MarkerAnimateType枚舉類中的常量值,如MarkerAnimateType.noneMarkerAnimateType.grow、MarkerAnimateType.jumpMarkerAnimateType.drop。
  • getIcon()獲取標(biāo)記點的圖標(biāo)資源。
  • getPosition()獲取標(biāo)記點的經(jīng)緯度坐標(biāo)。
  • getZIndex()獲取標(biāo)記點的堆疊順序。
  • isPerspective()判斷標(biāo)記點是否啟用透視效果。
  • isDraggable()判斷標(biāo)記點是否可拖拽。
  • getAnimateType()獲取標(biāo)記點的動畫效果類型。

15.MapStatusUpdate類:

????????MapStatusUpdate類是百度地圖API中用于設(shè)置地圖狀態(tài)更新的類。通過該類,可以對地圖進行平移、縮放、旋轉(zhuǎn)等操作。?

  • newLatLng(LatLng latLng):創(chuàng)建一個以指定經(jīng)緯度為中心點的地圖狀態(tài)更新對象。
  • newLatLngBounds(LatLngBounds bounds)創(chuàng)建一個以指定經(jīng)緯度邊界為顯示范圍的地圖狀態(tài)更新對象。
  • newMapStatus(MapStatus mapStatus)創(chuàng)建一個以指定地圖狀態(tài)為基礎(chǔ)的地圖狀態(tài)更新對象。
  • newLatLngZoom(LatLng latLng, float zoom)創(chuàng)建一個以指定經(jīng)緯度為中心點、指定縮放級別的地圖狀態(tài)更新對象。
  • zoomTo(float zoom)創(chuàng)建一個將地圖縮放到指定級別的地圖狀態(tài)更新對象。
  • zoomBy(float amount):創(chuàng)建一個按照指定比例增加(正值)或減小(負值)地圖縮放級別的地圖狀態(tài)更新對象。
  • rotate(float rotate)創(chuàng)建一個以指定角度順時針旋轉(zhuǎn)地圖的地圖狀態(tài)更新對象。
  • overlook(float overlook)創(chuàng)建一個以指定角度俯視地圖的地圖狀態(tài)更新對象。
  • scrollBy(int offsetX, int offsetY)創(chuàng)建一個沿屏幕像素坐標(biāo)偏移地圖中心點的地圖狀態(tài)更新對象。

二、使用例子

例1:獲取當(dāng)前位置:

?MainActivity :

package com.example.location;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.search.core.SearchResult;
import com.baidu.mapapi.search.geocode.GeoCodeOption;
import com.baidu.mapapi.search.geocode.GeoCodeResult;
import com.baidu.mapapi.search.geocode.GeoCoder;
import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;

public class MainActivity extends AppCompatActivity {
    LocationClient mLocationClient;

    MapView mMapView;
    BaiduMap mBaiduMap;
    private Button select;
    private EditText editText;
    boolean isFirstLocate = true;
    boolean isFirstText = true;
    TextView tv_Lat; // 經(jīng)度
    TextView tv_Lon; // 緯度
    TextView tv_Add; // 地址
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 初始化地圖應(yīng)用
        SDKInitializer.setAgreePrivacy(this.getApplicationContext(),true);
        LocationClient.setAgreePrivacy(true);
        SDKInitializer.initialize(this.getApplicationContext());
        setContentView(R.layout.activity_main);
        mMapView = findViewById(R.id.bmapView);
        mBaiduMap = mMapView.getMap();
        tv_Lat = findViewById(R.id.tv_Lat);
        tv_Lon = findViewById(R.id.tv_Lon);
        tv_Add = findViewById(R.id.tv_Add);
        select = findViewById(R.id.btn_search);
        editText = findViewById(R.id.address);
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){
            ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},1);
        }else {
            requestLocation();
        }

        select.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String address = editText.getText().toString();
                if (address!=null){

                    searchGeoCode(address);
                }else {
                    Toast.makeText(MainActivity.this, "請輸入地點", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode){
            case 1:
                if (grantResults[0]!=PackageManager.PERMISSION_GRANTED){
                    Toast.makeText(this, "沒有定位權(quán)限!", Toast.LENGTH_SHORT).show();
                    finish();
                }else{
                        requestLocation();
                }
        }
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    }

    private void requestLocation() {
         // 定位前初始化
        initLocation();
        // 發(fā)起定位
        mLocationClient.start();
    }

    private void initLocation() {
//        LocationClient.setAgreePrivacy(true);
        try {
            mLocationClient = new LocationClient(getApplicationContext());
            mLocationClient.registerLocationListener(new MyLocationListener());

            // 定位客戶端操作
            LocationClientOption option = new LocationClientOption();
            // 設(shè)置掃描時間
            option.setScanSpan(1000);
            // 設(shè)置定位參數(shù)
            option.setCoorType("bd09ll"); // 設(shè)置坐標(biāo)類型為百度經(jīng)緯度
            option.setIsNeedAddress(true); // 設(shè)置需要獲取地址信息
            // 設(shè)置定位模式
            option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
//            option.setLocationMode(LocationClientOption.LocationMode.Battery_Saving);
//            option.setLocationMode(LocationClientOption.LocationMode.Device_Sensors);
            option.setIsNeedAddress(true); // 設(shè)置需要地址信息
            // 保存定位參數(shù)
            mLocationClient.setLocOption(option);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    // 內(nèi)部類,百度位置監(jiān)聽器
    private class MyLocationListener implements BDLocationListener{

        @Override
        public void onReceiveLocation(BDLocation bdLocation) {
            if (isFirstText){
                tv_Lat.setText(bdLocation.getLatitude()+"");
                tv_Lon.setText(bdLocation.getLongitude()+"");
                tv_Add.setText(bdLocation.getAddrStr());
                isFirstText = false;
            }
            // GPS 定位或網(wǎng)格定位時
            if (bdLocation.getLocType()==BDLocation.TypeGpsLocation||bdLocation.getLocType()==BDLocation.TypeNetWorkLocation){
                navigateTo(bdLocation);
            }
        }

        private void navigateTo(BDLocation bdLocation) {
            if (isFirstLocate){
                LatLng ll = new LatLng(bdLocation.getLatitude(),bdLocation.getLongitude());
                MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);
                // 以動畫更新方式,實現(xiàn)對手勢引起的地圖狀態(tài)的更新
                mBaiduMap.animateMapStatus(update);
                // 創(chuàng)建自定義標(biāo)記
                BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.arrow_icon);
                MarkerOptions markerOptions = new MarkerOptions().position(ll).icon(bitmap).anchor(0.5f, 0.5f);
                mBaiduMap.addOverlay(markerOptions);

                isFirstLocate = false;
            }
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        mMapView.onResume();
    }
    // 實現(xiàn)檢索地點功能
    private void searchGeoCode(String address) {
        mBaiduMap.clear(); // 清除標(biāo)記點

        GeoCoder geoCoder = GeoCoder.newInstance();
        GeoCodeOption geoCodeOption = new GeoCodeOption();
        geoCodeOption.address(address);
        geoCodeOption.city(address);
        geoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
            @Override
            public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) {
                if (geoCodeResult == null || geoCodeResult.error != SearchResult.ERRORNO.NO_ERROR) {
                    Toast.makeText(MainActivity.this, "檢索錯誤", Toast.LENGTH_SHORT).show();
                } else {
                    LatLng latLng = geoCodeResult.getLocation();
                    MarkerOptions markerOptions = new MarkerOptions()
                            .position(latLng)
                            .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow_icon));
                    mBaiduMap.addOverlay(markerOptions);
                    MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newLatLngZoom(latLng, 15);
                    tv_Lat.setText(" "+latLng.latitude); // 經(jīng)度
                    tv_Lon.setText(" "+latLng.longitude); // 緯度

                    tv_Add.setText(geoCodeResult.getAddress()); // 地址
                    mBaiduMap.setMapStatus(mMapStatusUpdate);

                }
            }
            @Override
            public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) {
                if (reverseGeoCodeResult == null || reverseGeoCodeResult.error != SearchResult.ERRORNO.NO_ERROR) {
                    Toast.makeText(MainActivity.this, "獲取地址信息失敗", Toast.LENGTH_SHORT).show();
                } else {
                    String address = reverseGeoCodeResult.getAddress();
                    Toast.makeText(MainActivity.this, address, Toast.LENGTH_SHORT).show();
                }
            }
        });
        geoCoder.geocode(geoCodeOption);
    }

    @Override
    protected void onPause() {
        super.onPause();
        mMapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mMapView.onDestroy();
    }
}

?activity_main:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#e0000000"
        >
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginLeft="12dp"
            android:layout_marginTop="20dp"
            android:orientation="horizontal"
            >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="緯度:"
                android:textColor="#ffffff"
                android:textSize="15dp"
                />
            <TextView
                android:id="@+id/tv_Lat"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=""
                android:textColor="#ffffff"
                android:textSize="15sp"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginLeft="12dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal"
            >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="經(jīng)度:"
                android:textColor="#ffffff"
                android:textSize="15dp"
                />
            <TextView
                android:id="@+id/tv_Lon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=""
                android:textColor="#ffffff"
                android:textSize="15sp"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginLeft="12dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal"
            >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="地址:"
                android:textColor="#ffffff"
                android:textSize="15dp"
                />
            <TextView
                android:id="@+id/tv_Add"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=""
                android:textColor="#ffffff"
                android:textSize="15sp"
                />
        </LinearLayout>
    </LinearLayout>
    <com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="8"
        android:clickable="true"/>
    <LinearLayout
        android:id="@+id/layout_search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="8dp"
        android:background="#FFFFFF"
        android:layout_alignParentBottom="true">

        <EditText
            android:id="@+id/address"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:hint="輸入地址"
            android:layout_weight="1" />

        <Button
            android:id="@+id/btn_search"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="搜索" />

    </LinearLayout>


</LinearLayout>

?AndroidManifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.location">
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.UI"

        >
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="你的Key" />
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote">
        </service>
    </application>

</manifest>

?運行結(jié)果:

安卓:百度地圖開發(fā)(超詳細),第三方庫,android

未完待續(xù)。。。文章來源地址http://www.zghlxwxcb.cn/news/detail-617277.html

到了這里,關(guān)于安卓:百度地圖開發(fā)(超詳細)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 安卓:百度地圖開發(fā)(超詳細)

    安卓:百度地圖開發(fā)(超詳細)

    目錄 一、百度地圖介紹 1. MapView類: 2. BaiduMap類: 3. GeoCoder類: 4.GeoCodeOption類: 5.GeoCodeResult類: 6. LocationClient類: 7.LocationClientOption 類: 8. RoutePlanSearch類: 9.LatLng 類: 10.?PoiSearch 類:? 11.PoiResult 類: 12.PoiInfo 類: 13.PoiOverlay 類: 14.MarkerOptions類: 15.MapStatusUpdate類: 二、使用

    2024年02月15日
    瀏覽(16)
  • uniapp小程序調(diào)用第三方地圖導(dǎo)航

    uniapp小程序調(diào)用第三方地圖導(dǎo)航

    效果 ? ?

    2024年02月15日
    瀏覽(23)
  • uniapp 小程序調(diào)取第三方地圖導(dǎo)航

    事件: 在manifest.json的源碼視圖里面配置,允許獲取經(jīng)緯度 獲取經(jīng)緯度: ?方法: 若未授權(quán)獲取位置,點擊彈出彈窗獲取權(quán)限

    2024年02月15日
    瀏覽(13)
  • 如何看待第三方百度云 Pandownload 作者被捕?

    如何看待第三方百度云 Pandownload 作者被捕?

    點擊關(guān)注上方“五分鐘學(xué)算法”, 設(shè)為“置頂或星標(biāo)”,第一時間送達干貨。 轉(zhuǎn)自純潔的微笑 1 從百度網(wǎng)盤說起 2013年8月12日,金山快盤宣傳永久免費100G云空間,以此為導(dǎo)火線,網(wǎng)盤大戰(zhàn)正式拉開了序幕。最后百度、金山、騰訊、網(wǎng)易、360、115等各大互聯(lián)網(wǎng)公司殺得你死我

    2024年02月02日
    瀏覽(21)
  • 本倉庫主要用來收集一些 Android 開發(fā)中常用的第三方 UI 庫及其簡單 Demo

    本倉庫主要用來收集一些 Android 開發(fā)中常用的第三方 UI 庫及其簡單 Demo

    | 第三方庫 | 介紹 | Demo | 使用說明 | | — | — | — | — | | CircleImageView | 顯示圓形圖片 | CircleImageViewDemo | Android UI Libs 之 CircleImageView.md | | android-gif-drawable | 顯示 gif 圖片 | android-gif-drawabledemo | Android UI Libs 之 android-gif-drawable.md | | AndroidSwipeLayout | 滑動布局,可以實現(xiàn)側(cè)滑菜單與側(cè)

    2024年04月15日
    瀏覽(25)
  • 7 款最佳第三方安卓 ROM

    雖然現(xiàn)在越來越多的安卓智能手機用戶選擇使用手機自帶系統(tǒng)(比如 MIUI 、 EMUI 等),但第三方安卓? ROM 仍不可替代,尤其是對于已超出官方系統(tǒng)更新期限的設(shè)備。第三方 ROM 可以幫助用戶延長設(shè)備的使用壽命,允許用戶在性能過剩的舊款設(shè)備上體驗最新的安卓系統(tǒng)體驗,并

    2024年02月06日
    瀏覽(22)
  • 安卓玩機搞機-----沒有第三方包 刷寫第三方各種GSI系統(tǒng) 體驗非官方系統(tǒng)

    安卓玩機搞機-----沒有第三方包 刷寫第三方各種GSI系統(tǒng) 體驗非官方系統(tǒng)

    很多安卓友友熱衷與刷這些各種第三方包體驗。但有個別機型第三方資源較少。而且有的機型要體驗非官方系統(tǒng)卻沒有對應(yīng)系統(tǒng)的第三方包。那可以體驗下刷gsi系統(tǒng)來暢玩。今天的帖子就聊聊GSI系統(tǒng)的各種刷寫操作和對應(yīng)的故障解析、 ??????????????????什么是GSI 系

    2024年02月05日
    瀏覽(126)
  • 第三方開發(fā)工具—PyCharm(安裝、使用、漢化)超詳細、圖超多、注腳特多(Windows操作系統(tǒng))

    第三方開發(fā)工具—PyCharm(安裝、使用、漢化)超詳細、圖超多、注腳特多(Windows操作系統(tǒng))

    目錄 前言 一、PyCharm安裝 安裝地址 安裝步驟 二、第一次啟動 三、使用(開始編程) 1.第一個文件夾 2.第一個程序 3.運行第一個程序 四、漢化插件 五、總結(jié) 做任何事情時,舒適的環(huán)境是非常重要的。一個好的軟件開發(fā)環(huán)境能給人帶來不一樣的體驗。 先讓我們來看看PyCharm的

    2024年02月03日
    瀏覽(107)
  • 安卓玩機搞機----移植第三方rom修復(fù) 第三方GSI系統(tǒng)修復(fù)bug綜合解析【一】

    安卓玩機搞機----移植第三方rom修復(fù) 第三方GSI系統(tǒng)修復(fù)bug綜合解析【一】

    很多朋友熱衷與刷寫第三方非當(dāng)前機型官方系統(tǒng)的rom。和刷寫第三方gsi等等。例如 米系列機型刷寫Flyme 一加機型刷寫miui oppo刷寫gsi等等。 很多友友也會嘗試自己移植第三方rom。但此類操作最大的問題在于修復(fù)可以開機后的bug,今天的教程綜合說明下這類修復(fù)思路。資源步驟

    2024年02月07日
    瀏覽(310)
  • 微信小程序獲取當(dāng)前位置與跳轉(zhuǎn)第三方地圖

    1. 先在app.json添加配置 2. 獲取定位權(quán)限,打開地址選點 3. 如果要打開跳轉(zhuǎn)第三方地圖的內(nèi)置地圖

    2024年02月15日
    瀏覽(85)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包