概述
记录Android百度地图开发过程中的一些细节
正文
/**
* lat:圆心纬度
* lng:圆心经度
* radius:半径/米
*/
private fun showMarkers(lat: Double, lng: Double, radius: Int) {
val options = ArrayList<OverlayOptions>()
//模拟数据
val latLng1 = LatLng(lat+0.002f, lng+0.002f)
val latLng2 = LatLng(lat-0.002f, lng-0.002f)
val latLng3 = LatLng(lat+0.05f, lng-0.05f)
val latLng4 = LatLng(lat-0.05f, lng+0.05f)
//判断坐标点是否在以定位中心点为中点的圆内,半径单位为米
if (SpatialRelationUtil.isCircleContainsPoint(LatLng(lat, lng), radius, latLng1)){
val option1 = MarkerOptions().position(latLng1).icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_gcoding))
options.add(option1)
}
if (SpatialRelationUtil.isCircleContainsPoint(LatLng(lat, lng), radius, latLng2)) {
val option2 = MarkerOptions().position(latLng2).icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_gcoding))
options.add(option2)
}
if (SpatialRelationUtil.isCircleContainsPoint(LatLng(lat, lng), radius, latLng3)) {
val option3 = MarkerOptions().position(latLng3).icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_gcoding))
options.add(option3)
}
if (SpatialRelationUtil.isCircleContainsPoint(LatLng(lat, lng), radius, latLng4)) {
val option4 = MarkerOptions().position(latLng4).icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_gcoding))
options.add(option4)
}
baiduMap.addOverlays(options)
}
PS:SpatialRelationUtil是百度地图的工具类,其中isCircleContainsPoint方法可以用于判断标记点是否处于以某个定位点为半径的圆形范围内
——End——