BIGEMPA Js API示例中心

图层组案例源代码展示

代码编辑区 运行 下载 还原

<!DOCTYPE html>

<html>

<head>
  <meta charset='UTF-8' />
  <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
  <!--
        以下CSS地址请在安装软件了替换成本地的地址
        CSS地址请使用:
        http://localhost:9000/bigemap.js/v2.1.0/bigemap.css
        软件下载地址 http://www.bigemap.com/reader/download/detail201802017.html
    -->
  <link href='http://www.bigemap.com:9000/bigemap.js/v2.1.0/bigemap.css' rel='stylesheet' />
  <!--
        JS地址请使用:
        http://localhost:9000/bigemap.js/v2.1.0/bigemap.js
    -->
  <script src='http://www.bigemap.com:9000/bigemap.js/v2.1.0/bigemap.js'></script>
  <style>
    body {
      margin: 0;
      padding: 0;
    }

    #map {
      position: absolute;
      top: 0;
      bottom: 0;
      width: 100%;
    }

    /* 活跃图标所需样式 */
    .pulse-icon {
      display: inline-block;
      width: 15px;
      height: 15px;
      border-radius: 100%;
      background-color: #2f8;
      position: relative;
      box-shadow: 1px 1px 8px 0 rgba(0, 0, 0, 0.75);
    }

    .pulse-icon:after {
      content: '';
      box-shadow: 0 0 6px 2px #2f8;
      animation: pulsate 1s ease-out;
      animation-iteration-count: infinite;
      animation-delay: 1.1s;
      -webkit-border-radius: 100%;
      border-radius: 100%;
      height: 300%;
      width: 300%;
      animation: pulsate 2s infinite;
      position: absolute;
      margin: -100% 0 0 -100%;
    }

    @keyframes pulsate {
      0% {
        transform: scale(0.1, 0.1);
        opacity: 0;
        -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';
        filter: alpha(opacity=0);
      }

      50% {
        opacity: 1;
        -ms-filter: none;
        filter: none;
      }

      100% {
        transform: scale(1.2, 1.2);
        opacity: 0;
        -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';
        filter: alpha(opacity=0);
      }
    }

    /* 结束 */
  </style>
  <title>Google Map Streets</title>
</head>

<body>
  <div id='map'></div>
  <script>
    //软件配置信息地址,软件安装完成之后使用本地地址,如:http://localhost:9000
    BM.Config.HTTP_URL = 'http://www.bigemap.com:9000';
    // 在ID为map的元素中实例化一个地图,并设置地图的ID号为 bigemap.zhongkexingtu,ID号程序自动生成,无需手动配置,并设置地图的投影为百度地图 ,中心点,默认的级别和显示级别控件
    var map = BM.map('map', 'bigemap.amap-satellite', {
      center: [10, 15],
      zoom: 4,
      zoomControl: true,
      attributionControl: false
    });
    var markerList = [];//存放生成的标注
    var defaultIcon = window.BM.icon({
      //定义活跃图标和默认图标
      iconUrl: 'http://www.bigemap.com:9000/bigemap.js/v2.1.0/images/marker-icon.png',
      iconAnchor: [12.5, 41],//图标偏移 [宽度一半,高度]
    });
    var activeIcon = window.BM.divIcon({
      className: 'my-div-icon',
      html: `<div><span class="pulse-icon"></span></div>`,
    });
    for (let i = 0; i < 5; i++) {//随机生成5个标注
      let marker = BM.marker([Math.floor(Math.random() * 20 + 30), Math.floor(Math.random() * 20 + 30)], {
        icon: defaultIcon
      })
      markerList.push(marker);
    }
    var featureGroup = BM.featureGroup([...markerList])//featureGroup会传播绑定在上面的事件
      .bindPopup('Hello world!')
      .on('click', function (e) {
        featureGroup.eachLayer(function (layer) {
          console.log(layer);
          if (layer.options.icon == activeIcon) {//以配置为判断方式消除活跃图标
            layer.setIcon(defaultIcon);
          }
        });
        e.layer.setIcon(activeIcon);
      })
      .addTo(map);
       ///界面自适应
        map.fitBounds(featureGroup.getBounds())
    //   featureGroup.clearLayers()//清除组内的元素
  </script>
</body>
</html>