欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue高德地图只显示某一区域的地图,其他地区不显示

程序员文章站 2022-07-02 09:24:15
...

index.html  页面加上<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=你申请的key"></script>

<!DOCTYPE html>
<html lang="en" data-dpr="1">
  <head>
    <meta charset="utf-8">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title></title>
    <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=你申请的key"></script>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

vue文件 

绘制边界获取坐标点  http://www.xswblog.top/WeUI/Cover.html
<template>
  <div id="container"></div>
</template>

<script>
  export default {
    name: 'maps',
    mounted() {
      this.setMap()
    },
    methods: {
      // 绘制边界获取坐标点  http://www.xswblog.top/WeUI/Cover.html
      setMap() {
        /* eslint-disable */
        var map = new AMap.Map('container', {
          zoom: 12, // 初始地图级别
          center: [118.150144, 24.5114], // 初始地图中心点
          pitch: 0,
          viewMode: '3D',
          mapStyle: 'amap://styles/40035571fa9fdd05a26fe1b05f48fdc9' // 设置地图背景图
        })

        var options = {
          areas: [{ // 围栏1
            // visible: false, // 是否可见
            rejectTexture: true, // 是否屏蔽自定义地图的纹理
            path: [[
              [118.13681, 24.517453], [118.13681, 24.517453], [118.137153, 24.518078], [118.138269, 24.499256], [118.149255, 24.498475], [118.159383, 24.498944], [118.160327, 24.506988], [118.156207, 24.523153], [118.148654, 24.520811], [118.144792, 24.517999], [118.137067, 24.517765]
            ]]
          }]
        }

        // 外多边形坐标数组和内多边形坐标数组
        var outer = [
          new AMap.LngLat(-360, 90, true),
          new AMap.LngLat(-360, -90, true),
          new AMap.LngLat(360, -90, true),
          new AMap.LngLat(360, 90, true),
        ]
        var pathArray = [ outer ]
        pathArray.push.apply(pathArray, options.areas[0].path) // options.areas[0].path 外部区域 遮罩
        // pathArray = [ outer ] // 整个地图遮罩
        // pathArray = options.areas[0].path // options.areas[0].path 内部区域 遮罩

        new AMap.Polygon({
          path: pathArray,
          map: map,
          bubble: true,
          fillColor: 'rgba(0,0,0)', // 多边形填充颜色
          fillOpacity: 1, // 多边形填充透明度,默认为0.9
          strokeColor: '#00eeff', // 线条颜色
          strokeWeight: 2,
          strokeOpacity: 0.5, // 轮廓线透明度,默认为0.9
          strokeStyle: 'dashed', // 轮廓线样式,实线:solid,虚线:dashed
          /*勾勒形状轮廓的虚线和间隙的样式,此属性在strokeStyle 为dashed 时有效, 此属性在
            ie9+浏览器有效 取值:
            实线:[0,0,0]
            虚线:[10,10] ,[10,10] 表示10个像素的实线和10个像素的空白(如此反复)组成的虚线
            点画线:[10,2,10], [10,2,10] 表示10个像素的实线和2个像素的空白 + 10个像素的实
            线和10个像素的空白 (如此反复)组成的虚线*/
          strokeDasharray:[10,2,10]
        })

        // new AMap.Polyline({
        //   path: pathArray,
        //   map: map,
        //   strokeColor: '#3366FF',   // 线颜色
        //   strokeOpacity: 1,         // 线透明度
        //   strokeWeight: 2,          // 线宽
        //   strokeStyle: 'solid',     // 线样式
        //   strokeDasharray: [10, 5], // 补充线样式
        //   geodesic: false            // 绘制大地线
        // })
      }
    }
  }
</script>

<style scoped>
  #container {
    margin: 0;
    height: 100%;
  }
</style>

完成后如下图所示:

参考文章:高德地图-2D地图下区域遮掩(只显示固定区域里的内容)_u010840685的博客-CSDN博客

高德地图api(javascript)只显示某一行政区域的地图,其他周边地区的都不显示_Half of if的博客-CSDN博客