亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

百度地圖的使用-定位-獲取位置信息

darkerXi / 2936人閱讀

摘要:目標(biāo)實(shí)現(xiàn)定位到當(dāng)前所在位置實(shí)現(xiàn)當(dāng)前定位獲取當(dāng)前地址,省份,街道等獲取經(jīng)緯度修改縮放比例去除百度地圖修改定位圖片如下效果圖上代碼在使用各組件之前初始化信息,傳入注意該方法要再方法之前實(shí)現(xiàn)獲取地圖控件引用移除的聲明類開啟定位圖層注冊(cè)監(jiān)聽函數(shù)設(shè)置

目標(biāo):實(shí)現(xiàn)定位到當(dāng)前所在位置

實(shí)現(xiàn)當(dāng)前定位

獲取當(dāng)前地址,省份,街道等

獲取經(jīng)緯度

修改縮放比例

去除百度地圖logo

修改定位圖片如下:

效果圖:

上代碼

public class MainActivity extends AppCompatActivity {

    private MapView mMapView = null;
    BaiduMap mBaiduMap;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //在使用SDK各組件之前初始化context信息,傳入ApplicationContext
        //注意該方法要再setContentView方法之前實(shí)現(xiàn)
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_main);
        //獲取地圖控件引用
        mMapView = (MapView) findViewById(R.id.bmapView);
        mBaiduMap = mMapView.getMap();
        //移除baidu的logo
        mMapView.removeViewAt(1);
        mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(new MapStatus.Builder().zoom(20.0f).build()));
        mLocationClient = new LocationClient(getApplicationContext());
        //聲明LocationClient類
        mLocationClient.registerLocationListener(myListener);
        // 開啟定位圖層
        mBaiduMap.setMyLocationEnabled(true);
        //注冊(cè)監(jiān)聽函數(shù)
        // 設(shè)置定位圖層的配置(定位模式,是否允許方向信息,用戶自定義定位圖標(biāo))
        BitmapDescriptor mCurrentMarker = BitmapDescriptorFactory
                .fromResource(R.drawable.aa);
        MyLocationConfiguration config = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.FOLLOWING, true, mCurrentMarker);
        mBaiduMap.setMyLocationConfiguration(config);
//        getLocation();
        getlatAndLng();
