1.获得绘制虚线的坐标点集合
// 绘制虚线的gps坐标点
private List<LatLng> convesLngs = new ArrayList<LatLng>();
/**
* 扇形区域折线存储
*/
private Map<String, Polyline> polylinesMap = new HashMap<>();
/**
* 扇形区域块存储
*/
private Map<String, Polygon> polygonsMap = new HashMap<>();
2.绘制
/**
* 高德绘制区域边框颜色没找到虚线
* 临时先绘制虚线线条 + 区域背景 组成
* 默认隐藏虚线
* id 管理虚线对象的key
* @param convesLngs
*/
private void convesLines(List<LatLng> convesLngs, String id) {
Polyline polyline = aMap.addPolyline(new PolylineOptions()
.addAll(convesLngs)
.width(15)
.zIndex(1000)
.setDottedLine(true)
.setDottedLineType(PolylineOptions.DOTTEDLINE_TYPE_CIRCLE)
.color(Color.argb(200, 24, 144, 255)));
polyline.setVisible(false);
if (!polylinesMap.containsKey(id)) {
polylinesMap.put(id, polyline);
}
Polygon polygon = aMap.addPolygon(new PolygonOptions()
.addAll(convesLngs)
.strokeWidth(15)
.zIndex(1000)
.strokeColor((Color.parseColor("#0030A5FF")))
.fillColor(0x1A1890FF));
polygon.setVisible(false);
// 管理当前虚线的map
if (!polygonsMap.containsKey(id)) {
polygonsMap.put(id, polygon);
}
}
3.显示或隐藏虚线:
polyline.setVisible(false); //虚线不可见
polyline.setVisible(true); // 虚线可见
polygon 控制方式同上
可以通过控制
polygonsMap、polylinesMap取对应的key获得对象 来控制显示或隐藏