调用百度地图BMapLib.DrawingManager绘制点线面圆

 

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>百度地图绘图工具示例</title>
  <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=你的秘钥"></script>
  <script type="text/javascript" src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"></script>
  <style>
    #container {width: 100%; height: 650px; border: 1px solid #ccc;}
    button {margin-right: 10px;}
  </style>
</head>
<body>
<div id="container"></div>
<button id="pointBtn">绘制点</button>
<button id="polylineBtn">绘制线</button>
<button id="polygonBtn">绘制面</button>
<button id="circleBtn">绘制圆</button>
<button id="clearBtn">清除</button>
<button id="viewBtn">浏览模式</button>

<script type="text/javascript">
  var map = new BMap.Map("container", {enableMapClick: false});
  var point = new BMap.Point(116.404, 39.915);
  map.centerAndZoom(point, 15);

  map.addControl(new BMap.NavigationControl());
  map.addControl(new BMap.ScaleControl());
  map.addControl(new BMap.OverviewMapControl());
  map.addControl(new BMap.MapTypeControl());
  map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放

  var drawingManager = new BMapLib.DrawingManager(map, {
    isOpen: false, // 初始状态不开启绘制
    enableDrawingTool: true, // 显示绘制控件,但这里我们不使用它,而是用按钮控制
    drawingModes: [
      BMAP_DRAWING_MARKER,
      BMAP_DRAWING_POLYLINE,
      BMAP_DRAWING_POLYGON,
      BMAP_DRAWING_CIRCLE
    ]
  });
  //开启面积或距离计算
  drawingManager.enableCalculate();

  // 绘制点
  document.getElementById('pointBtn').addEventListener('click', function() {
    drawingManager.setDrawingMode(BMAP_DRAWING_MARKER);
    drawingManager.enableCalculate();
    drawingManager.open();
  });

  // 绘制线
  document.getElementById('polylineBtn').addEventListener('click', function() {
    drawingManager.setDrawingMode(BMAP_DRAWING_POLYLINE);
    drawingManager.open();
  });

  // 绘制面
  document.getElementById('polygonBtn').addEventListener('click', function() {
    drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON);
    drawingManager.open();
  });

  // 绘制圆
  document.getElementById('circleBtn').addEventListener('click', function() {
    drawingManager.setDrawingMode(BMAP_DRAWING_CIRCLE);
    drawingManager.open();
  });

  // 清除绘制结果
  document.getElementById('clearBtn').addEventListener('click', function() {
    drawingManager.clear();
  });

  // 切换到浏览模式
  document.getElementById('viewBtn').addEventListener('click', function() {
    drawingManager.close();
  });

  // 监听绘制完成事件
  drawingManager.addEventListener('overlaycomplete', function(e) {
    console.log('绘制完成:', e.type, e.overlay);
//        alert('绘制完成:', e.type, e.overlay);
  });
</script>
</body>
</html>

记住将秘钥改成自己申请的秘钥

效果:

问题:我的清除是失效的,无法清除图形

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Cesium.js的点线面绘制是一种通过Cesium.js库在Web浏览器中绘制各种地理要素的方法。这种绘制可以实现对点、线和面的可视化,使得用户能够以直观的方式理解和分析地理数据。 对于点的绘制,Cesium.js提供了一个基于经纬度坐标系的点对象。我们可以通过给定的经纬度坐标和其他属性来创建一个点,并将其渲染在地球上。这使得我们能够在地球表面上标识出感兴趣的点,比如城市、景点等。 对于线的绘制,Cesium.js提供了一个基于经纬度坐标系的线对象。我们可以通过给定的经纬度坐标数组来创建一条线,并将其渲染在地球上。这使得我们能够连接多个点,展示线性要素,如道路、河流、路径等。 对于面的绘制,Cesium.js提供了一个基于经纬度坐标系的面对象。我们可以通过给定的经纬度坐标数组来创建一个面,并将其渲染在地球上。这使得我们能够展示区域性要素,如国家、湖泊、山脉等。 在基于Cesium.js的点线面绘制中,我们可以根据实际需要对象进行样式和交互的定制。我们可以设置点的颜色、大小和样式,线的颜色、粗细和样式,以及面的颜色、透明度和纹理。此外,我们还可以添加响应用户交互的功能,比如点击、悬停等。 综上所述,基于Cesium.js的点线面绘制提供了一种直观、灵活和交互性强的方式,使我们能够以更好的方式展示和分析地理数据。它在地理信息系统、虚拟地球等领域具有广泛的应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值