//        mLocationClient.start();


    }

    private void showMyLocate(MyLocationData location) {


        MyLocationData locData = new MyLocationData.Builder()
                .accuracy(location.accuracy)
                // 此處設(shè)置開發(fā)者獲取到的方向信息,順時(shí)針0-360
                .direction(location.direction).latitude(location.latitude)
                .longitude(location.longitude).build();
        // 設(shè)置定位數(shù)據(jù)
        mBaiduMap.setMyLocationData(locData);



//        mBaiduMap.setMyLocationEnabled(false);

    }


    public LocationClient mLocationClient = null;
    private MyLocationListener myListener = new MyLocationListener();

    private void getLocation() {

        LocationClientOption option = new LocationClientOption();

        option.setIsNeedAddress(true);
        //可選,是否需要地址信息,默認(rèn)為不需要,即參數(shù)為false
        //如果開發(fā)者需要獲得當(dāng)前點(diǎn)的地址信息,此處必須為true

        mLocationClient.setLocOption(option);
        //mLocationClient為第二步初始化過的LocationClient對(duì)象
        //需將配置好的LocationClientOption對(duì)象,通過setLocOption方法傳遞給LocationClient對(duì)象使用
        //更多LocationClientOption的配置,請(qǐng)參照類參考中LocationClientOption類的詳細(xì)說明

        mLocationClient.start();

    }

    private void getlatAndLng() {


        LocationClientOption option = new LocationClientOption();

        option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
        //可選,設(shè)置定位模式,默認(rèn)高精度
        //LocationMode.Hight_Accuracy:高精度;
        //LocationMode. Battery_Saving:低功耗;
        //LocationMode. Device_Sensors:僅使用設(shè)備;

        option.setCoorType("bd09ll");
        //可選,設(shè)置返回經(jīng)緯度坐標(biāo)類型,默認(rèn)gcj02
        //gcj02:國(guó)測(cè)局坐標(biāo);
        //bd09ll:百度經(jīng)緯度坐標(biāo);
        //bd09:百度墨卡托坐標(biāo);
        //海外地區(qū)定位,無需設(shè)置坐標(biāo)類型,統(tǒng)一返回wgs84類型坐標(biāo)

        option.setScanSpan(1000);
        //可選,設(shè)置發(fā)起定位請(qǐng)求的間隔,int類型,單位ms
        //如果設(shè)置為0,則代表單次定位,即僅定位一次,默認(rèn)為0
        //如果設(shè)置非0,需設(shè)置1000ms以上才有效

        option.setOpenGps(true);
        //可選,設(shè)置是否使用gps,默認(rèn)false
        //使用高精度和僅用設(shè)備兩種定位模式的,參數(shù)必須設(shè)置為true

        option.setLocationNotify(true);
        //可選,設(shè)置是否當(dāng)GPS有效時(shí)按照1S/1次頻率輸出GPS結(jié)果,默認(rèn)false

        option.setIgnoreKillProcess(false);
        //可選,定位SDK內(nèi)部是一個(gè)service,并放到了獨(dú)立進(jìn)程。
        //設(shè)置是否在stop的時(shí)候殺死這個(gè)進(jìn)程,默認(rèn)(建議)不殺死,即setIgnoreKillProcess(true)

        option.SetIgnoreCacheException(false);
        //可選,設(shè)置是否收集Crash信息,默認(rèn)收集,即參數(shù)為false

        option.setWifiCacheTimeOut(5 * 60 * 1000);
        //可選,7.2版本新增能力
        //如果設(shè)置了該接口,首次啟動(dòng)定位時(shí),會(huì)先判斷當(dāng)前WiFi是否超出有效期,若超出有效期,會(huì)先重新掃描WiFi,然后定位

        option.setEnableSimulateGps(false);
        //可選,設(shè)置是否需要過濾GPS仿真結(jié)果,默認(rèn)需要,即參數(shù)為false

        mLocationClient.setLocOption(option);
        //mLocationClient為第二步初始化過的LocationClient對(duì)象
        //需將配置好的LocationClientOption對(duì)象,通過setLocOption方法傳遞給LocationClient對(duì)象使用
        //更多LocationClientOption的配置,請(qǐng)參照類參考中LocationClientOption類的詳細(xì)說明
        mLocationClient.start();
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        //在activity執(zhí)行onDestroy時(shí)執(zhí)行mMapView.onDestroy(),實(shí)現(xiàn)地圖生命周期管理
        // 當(dāng)不需要定位圖層時(shí)關(guān)閉定位圖層
        mBaiduMap.setMyLocationEnabled(false);
        mMapView.onDestroy();
    }

    @Override
    protected void onResume() {
        super.onResume();
        //在activity執(zhí)行onResume時(shí)執(zhí)行mMapView. onResume (),實(shí)現(xiàn)地圖生命周期管理
        mMapView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        //在activity執(zhí)行onPause時(shí)執(zhí)行mMapView. onPause (),實(shí)現(xiàn)地圖生命周期管理
        mMapView.onPause();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.menu_map_normal:
                mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
                break;
            case R.id.menu_map_satellite:
                mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
                break;
            case R.id.menu_map_none:
                mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NONE);
                break;

        }
        return true;
    }


    class MyLocationListener extends BDAbstractLocationListener {


        @Override
        public void onReceiveLocation(BDLocation bdLocation) {

            MyLocationData locData = new MyLocationData.Builder()
                    .accuracy(bdLocation.getRadius())
                    // 此處設(shè)置開發(fā)者獲取到的方向信息,順時(shí)針0-360
                    .direction(bdLocation.getDirection()).latitude(bdLocation.getLatitude())
                    .longitude(bdLocation.getLongitude()).build();
            mBaiduMap.setMyLocationData(locData);

            String addr = bdLocation.getAddrStr();    //獲取詳細(xì)地址信息
            String country = bdLocation.getCountry();    //獲取國(guó)家
            String province = bdLocation.getProvince();    //獲取省份
            String city = bdLocation.getCity();    //獲取城市
            String district = bdLocation.getDistrict();    //獲取區(qū)縣
            String street = bdLocation.getStreet();    //獲取街道信息
            showMyLocate(locData);
        }
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/71369.html

相關(guān)文章

  • 使用百度地圖API獲取手動(dòng)定位位置信息實(shí)例講解

    摘要:需求后臺(tái)新增編輯活動(dòng)項(xiàng)目時(shí),用戶可以自己通過地圖插件選擇位置手動(dòng)定位,選擇后,系統(tǒng)能夠獲得當(dāng)前位置的地址信息以及坐標(biāo)信息,以方便后續(xù)程序的處理。技術(shù)上主要以百度地圖為核心,彈出層和百度中結(jié)果配合,父子頁(yè)面?zhèn)髦狄龑?dǎo)達(dá)成目標(biāo)。 需求 后臺(tái)新增/編輯活動(dòng)項(xiàng)目時(shí),用戶可以自己通過地圖插件選擇位置(手動(dòng)定位),選擇后,系統(tǒng)能夠獲得當(dāng)前位置的地址信息以及坐標(biāo)信息,以方便后續(xù)程序的處理。 代碼 不啰...

    suosuopuo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<