高德地图API使用~Web开发~从创建到具体功能展示

这篇具有很好参考价值的文章主要介绍了高德地图API使用~Web开发~从创建到具体功能展示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、呈现地图

首先在拥有一个自己账号,其次高德开放平台注册一个自己的key值和密钥

高德地图api开发,javascript,servlet,前端

 然后在public\index.html文件下,放上这段代码

  <script type="text/javascript">
    window._AMapSecurityConfig = {
      securityJsCode: "「您申请的安全密钥」",
    }
  </script>
  <script src="https://webapi.amap.com/loader.js"></script>
  <script type="text/javascript"
    src="https://webapi.amap.com/maps?v=2.0&key=「您申请的应用Key」">
    </script>

高德地图api开发,javascript,servlet,前端

然后找一个页面,

<template>
  <div class="content">
    <div id="container"></div>
  </div>
</template>

<script>
export default {
  mounted() {
    this.getMap();
  },
  methods: {
    getMap() {
      var map = new AMap.Map("container", {
        viewMode: "2D", // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D',
        zoom: 11, //初始化地图层级
        center: [116.397428, 39.90923], //初始化地图中心点
      });
    },
  },
};
</script>

<style scoped>
#container {
  width: 100wh;
  height: 93vh;
}
</style>

 放上去。刷新,于是你就得到了一个这样的地图。高德地图api开发,javascript,servlet,前端

 需要注意的点,初始化加载地图的时候,调用方法应该写在mounted而不是created中。其次,我是以我们的首都为中心点定位的,你也可以根据需求,定位你想要的位置

高德地图api开发,javascript,servlet,前端

修改这个位置就可以了。

二、修改地图背景

如果你不想要这个原颜色,或者你做的大屏是其他颜色的,在高德地图API中打开控制台-找到自定义地图-你可以自己设计,也可找你的ui小姐姐给你设计,更甚至掏钱买他们现成的模板,选中点击分享,复制模板样式的id到代码中

高德地图api开发,javascript,servlet,前端

高德地图api开发,javascript,servlet,前端

 三、行政区区分边界

你想特别突出某个城市,那么以北京市为例,参考下属行政区查询-行政区划查询-示例中心-JS API 2.0 示例 | 高德地图API

做出了以我刚刚设置了样式黑底为背景,以北京市为突出点做的“描边”

