本文接本人上一篇文章:Android APP接入高德SDK問題與記錄部默,如果還不熟悉高德地圖接入绒怨,可以先閱讀這篇文章。
1 切換圖層及顯示路況
通過設(shè)置mapType,可以切換地圖的類型:
aMap.mapType = MAP_TYPE_NORMAL //普通地圖励稳,默認
aMap.mapType = MAP_TYPE_SATELLITE //衛(wèi)星地圖
aMap.mapType = MAP_TYPE_NIGHT //夜景地圖
設(shè)置是否顯示路況信息:
aMap.isTrafficEnabled = true
2 離線地圖
高德地圖SDK提供了下載離線地圖的界面佃乘,如需使用,需要先在AndroidManifest.xml當中加入Activity:
<activity android:name="com.amap.api.maps.offlinemap.OfflineMapActivity"
android:screenOrientation="portrait" />
然后在項目代碼中跳轉(zhuǎn)至該Activity:
startActivity(Intent(this.applicationContext, OfflineMapActivity::class.java))
如果有自定義的需求驹尼,還可以自定義離線地圖的功能趣避。項目暫時沒有這部分需求,如果需要了新翎,會再完善這部分內(nèi)容程帕。
3 標繪
3.1 繪制點
在地圖中心點位置添加標記點:
var latLng: LatLng?
//以下代碼可以在一個按鈕點擊事件當中實現(xiàn)
latLng = aMap.cameraPosition.target //aMap.cameraPosition.target獲取到高德地圖當前屏幕中心點的位置
//添加標記點樣式,包括圖標等地啰。
markerOption = MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))
.position(latLng)
.draggable(true)
marker = aMap.addMarker(markerOption) //后續(xù)如果需要刪除掉這個標記點愁拭,可以調(diào)用marker.remove()
3.2 繪制點連線
按順序添加點連線:
var passingPoint: LatLng
//以下代碼可以在一個按鈕點擊事件當中實現(xiàn)
passingPoint = aMap.cameraPosition.target
latLngs.add(passingPoint)
aMap.addPolyline(PolylineOptions()
.addAll(latLngs)
.width(10f).color(Color.argb(255, 1, 1, 1))
)
與繪制點相似,aMap.addPolyline也會返回一個Polyline對象亏吝,如果需要的話岭埠,可以調(diào)用remove()刪除。
3.3 通過連接點繪制面(多邊形)
var polygon: Polygon? = null
passingPoint = aMap.cameraPosition.target
latLngs.add(passingPoint)
val polygonOptions = PolygonOptions().apply {
addAll(latLngs)
strokeWidth(10f)
fillColor(Color.argb(40, 1, 150, 1))
strokeColor(Color.argb(100, 1, 1, 1))
}
if (polygon == null){
polygon = aMap.addPolygon(polygonOptions)
}else{
//去除掉之前畫出來的蔚鸥,避免畫出來的多邊形層層覆蓋
polygon!!.remove()
aMap.addPolygon(polygonOptions)
}
(未完待續(xù))