高德地图的circle圈

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34664239/article/details/89097397

高德地图上有很多类型的覆盖物,近期用到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", //填充颜色 })

猜你喜欢

转载自blog.csdn.net/qq_34664239/article/details/89097397