关于vue.js:vue-项目使用高德地图

新版本的高德倡议应用平安key

首先在publit/index.html
页面外面引入高德js,引入后整个我的项目能够应用高德

<script type="text/javascript">
    window._AMapSecurityConfig = {
      securityJsCode:'平安秘钥', // 
    }
  </script>
  <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=一般key"></script> 

vue 文件中应用:

container 为地图的容器,必须设置宽高

if (window.AMap) {
    this.map = new window.AMap.Map(document.querySelector('#container'), {
      // mapStyle: "amap://styles/darkblue",
      //设置地图容器id
      viewMode: "3D", //是否为3D地图模式
      zoom: 11, //初始化地图级别
      center: [114.300923, 30.575807], //初始化地图中心点地位
    });
  }
},

加载一些地图的工具

this.map.plugin(
  [
    "AMap.HawkEye",
    "AMap.MapType",
    "AMap.Scale",
    "AMap.ToolBar",
    "AMap.MouseTool",
  ],
  () => {
    //加载工具条
    var tool = new AMap.ToolBar({
      position: "LT",
    });
    this.map.addControl(new AMap.HawkEye());
    this.map.addControl(new AMap.MapType());
    this.map.addControl(new AMap.Scale());
    this.map.addControl(tool);
  }
);

这样地图就进去了,有地图后开发性能,比方在地图上画区域

减少点击的dom

<div class="input-card" style="width: 200px">
  <!-- <button class="btn" @click="drawPolyline" style="margin-bottom: 5px">
    绘制线段
  </button> -->
  <button class="btn" @click="drawPolygon" style="margin-bottom: 5px">
    绘制多边形
  </button>
  <!-- <button class="btn" @click="drawRectangle" style="margin-bottom: 5px">
    绘制矩形
  </button> -->
  <!-- <button class="btn" @click="drawCircle" style="margin-bottom: 5px">
    绘制圆形
  </button> -->
  <button class="btn" @click="drawClose" style="margin-bottom: 5px">
    革除
  </button>
</div>

减少点击工夫

drawPolyline() {
  this.mouseTool.polyline({
    strokeColor: "#3366FF",
    strokeOpacity: 1,
    strokeWeight: 6,
    // 线款式还反对 'dashed'
    strokeStyle: "solid",
    // strokeStyle是dashed时无效
    // strokeDasharray: [10, 5],
  });
},
drawPolygon() {
  this.mouseTool.polygon({
    strokeColor: "#FF33FF",
    strokeOpacity: 1,
    strokeWeight: 6,
    strokeOpacity: 0.2,
    fillColor: "#1791fc",
    fillOpacity: 0.4,
    // 线款式还反对 'dashed'
    strokeStyle: "solid",
    // strokeStyle是dashed时无效
    // strokeDasharray: [30,10],
  });
},
drawRectangle() {
  this.mouseTool.rectangle({
    strokeColor: "red",
    strokeOpacity: 0.5,
    strokeWeight: 6,
    fillColor: "blue",
    fillOpacity: 0.5,
    // strokeStyle还反对 solid
    strokeStyle: "solid",
    // strokeDasharray: [30,10],
  });
},
drawCircle() {
  this.mouseTool.circle({
    strokeColor: "#FF33FF",
    strokeOpacity: 1,
    strokeWeight: 6,
    strokeOpacity: 0.2,
    fillColor: "#1791fc",
    fillOpacity: 0.4,
    strokeStyle: "solid",
    // 线款式还反对 'dashed'
    // strokeDasharray: [30,10],
  });
},

捕捉绘画的信息

if (window.AMap) {
    this.map = new window.AMap.Map(document.querySelector('#container'), {
      // mapStyle: "amap://styles/darkblue",
      //设置地图容器id
      viewMode: "3D", //是否为3D地图模式
      zoom: 11, //初始化地图级别
      center: [114.300923, 30.575807], //初始化地图中心点地位
    });
    this.mouseTool = new AMap.MouseTool(this.map);
    this.mouseTool.on("draw", function (e) {
      console.log(e); // 画完后捕捉到的信息汇合
      this.overlays = [];
      this.overlays.push(e.obj);
      // this.mouseTool.close();
    });
  }

敞开绘画

drawClose() {
  this.mouseTool.close(true); //敞开,并革除覆盖物
  this.$nextTick(()=>{
      this.map.remove(this.map.getAllOverlays('polygon'));
  })
},

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理