日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高德地图的基础使用(二)定位蓝点

發布時間:2024/3/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高德地图的基础使用(二)定位蓝点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前期預備:運行權限(Android 6.0+)

/** 地圖所需權限 :* roup:android.permission-group.LOCATION(定位)* android.permission.ACCESS_FINE_LOCATION(通過gps獲取定位權限)* android.permission.ACCESS_COARSE_LOCATION(通過wifi和移動基站獲取定位權限)**/if (ContextCompat.checkSelfPermission(this, // 未開啟定位權限Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},LOCATION_REQUEST_CODE);}else {startLocation();Toast.makeText(this, "已開啟定位權限", Toast.LENGTH_SHORT).show();}

?

@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);switch (requestCode) {//剛才的識別碼case LOCATION_REQUEST_CODE://用戶同意權限,執行我們的操作if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {//開始定位startLocation();} else {//用戶拒絕之后,當然我們也可以彈出一個窗口,直接跳轉到系統設置頁面Toast.makeText(this, "未開啟定位權限,請手動到設置去開啟權限", Toast.LENGTH_LONG).show();}break;default:break;} }

定位藍點:

? ? 1.顯示地圖

@Overridepublic void initView() {// 保存地圖繪制的當前狀態mapDemoMapView.onCreate(new Bundle()); // 初始化地圖控制器對象if (aMap == null){aMap = mapDemoMapView.getMap();}

? ? ?}

?

@Override protected void onDestroy() {super.onDestroy();if (mapDemoMapView != null){mapDemoMapView.onDestroy();}}

? ? 2. 定位

/**聲明定位回調監聽器 */public AMapLocationListener mLocationListener = new AMapLocationListener() {@Overridepublic void onLocationChanged(AMapLocation amapLocation) {if (amapLocation !=null ) {if (amapLocation.getErrorCode() == 0) {//定位成功回調信息,設置相關消息//獲取緯度double latitude = amapLocation.getLatitude();//獲取經度double longitude = amapLocation.getLongitude();//地址,如果option中設置isNeedAddress為false,則沒有此結果,網絡定位結果中會有地址信息,GPS定位不返回地址信息。LogUtil.i(TAG,"地址-----------------"+amapLocation.getAddress()); // 設置藍點setBlueDot(latitude,longitude);} else {//顯示錯誤信息ErrCode是錯誤碼,errInfo是錯誤信息,詳見錯誤碼表。LogUtil.e("AmapError", "location Error, ErrCode:"+ amapLocation.getErrorCode() + ", errInfo:"+ amapLocation.getErrorInfo());}}}};public void startLocation(){mLocationClient = new AMapLocationClient(getApplicationContext());mLocationOption = new AMapLocationClientOption();//設置定位模式為AMapLocationMode.Hight_Accuracy,高精度模式。mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//設置是否返回地址信息(默認返回地址信息)mLocationOption.setNeedAddress(true);//獲取一次定位結果://該方法默認為false。mLocationOption.setOnceLocation(true);//設置是否允許模擬位置,默認為false,不允許模擬位置mLocationOption.setMockEnable(false);//給定位客戶端對象設置定位參數mLocationClient.setLocationOption(mLocationOption); // 添加監聽器mLocationClient.setLocationListener(locationListener);//啟動定位mLocationClient.startLocation();} ? ? 3. 藍點 private void setBlueDot(double latitude, double longitude) {//初始化定位藍點樣式類myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//連續定位、且將視角移動到地圖中心點,定位點依照設備方向旋轉,并且會跟隨設備移動。(1秒1次定位)如果不設置myLocationType,默認也會執行此種模式。myLocationStyle = new MyLocationStyle();//設置連續定位模式下的定位間隔,只在連續定位模式下生效,單次定位模式下不會生效。單位為毫秒。myLocationStyle.interval(2000);//連續定位、且將視角移動到地圖中心點,定位點依照設備方向旋轉,并且會跟隨設備移動。(1秒1次定位)默認執行此種模式。myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//設置是否顯示定位小藍點,用于滿足只想使用定位,不想使用定位小藍點的場景,設置false以后圖面上不再有定位藍點的概念,但是會持續回調位置信息。myLocationStyle.showMyLocation(true);//設置定位藍點的icon圖標方法,需要用到BitmapDescriptor類對象作為參數。myLocationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.drawable.ic_map_dot_blue));//設置定位藍點的StyleaMap.setMyLocationStyle(myLocationStyle);// 設置為true表示啟動顯示定位藍點,false表示隱藏定位藍點并不進行定位,默認是false。aMap.setMyLocationEnabled(true);// 地圖中心移動到當前位置aMap.moveCamera(CameraUpdateFactory.changeLatLng(new LatLng(latitude, longitude))); }

顯示結果:

? ? ? ?

參考文檔:https://lbs.amap.com/api/android-sdk/guide/create-map/mylocation

總結

以上是生活随笔為你收集整理的高德地图的基础使用(二)定位蓝点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。