Arcgis runtime for Android 100.5 (七) GPS定位

(六) 自定義指南針

Arcgis 提供了定位功能,LocationDisplay類(lèi)

  • 注意定位權(quán)限需要?jiǎng)討B(tài)獲取,這里不再演示

初始化定位

locationDisplay = mapView.locationDisplay//獲取定位類(lèi)
locationDisplay?.isShowLocation = true//展示定位圓點(diǎn)
locationDisplay?.isShowPingAnimation = true//展示ping 動(dòng)畫(huà)符號(hào)
locationDisplay?.isShowAccuracy = true//展示符號(hào)以指示位置水平精度的近似區(qū)域
locationDisplay?.autoPanMode = LocationDisplay.AutoPanMode.OFF  //設(shè)置模式
//點(diǎn)擊定位按鈕,開(kāi)始定位  如果打開(kāi)默認(rèn)就開(kāi)始定位,最好寫(xiě)在地圖加載完成監(jiān)聽(tīng)里
fab_my_location.setOnClickListener {
    locationDisplay?.startAsync()//開(kāi)始定位
}
原始效果

定位模式 :AutoPanMode

OFF
用戶(hù)位置符號(hào)會(huì)隨位置變化而移動(dòng),但地圖不會(huì)動(dòng)
RECENTER
當(dāng)用戶(hù)位置處于當(dāng)前地圖范圍內(nèi)時(shí)候,用戶(hù)位置符號(hào)會(huì)隨位置變化而移動(dòng),但地圖不會(huì)動(dòng);當(dāng)用戶(hù)位置處于地圖邊緣時(shí)候,地圖會(huì)自動(dòng)平移是用戶(hù)的當(dāng)前位置重新居于顯示地圖中心
NAVIGATION
車(chē)載導(dǎo)航 地圖會(huì)隨著用戶(hù)移動(dòng)而平移,隨用戶(hù)轉(zhuǎn)彎而旋轉(zhuǎn)
COMPASS_NAVIGATION
步行導(dǎo)航 地圖會(huì)隨著用戶(hù)移動(dòng)而平移,隨用戶(hù)轉(zhuǎn)彎而旋轉(zhuǎn)

定位監(jiān)聽(tīng)

val mapPoint = locationDisplay?.mapLocation//得到地圖坐標(biāo)系的坐標(biāo)
Log.e("test",mapPoint.toString())
val wgs84Point = locationDisplay?.location?.position  //得到Wgs84經(jīng)緯度坐標(biāo)
Log.e("test",wgs84Point.toString())

自定義定位符合樣式

val bitmap = BitmapFactory.decodeResource(resources, R.mipmap.ic_my_location)
val bitmapDrawable = BitmapDrawable(resources, bitmap)
val defaultSymbol = PictureMarkerSymbol(bitmapDrawable);
defaultSymbol .loadAsync();
defaultSymbol .addDoneLoadingListener {
            locationDisplay?.defaultSymbol = defaultSymbol //設(shè)置默認(rèn)符號(hào)
}

其他符合一樣的方法

locationDisplay?.acquiringSymbol = acquiringSymbol ;//設(shè)置當(dāng)前位置的填充符號(hào)
locationDisplay?.accuracySymbol = accuracySymbol ;//設(shè)置最后一個(gè)已知位置的標(biāo)記符號(hào)
locationDisplay?.pingAnimationSymbol = pingAnimationSymbol ;//設(shè)置當(dāng)前位置更新時(shí)候的動(dòng)畫(huà)
locationDisplay?.courseSymbol = courseSymbol ;//設(shè)置當(dāng)前位置的路線符號(hào)
locationDisplay?.headingSymbol = headingSymbol ;//設(shè)置當(dāng)前位置設(shè)備面對(duì)方向的符號(hào)
locationDisplay?.defaultSymbol = defaultSymbol ;//設(shè)置默認(rèn)符號(hào)

注意

使用arcgis內(nèi)置的某些地圖時(shí),定位顯示會(huì)有偏差,經(jīng)過(guò)對(duì)比坐標(biāo),發(fā)現(xiàn)是圖層的偏差,定位是準(zhǔn)確的,因此我才寫(xiě)了加載天地圖的方法,定位顯示是準(zhǔn)確的 加載天地圖傳送門(mén)

(八) 業(yè)務(wù)圖層管理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容