高德地图的circle圈

高德地图上有很多类型的覆盖物,近期用到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", //填充颜色 })
### 在 Vue3 中使用高德地图 API 绘制圆形标记 为了在 Vue3 项目中实现这一目标,需先完成必要的准备步骤。这包括注册成为高德地图开发者并获得相应的API Key[^3]。 #### 创建自定义组件以集成高德地图 建议创建一个新的Vue组件来专门处理与高德地图有关的功能逻辑。在这个特定场景下,即绘制圆形标记,该组件不仅负责初始化地图实例,还需设置好绘图工具以及响应用户的交互行为。 ```html <template> <div id="container"></div> </template> <script setup> import { onMounted } from 'vue'; import Loader from '@amap/amap-jsapi-loader'; onMounted(() => { const initMap = async () => { try { await Loader.load({ key: '<Your_API_Key>', // 替换成自己的API Key version: '2.0', plugins: ['AMap.CircleEditor'] }); let map = new window.AMap.Map('container', { zoom: 10, center: [116.397428, 39.90923], viewMode: '3D' }); drawCircle(map); } catch (error) { console.error(error); } }; function drawCircle(mapInstance){ var circle = new window.AMap.Circle({ center: new window.AMap.LngLat(116.397428, 39.90923), // 圆心位置 radius: 1000, // 半径大小,单位米 strokeColor: "#FF33FF", strokeWeight: 6, strokeOpacity: 0.2, fillOpacity: 0.4, fillColor: '#1791fc', zIndex: 50 }); circle.setMap(mapInstance); } initMap(); }); </script> <style scoped> #container { width: 100%; height: 500px; } </style> ``` 上述代码展示了如何通过`@amap/amap-jsapi-loader`加载器引入所需的插件,并利用这些资源构建一个带有圆形覆盖物的地图实例。值得注意的是,在实际开发过程中应当妥善保管个人的API Key,避免泄露给他人。 #### 关于样式调整和其他高级特性 除了基本的圆属性外,还可以进一步探索更多定制化选项,比如改变线条颜色(`strokeColor`)、宽度(`strokeWeight`)或是透明度(`fillOpacity`)等参数来自由设计所需的效果[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值