这里是效果图高德地图api开发,javascript,servlet,前端

 下面是具体代码,直接cv到我们刚刚的地图下面即可。

      var district = null;
      var polygon;
      function drawBounds() {
        //加载行政区划插件
        // if (!district) {
        //实例化DistrictSearch
        var opts = {
          subdistrict: 0, //获取边界不需要返回下级行政区
          extensions: "all", //返回行政区边界坐标组等具体信息
          level: "district", //查询行政级别为 市
        };
        district = new AMap.DistrictSearch(opts);

        // }
        //行政区查询
        district.search("北京市", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
      }
      drawBounds();

高德地图api开发,javascript,servlet,前端

高德地图api开发,javascript,servlet,前端

 四、添加覆盖物

覆盖物就是放在地图上的图片或者文字啦。

我们先来放图片。

接着刚刚的往下写,这一段直接放到drawBounds()方法下面就可以了。

    // 我们先来定义几个要出现图标的点,这个你也是可以通过接口区去拿到,然后放进去,我这个是案例久
      var lnglats = [
        [116.39, 39.92],
        [116.41, 39.93],
        [116.43, 39.91],
        [116.46, 39.93],
      ];
      var markers = []; //存放覆盖物的数组

      for (var i = 0; i < lnglats.length; i++) {
        // 这就是去遍历需要添加覆盖物图片的数组,让他的每一项上面加一个图片,只需要用到他的坐标点,和你要加的图片,都可以随意变换
        var lnglat = lnglats[i];
        var marker = new AMap.Marker({
          position: new AMap.LngLat(lnglat[0], lnglat[1]),
          icon: require("../../assets/map/img.png"),
        });

        markers.push(marker);
      }

      // 创建覆盖物群组,并将 marker 传给 OverlayGroup
      var overlayGroups = new AMap.OverlayGroup(markers);

      // 添加覆盖物群组
      function addOverlayGroup() {
        map.add(overlayGroups);
      }
      addOverlayGroup(); //覆盖物出现了。

 下面是展示效果图~

高德地图api开发,javascript,servlet,前端

这个时候你会发现我们创建的图标,太大了,不符合我们的预期,所以我们接下来应该,修改图片大小----

在上面的for循环里面修改图片样式即可,也不一定非得用这一个图片,它遍历的每一项就是一个点嘛,所以你可以根据位置啊或者其他的来给他放不一样的图片

(此处是修改图标大小的代码---)

      for (var i = 0; i < lnglats.length; i++) {
        // 这就是去遍历需要添加覆盖物图片的数组,让他的每一项上面加一个图片,只需要用到他的坐标点,和你要加的图片,都可以随意变换
        var lnglat = lnglats[i];
        var icons = require("../../assets/map/img.png");
        // 创建点实例
        var iconSmall = new AMap.Icon({
          size: new AMap.Size(25, 26), // 图标尺寸
          image: icons, // Icon的图像
          // imageOffset: new AMap.Pixel(0, -60), // 图像相对展示区域的偏移量,适于雪碧图等
          imageSize: new AMap.Size(25, 26), // 根据所设置的大小拉伸或压缩图片
        });
        var marker = new AMap.Marker({
          position: new AMap.LngLat(lnglat[0], lnglat[1]),
          icon: iconSmall,
        });

        markers.push(marker);
      }

下面是修改完图片之后效果图

高德地图api开发,javascript,servlet,前端

 五、添加文本标记

说白了,文本标记,就是覆盖物的一种,只不过刚刚是加图片,现在是文字罢了。

因为是给每一个点添加文本标记,所以还是跟刚刚添加图片一样,在刚刚遍历的for循环添加下面的代码即可。

     let label = new AMap.Text({
          text: "我是第" + i + "个文本标记",
          anchor: "center", // 设置文本标记锚点
          draggable: true,
          cursor: "pointer",
          // angle: 10,
          style: {
            padding: "10px",
            borderColor: "#57AFBB",
            borderRadius: "5px",
            backgroundColor: "#0f2b42",
            width: "15rem",
            height: "45px",
            lineHeight: "25px",
            fontFamily: "微软雅黑",
            fontSize: "18px",
            "text-align": "center",
            color: "#0efcff",
          },
          position: lnglat,
          offset: new AMap.Pixel(20, 50), // 设置文本偏移量
        });
        label.setMap(map);

高德地图api开发,javascript,servlet,前端

六、地图缩放

zoom表示的就是缩放层级,数字越大,放大倍数越大,位置就越精准。

高德地图api开发,javascript,servlet,前端

 一般就是根据地图的缩放等级去显示和不显示部分内容吧,那我们就以上面添加的文本标记为例,当放大到一定程度再显示,缩小的时候就不显示。


      map.on("zoomend", () => {
        let zoom = map.getZoom(); // 获取缩放级别
        console.log("zoom", zoom); //你可以打印缩放的层级
        for (let i = 0; i < this.labell.length; i++) {
          //刚开始的时候因为上面定义的 zoom为11,所以不到15也就是不显示字体,所以用下面的方法清除
          map.remove(this.labell[i]);
        }
        if (zoom > 15) {
          //超过15显示
          for (let i = 0; i < this.labell.length; i++) {
            this.labell[i].setMap(map);
          }
        } else {
          for (let i = 0; i < this.labell.length; i++) {
            map.remove(this.labell[i]);
          }
        }
      });

上面的代码仅仅取了下面图片的两处,还有一处修改和定义的,自己记得改0~

高德地图api开发,javascript,servlet,前端

 下面放效果图

高德地图api开发,javascript,servlet,前端

 可以看出一开始是不显示的,等我放大放大放大---至15的时候,就显示出来了

七、信息窗口

信息窗口的展示,点击小图标的出现个小弹框,有点注释 的作用,基础用法很简单,三步走,调注册调用+事件即可。

高德地图api开发,javascript,servlet,前端高德地图api开发,javascript,servlet,前端

这个是效果图 

信息窗口的样式优化

这是最基础的最默认的写法,下面是信息窗口样式的调整,

高德地图api开发,javascript,servlet,前端

 修改背景颜色高德地图api开发,javascript,servlet,前端

整体代码添加:这里放了整个map方法哈

    getMap() {
      var map = new AMap.Map("container", {
        viewMode: "2D", // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D',
        zoom: 11, //初始化地图层级
        center: [116.39, 39.92], //初始化地图中心点
        mapStyle: "amap://styles/5f1483245b363ab2e7526f4b833dcb27", //设置地图的显示样式
      });
      var district = null;
      var polygon;
      function drawBounds() {
        //加载行政区划插件
        // if (!district) {
        //实例化DistrictSearch
        var opts = {
          subdistrict: 0, //获取边界不需要返回下级行政区
          extensions: "all", //返回行政区边界坐标组等具体信息
          level: "district", //查询行政级别为 市
        };
        district = new AMap.DistrictSearch(opts);

        // }
        //行政区查询
        district.search("北京市", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("怀柔区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("门头沟区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("平谷区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("密云区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("顺义区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("朝阳区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("石景山区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("西城区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("大兴区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("东城区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("海淀区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("昌平区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("延庆区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("通州区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("房山区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
        district.search("丰台区", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政区划polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //构造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定义轮廓的粗细
              path: bounds,
              fillOpacity: 0.1, // 遮罩层透明度
              fillColor: "", // 遮罩层颜色,没有代表不覆盖颜色
              strokeColor: "#fff", // 轮廓颜色,因为底色是黑色所以我为了凸显效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //视口自适应
          }
        });
      }
      drawBounds();
      // 我们先来定义几个要出现图标的点,这个你也是可以通过接口区去拿到,然后放进去,我这个是案例久
      var lnglats = [
        [116.39, 39.92],
        [116.41, 39.93],
        [116.43, 39.91],
        [116.46, 39.93],
      ];
      var markers = []; //存放覆盖物的数组
      var infoWindow = new AMap.InfoWindow({ offset: new AMap.Pixel(0, -30) });
      for (var i = 0; i < lnglats.length; i++) {
        // 这就是去遍历需要添加覆盖物图片的数组,让他的每一项上面加一个图片,只需要用到他的坐标点,和你要加的图片,都可以随意变换
        var lnglat = lnglats[i];
        var icons = require("../../assets/map/img.png");
        // 创建点实例
        var iconSmall = new AMap.Icon({
          size: new AMap.Size(25, 26), // 图标尺寸
          image: icons, // Icon的图像
          // imageOffset: new AMap.Pixel(0, -60), // 图像相对展示区域的偏移量,适于雪碧图等
          imageSize: new AMap.Size(25, 26), // 根据所设置的大小拉伸或压缩图片
        });
        var marker = new AMap.Marker({
          position: new AMap.LngLat(lnglat[0], lnglat[1]),
          icon: iconSmall,
        });
        // marker.content = "我是第" + (i + 1) + "个Marker";
        var info = [];
        info.push(
          `<div style=" padding:7px 0px 6px 3px;  width:300px;color:black; font-size:18px">${
            "我是第" + i + 1 + "标题"
          }</div>`
        );
        info.push(
          `<div style="padding:7px 0px 0px 3px;  fontSize:15px;fontFamily:微软雅黑; color:black;">叭叭叭叭叭叭</div>`
        );
        info.push(
          `<div style=" padding:7px 0px 0px 3px; fontSize:15px;fontFamily:微软雅黑; color:black;">嘟嘟嘟嘟嘟嘟</div>`
        );

        marker.content = info.join("");
        marker.on("click", markerClick);

        markers.push(marker);

        let label = new AMap.Text({
          text: "我是第" + i + "个文本标记",
          anchor: "center", // 设置文本标记锚点
          draggable: true,
          cursor: "pointer",
          // angle: 10,
          style: {
            padding: "10px",
            borderColor: "#57AFBB",
            borderRadius: "5px",
            backgroundColor: "#0f2b42",
            width: "15rem",
            height: "45px",
            lineHeight: "25px",
            fontFamily: "微软雅黑",
            fontSize: "18px",
            "text-align": "center",
            color: "#0efcff",
          },
          position: lnglat,
          offset: new AMap.Pixel(20, 50), // 设置文本偏移量
        });
        this.labell[i] = label; // label.setMap(map);
      }
      function markerClick(e) {
        infoWindow.setContent(e.target.content);
        infoWindow.open(map, e.target.getPosition());
      }
      // 创建覆盖物群组,并将 marker 传给 OverlayGroup
      var overlayGroups = new AMap.OverlayGroup(markers);

      // 添加覆盖物群组
      function addOverlayGroup() {
        map.add(overlayGroups);
      }
      addOverlayGroup(); //覆盖物出现了。

      map.on("zoomend", () => {
        let zoom = map.getZoom(); // 获取缩放级别
        console.log("zoom", zoom); //你可以打印缩放的层级
        for (let i = 0; i < this.labell.length; i++) {
          //刚开始的时候因为上面定义的 zoom为11,所以不到15也就是不显示字体,所以用下面的方法清除
          map.remove(this.labell[i]);
        }
        if (zoom > 15) {
          //超过15显示
          for (let i = 0; i < this.labell.length; i++) {
            this.labell[i].setMap(map);
          }
        } else {
          for (let i = 0; i < this.labell.length; i++) {
            map.remove(this.labell[i]);
          }
        }
      });
    },

 修改信息窗口背景颜色文章来源地址https://www.toymoban.com/news/detail-736617.html

<style scoped>
#container {
  width: 100wh;
  height: 93vh;
}
::v-deep .amap-info-content {
  background-color: #2f597c;
  /* opacity: 0.6; */
}
</style>

到了这里,关于高德地图API使用~Web开发~从创建到具体功能展示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web JS高德地图标点、点聚合、自定义图标、自定义窗体信息、换肤等功能实现和高复用性组件封装教程

    突然发现官方更新点聚合调用方式多包一层mapObj.plugin([“AMap.MarkerClusterer”],fn)来加载聚合功能,之前直接通过new方式不生效,具体可以看下第6点和示例代码已做更新,感谢读者反馈。 本文将讲述如何利用高德地图JS API实现地图标点、聚合点、自定义图标、点击窗体信息展

    2024年02月04日
    浏览(44)
  • vue3使用高德地图实现点击获取经纬度以及搜索功能

     话不多说直接上干活 在此之前你需要有高德地图的 key,这个自己去申请即可 1,首先需要在终端安装 2,准备一个容器 3,在需要使用的页面引入刚才安装的 4, 5,绑定input框 最后附上css代码 ​​​​​​​这个时候就已经可以了

    2024年02月12日
    浏览(38)
  • 微信小程序使用高德地图实现检索定位附近周边的POI功能示例

           解压下载的文件得到 amap-wx.js ,在创建的项目中,新建一个名为 libs 目录,将 amap-wx.js 文件拷贝到 libs 的本地目录下。 登录微信公众平台,在 \\\"设置\\\" → \\\"开发设置\\\" 中设置 request 合法域名,将  https://restapi.amap.com  中添加进去,如下图所示:    

    2024年02月03日
    浏览(49)
  • 微信小程序学习实录5(H5嵌入小程序、map组件、地图调起功能、腾讯百度高德导航页、返回web-view页)

    创建容器 地图家长 在H5页面引入 //res.wx.qq.com/open/js/jweixin-1.6.0.js ,建议使用高版本; 点击返回按钮 调用微信小程序和H5通用API 判断是否在微信小程序环境中 地图调起,再次返回小程序页 获取H5传递参数的方式为: console.log(options) latitude和longitude必须为数字类型,不支持字符

    2024年02月07日
    浏览(70)
  • 高德地图js api

    官网:开发 | 高德地图API vue-amap 基于vue的高德地图:组件 | vue-amap 注意事项:地图盒子一定要有宽高!!!!! 在项目中安装 default-passive-events,并引入 main.js 中, 这个包的作用是通过添加 passive,来阻止 touchstart 事件,让页面更加流畅。 事件使用 ***.on(‘事件名比如:(cli

    2024年02月04日
    浏览(36)
  • uniapp中打包Andiord app,在真机调试时地图以及定位功能可以正常使用,打包成app后失效问题(高德地图)

    踩坑uniapp中打包Andiord app,在真机调试时地图以及定位功能可以正常使用,打包成app后失效问题_uniapp真机调试高德地图正常 打包apk高德地图就不加载-CSDN博客 目前两个项目,一个项目是从另一个项目里面分割出来的一整套完整的系统,两个项目 配置里面的高德地图的key值都

    2024年01月24日
    浏览(65)
  • 申请高德地图API【流程记录】

    现在我们需要使用高德地图的api进行功能的实现,这就需要我们申请一个高德地图的key 1.进入官网 登录账号 点击高德开放平台 | 高德地图API (amap.com)。进行登录 选择控制台 注册为开发者 填写邮箱获取验证码后,进行支付宝扫码进行实名认证 注册完成 点击确认即可 2.申请

    2024年01月17日
    浏览(32)
  • 高德地图系列(三):vue项目利用高德地图实现地址搜索功能

    目录 第一章 效果图 第二章 源代码 高德地图为我们提供了搜索联想,以及搜索结果标记,该案例已将基础功能打通,后续我们肯定还会对功能有所修改,想实现自己想要的效果,基本上看高德地图文档对着改就好了(跟我们用别的工具一样做即可)  代码描述如下:  注意事

    2024年02月03日
    浏览(43)
  • vue 使用高德地图实现自定义选取起点和终点功能,支持搜索地址跳转定位(保姆级教程)

    1. 起点终点选择  2. 地址搜索   1. 获取高德地图key 1.1  访问高德地图官网注册完成后登录,进入控制台  1.2  左侧 应用管理-我的应用,点击创建新应用 1.3 点击添加   1.4 选择 Web端(JS API)  1.5 创建完成,得到key和安全密钥   2. 引入高德地图npm包 提示:以下代码全部在*.vu

    2024年02月04日
    浏览(38)
  • 高德API JS 高德地图获取多个坐标点的中心点

    我需要: 在地图上展示多个地点 地图缩放到合适的大小,要求刚好能显示全部点位 边缘留有一部分间隔。 做成如图所示这样。 经过一下午的研究,弄出来了。 需要以下这些 AMap 的类库: AMap.Bounds() 区域 AMap.LngLat() 点坐标(基础点位) AMap.setBounds() 设置地图区域,这会自动

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包