高德地图上有很多类型的覆盖物,近期用到circle覆盖物,顺便记录下
官方文档:https://lbs.amap.com/api/javascript-api/reference/overlay
直接上案例
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<title>覆盖物-circle的添加与移除</title>
<link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
<script src="https://cache.amap.com/lbs/static/es5.min.js"></script>
<script src="https://webapi.amap.com/maps?v=1.4.14&key=您申请的key值"></script>
<script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
<style>
html,
body,
#container {
width: 100%;
height: 100%;
}
label {
width: 55px;
height: 26px;
line-height: 26px;
margin-bottom: 0;
}
button.btn {
width: 80px;
}
</style>
</head>
<body>
<div id="container"></div>
<div class="input-card" style="width:24rem;">
<h4>添加、删除覆盖物</h4>
<div class="input-item">
<label>Circle:</label>
<button class="btn" id="add-circle" style="margin-right:1rem;">添加Circle</button>
<button class="btn" id="remove-circle">删除Circle</button>
<button class="btn" id="reset-circle">重置Circle</button>
</div>
</div>
<script>
var map = new AMap.Map('container', {
resizeEnable: true,
zoom:11,
center: [116.397428, 39.90923]
});
// 构造矢量圆形
var circle = new AMap.Circle({
center: new AMap.LngLat('116.273707','39.896989'), // 圆心位置
radius: 1000, //半径
strokeColor: "#76D5C2", //线颜色
strokeOpacity: 1, //线透明度
strokeWeight: 1, //线粗细度
fillColor: "#76D5C2", //填充颜色
fillOpacity: 0.35 //填充透明度
});
//事件绑定
document.querySelector("#add-circle").onclick = function() {
map.add(circle);
map.setFitView();
}
document.querySelector("#remove-circle").onclick = function() {
map.remove(circle);
map.setFitView();
}
document.querySelector("#reset-circle").onclick = function() {
/* map.remove(circle);
circle = new AMap.Circle({
center: new AMap.LngLat('116.405285', '39.904989'), // 圆心位置
radius: 500, //半径
strokeColor: "#76D5C2", //线颜色
strokeOpacity: 1, //线透明度
strokeWeight: 1, //线粗细度
fillColor: "#76D5C2", //填充颜色
fillOpacity: 0.35 //填充透明度
});
map.add(circle); */
console.log(circle.getCenter())
circle.setCenter(['116.405285','39.904989']);
circle.setRadius(500);
circle.setOptions({
'strokeWeight':6,
'fillColor': "#D90000", //填充颜色
})
map.setFitView();
}
</script>
</body>
</html>
难点
重置圆的方法(官方文档上的传参方式不明确):
可以删除重新添加,但是会有很多问题
现在利用其方法,改变圆
影响圆的因素及改变圆的方法
- 圆心 -
circle.setCenter(['116.405285','39.904989']);
- 半径 -
circle.setRadius(500)
- 圆的样式 -
circle.setOptions({ 'strokeWeight':6, 'fillColor': "#D90000", //填充颜色 })