android高德方向,Android 高德地图进阶功能

本文接本人上一篇文章:Android APP接入高德SDK问题与记录,如果还不熟悉高德地图接入,可以先阅读这篇文章。

1 切换图层及显示路况

通过设置mapType,可以切换地图的类型:

aMap.mapType = MAP_TYPE_NORMAL //普通地图,默认

aMap.mapType = MAP_TYPE_SATELLITE //卫星地图

aMap.mapType = MAP_TYPE_NIGHT //夜景地图

设置是否显示路况信息:

aMap.isTrafficEnabled = true

2 离线地图

高德地图SDK提供了下载离线地图的界面,如需使用,需要先在AndroidManifest.xml当中加入Activity:

android:screenOrientation="portrait" />

然后在项目代码中跳转至该Activity:

startActivity(Intent(this.applicationContext, OfflineMapActivity::class.java))

如果有自定义的需求,还可以自定义离线地图的功能。项目暂时没有这部分需求,如果需要了,会再完善这部分内容。

3 标绘

3.1 绘制点

在地图中心点位置添加标记点:

var latLng: LatLng?

//以下代码可以在一个按钮点击事件当中实现

latLng = aMap.cameraPosition.target //aMap.cameraPosition.target获取到高德地图当前屏幕中心点的位置

//添加标记点样式,包括图标等。

markerOption = MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))

.position(latLng)

.draggable(true)

marker = aMap.addMarker(markerOption) //后续如果需要删除掉这个标记点,可以调用marker.remove()

3.2 绘制点连线

按顺序添加点连线:

var passingPoint: LatLng

//以下代码可以在一个按钮点击事件当中实现

passingPoint = aMap.cameraPosition.target

latLngs.add(passingPoint)

aMap.addPolyline(PolylineOptions()

.addAll(latLngs)

.width(10f).color(Color.argb(255, 1, 1, 1))

)

与绘制点相似,aMap.addPolyline也会返回一个Polyline对象,如果需要的话,可以调用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)

}

(未完待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值