国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

高德地圖API使用~Web開發(fā)~從創(chuàng)建到具體功能展示

這篇具有很好參考價(jià)值的文章主要介紹了高德地圖API使用~Web開發(fā)~從創(chuàng)建到具體功能展示。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、呈現(xiàn)地圖

首先在擁有一個(gè)自己賬號(hào),其次高德開放平臺(tái)注冊一個(gè)自己的key值和密鑰

高德地圖api開發(fā),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=「您申請的應(yīng)用Key」">
    </script>

高德地圖api開發(fā),javascript,servlet,前端

然后找一個(gè)頁面,

<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", // 默認(rèn)使用 2D 模式,如果希望使用帶有俯仰角的 3D 模式,請?jiān)O(shè)置 viewMode: '3D',
        zoom: 11, //初始化地圖層級(jí)
        center: [116.397428, 39.90923], //初始化地圖中心點(diǎn)
      });
    },
  },
};
</script>

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

?放上去。刷新,于是你就得到了一個(gè)這樣的地圖。高德地圖api開發(fā),javascript,servlet,前端

?需要注意的點(diǎn),初始化加載地圖的時(shí)候,調(diào)用方法應(yīng)該寫在mounted而不是created中。其次,我是以我們的首都為中心點(diǎn)定位的,你也可以根據(jù)需求,定位你想要的位置

高德地圖api開發(fā),javascript,servlet,前端

修改這個(gè)位置就可以了。

二、修改地圖背景

如果你不想要這個(gè)原顏色,或者你做的大屏是其他顏色的,在高德地圖API中打開控制臺(tái)-找到自定義地圖-你可以自己設(shè)計(jì),也可找你的ui小姐姐給你設(shè)計(jì),更甚至掏錢買他們現(xiàn)成的模板,選中點(diǎn)擊分享,復(fù)制模板樣式的id到代碼中

高德地圖api開發(fā),javascript,servlet,前端

高德地圖api開發(fā),javascript,servlet,前端

?三、行政區(qū)區(qū)分邊界

你想特別突出某個(gè)城市,那么以北京市為例,參考下屬行政區(qū)查詢-行政區(qū)劃查詢-示例中心-JS API 2.0 示例 | 高德地圖API

做出了以我剛剛設(shè)置了樣式黑底為背景,以北京市為突出點(diǎn)做的“描邊”

這里是效果圖高德地圖api開發(fā),javascript,servlet,前端

?下面是具體代碼,直接cv到我們剛剛的地圖下面即可。

      var district = null;
      var polygon;
      function drawBounds() {
        //加載行政區(qū)劃插件
        // if (!district) {
        //實(shí)例化DistrictSearch
        var opts = {
          subdistrict: 0, //獲取邊界不需要返回下級(jí)行政區(qū)
          extensions: "all", //返回行政區(qū)邊界坐標(biāo)組等具體信息
          level: "district", //查詢行政級(jí)別為 市
        };
        district = new AMap.DistrictSearch(opts);

        // }
        //行政區(qū)查詢
        district.search("北京市", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
      }
      drawBounds();

高德地圖api開發(fā),javascript,servlet,前端

高德地圖api開發(fā),javascript,servlet,前端

?四、添加覆蓋物

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

我們先來放圖片。

接著剛剛的往下寫,這一段直接放到drawBounds()方法下面就可以了。

    // 我們先來定義幾個(gè)要出現(xiàn)圖標(biāo)的點(diǎn),這個(gè)你也是可以通過接口區(qū)去拿到,然后放進(jìn)去,我這個(gè)是案例久
      var lnglats = [
        [116.39, 39.92],
        [116.41, 39.93],
        [116.43, 39.91],
        [116.46, 39.93],
      ];
      var markers = []; //存放覆蓋物的數(shù)組

      for (var i = 0; i < lnglats.length; i++) {
        // 這就是去遍歷需要添加覆蓋物圖片的數(shù)組,讓他的每一項(xiàng)上面加一個(gè)圖片,只需要用到他的坐標(biāo)點(diǎn),和你要加的圖片,都可以隨意變換
        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);
      }

      // 創(chuàng)建覆蓋物群組,并將 marker 傳給 OverlayGroup
      var overlayGroups = new AMap.OverlayGroup(markers);

      // 添加覆蓋物群組
      function addOverlayGroup() {
        map.add(overlayGroups);
      }
      addOverlayGroup(); //覆蓋物出現(xiàn)了。

?下面是展示效果圖~

高德地圖api開發(fā),javascript,servlet,前端

這個(gè)時(shí)候你會(huì)發(fā)現(xiàn)我們創(chuàng)建的圖標(biāo),太大了,不符合我們的預(yù)期,所以我們接下來應(yīng)該,修改圖片大小----

在上面的for循環(huán)里面修改圖片樣式即可,也不一定非得用這一個(gè)圖片,它遍歷的每一項(xiàng)就是一個(gè)點(diǎn)嘛,所以你可以根據(jù)位置啊或者其他的來給他放不一樣的圖片

(此處是修改圖標(biāo)大小的代碼---)

      for (var i = 0; i < lnglats.length; i++) {
        // 這就是去遍歷需要添加覆蓋物圖片的數(shù)組,讓他的每一項(xiàng)上面加一個(gè)圖片,只需要用到他的坐標(biāo)點(diǎn),和你要加的圖片,都可以隨意變換
        var lnglat = lnglats[i];
        var icons = require("../../assets/map/img.png");
        // 創(chuàng)建點(diǎn)實(shí)例
        var iconSmall = new AMap.Icon({
          size: new AMap.Size(25, 26), // 圖標(biāo)尺寸
          image: icons, // Icon的圖像
          // imageOffset: new AMap.Pixel(0, -60), // 圖像相對展示區(qū)域的偏移量,適于雪碧圖等
          imageSize: new AMap.Size(25, 26), // 根據(jù)所設(shè)置的大小拉伸或壓縮圖片
        });
        var marker = new AMap.Marker({
          position: new AMap.LngLat(lnglat[0], lnglat[1]),
          icon: iconSmall,
        });

        markers.push(marker);
      }

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

高德地圖api開發(fā),javascript,servlet,前端

?五、添加文本標(biāo)記

說白了,文本標(biāo)記,就是覆蓋物的一種,只不過剛剛是加圖片,現(xiàn)在是文字罷了。

因?yàn)槭墙o每一個(gè)點(diǎn)添加文本標(biāo)記,所以還是跟剛剛添加圖片一樣,在剛剛遍歷的for循環(huán)添加下面的代碼即可。

     let label = new AMap.Text({
          text: "我是第" + i + "個(gè)文本標(biāo)記",
          anchor: "center", // 設(shè)置文本標(biāo)記錨點(diǎn)
          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), // 設(shè)置文本偏移量
        });
        label.setMap(map);

高德地圖api開發(fā),javascript,servlet,前端

六、地圖縮放

zoom表示的就是縮放層級(jí),數(shù)字越大,放大倍數(shù)越大,位置就越精準(zhǔn)。

高德地圖api開發(fā),javascript,servlet,前端

?一般就是根據(jù)地圖的縮放等級(jí)去顯示和不顯示部分內(nèi)容吧,那我們就以上面添加的文本標(biāo)記為例,當(dāng)放大到一定程度再顯示,縮小的時(shí)候就不顯示。


      map.on("zoomend", () => {
        let zoom = map.getZoom(); // 獲取縮放級(jí)別
        console.log("zoom", zoom); //你可以打印縮放的層級(jí)
        for (let i = 0; i < this.labell.length; i++) {
          //剛開始的時(shí)候因?yàn)樯厦娑x的 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開發(fā),javascript,servlet,前端

?下面放效果圖

高德地圖api開發(fā),javascript,servlet,前端

?可以看出一開始是不顯示的,等我放大放大放大---至15的時(shí)候,就顯示出來了

七、信息窗口

信息窗口的展示,點(diǎn)擊小圖標(biāo)的出現(xiàn)個(gè)小彈框,有點(diǎn)注釋 的作用,基礎(chǔ)用法很簡單,三步走,調(diào)注冊調(diào)用+事件即可。

高德地圖api開發(fā),javascript,servlet,前端高德地圖api開發(fā),javascript,servlet,前端

這個(gè)是效果圖?

信息窗口的樣式優(yōu)化

這是最基礎(chǔ)的最默認(rèn)的寫法,下面是信息窗口樣式的調(diào)整,

高德地圖api開發(fā),javascript,servlet,前端

?修改背景顏色高德地圖api開發(fā),javascript,servlet,前端

整體代碼添加:這里放了整個(gè)map方法哈

    getMap() {
      var map = new AMap.Map("container", {
        viewMode: "2D", // 默認(rèn)使用 2D 模式,如果希望使用帶有俯仰角的 3D 模式,請?jiān)O(shè)置 viewMode: '3D',
        zoom: 11, //初始化地圖層級(jí)
        center: [116.39, 39.92], //初始化地圖中心點(diǎn)
        mapStyle: "amap://styles/5f1483245b363ab2e7526f4b833dcb27", //設(shè)置地圖的顯示樣式
      });
      var district = null;
      var polygon;
      function drawBounds() {
        //加載行政區(qū)劃插件
        // if (!district) {
        //實(shí)例化DistrictSearch
        var opts = {
          subdistrict: 0, //獲取邊界不需要返回下級(jí)行政區(qū)
          extensions: "all", //返回行政區(qū)邊界坐標(biāo)組等具體信息
          level: "district", //查詢行政級(jí)別為 市
        };
        district = new AMap.DistrictSearch(opts);

        // }
        //行政區(qū)查詢
        district.search("北京市", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("懷柔區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("門頭溝區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("平谷區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("密云區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("順義區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("朝陽區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("石景山區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("西城區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("大興區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("東城區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("海淀區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("昌平區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("延慶區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("通州區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("房山區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
        district.search("豐臺(tái)區(qū)", (status, result) => {
          var bounds = result.districtList[0].boundaries;
          if (bounds) {
            //生成行政區(qū)劃polygon
            for (var i = 0; i < bounds.length; i += 1) {
              //構(gòu)造MultiPolygon的path
              bounds[i] = [bounds[i]];
            }
            polygon = new AMap.Polygon({
              strokeWeight: 2, // 定義輪廓的粗細(xì)
              path: bounds,
              fillOpacity: 0.1, // 遮罩層透明度
              fillColor: "", // 遮罩層顏色,沒有代表不覆蓋顏色
              strokeColor: "#fff", // 輪廓顏色,因?yàn)榈咨呛谏晕覟榱送癸@效果用的白色
            });
            map.add(polygon);
            map.setFitView(polygon); //視口自適應(yīng)
          }
        });
      }
      drawBounds();
      // 我們先來定義幾個(gè)要出現(xiàn)圖標(biāo)的點(diǎn),這個(gè)你也是可以通過接口區(qū)去拿到,然后放進(jìn)去,我這個(gè)是案例久
      var lnglats = [
        [116.39, 39.92],
        [116.41, 39.93],
        [116.43, 39.91],
        [116.46, 39.93],
      ];
      var markers = []; //存放覆蓋物的數(shù)組
      var infoWindow = new AMap.InfoWindow({ offset: new AMap.Pixel(0, -30) });
      for (var i = 0; i < lnglats.length; i++) {
        // 這就是去遍歷需要添加覆蓋物圖片的數(shù)組,讓他的每一項(xiàng)上面加一個(gè)圖片,只需要用到他的坐標(biāo)點(diǎn),和你要加的圖片,都可以隨意變換
        var lnglat = lnglats[i];
        var icons = require("../../assets/map/img.png");
        // 創(chuàng)建點(diǎn)實(shí)例
        var iconSmall = new AMap.Icon({
          size: new AMap.Size(25, 26), // 圖標(biāo)尺寸
          image: icons, // Icon的圖像
          // imageOffset: new AMap.Pixel(0, -60), // 圖像相對展示區(qū)域的偏移量,適于雪碧圖等
          imageSize: new AMap.Size(25, 26), // 根據(jù)所設(shè)置的大小拉伸或壓縮圖片
        });
        var marker = new AMap.Marker({
          position: new AMap.LngLat(lnglat[0], lnglat[1]),
          icon: iconSmall,
        });
        // marker.content = "我是第" + (i + 1) + "個(gè)Marker";
        var info = [];
        info.push(
          `<div style=" padding:7px 0px 6px 3px;  width:300px;color:black; font-size:18px">${
            "我是第" + i + 1 + "標(biāo)題"
          }</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 + "個(gè)文本標(biāo)記",
          anchor: "center", // 設(shè)置文本標(biāo)記錨點(diǎn)
          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), // 設(shè)置文本偏移量
        });
        this.labell[i] = label; // label.setMap(map);
      }
      function markerClick(e) {
        infoWindow.setContent(e.target.content);
        infoWindow.open(map, e.target.getPosition());
      }
      // 創(chuàng)建覆蓋物群組,并將 marker 傳給 OverlayGroup
      var overlayGroups = new AMap.OverlayGroup(markers);

      // 添加覆蓋物群組
      function addOverlayGroup() {
        map.add(overlayGroups);
      }
      addOverlayGroup(); //覆蓋物出現(xiàn)了。

      map.on("zoomend", () => {
        let zoom = map.getZoom(); // 獲取縮放級(jí)別
        console.log("zoom", zoom); //你可以打印縮放的層級(jí)
        for (let i = 0; i < this.labell.length; i++) {
          //剛開始的時(shí)候因?yàn)樯厦娑x的 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]);
          }
        }
      });
    },

?修改信息窗口背景顏色文章來源地址http://www.zghlxwxcb.cn/news/detail-736617.html

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

到了這里,關(guān)于高德地圖API使用~Web開發(fā)~從創(chuàng)建到具體功能展示的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • web JS高德地圖標(biāo)點(diǎn)、點(diǎn)聚合、自定義圖標(biāo)、自定義窗體信息、換膚等功能實(shí)現(xiàn)和高復(fù)用性組件封裝教程

    web JS高德地圖標(biāo)點(diǎn)、點(diǎn)聚合、自定義圖標(biāo)、自定義窗體信息、換膚等功能實(shí)現(xiàn)和高復(fù)用性組件封裝教程

    突然發(fā)現(xiàn)官方更新點(diǎn)聚合調(diào)用方式多包一層mapObj.plugin([“AMap.MarkerClusterer”],fn)來加載聚合功能,之前直接通過new方式不生效,具體可以看下第6點(diǎn)和示例代碼已做更新,感謝讀者反饋。 本文將講述如何利用高德地圖JS API實(shí)現(xiàn)地圖標(biāo)點(diǎn)、聚合點(diǎn)、自定義圖標(biāo)、點(diǎn)擊窗體信息展

    2024年02月04日
    瀏覽(30)
  • vue3使用高德地圖實(shí)現(xiàn)點(diǎn)擊獲取經(jīng)緯度以及搜索功能

    vue3使用高德地圖實(shí)現(xiàn)點(diǎn)擊獲取經(jīng)緯度以及搜索功能

    ?話不多說直接上干活 在此之前你需要有高德地圖的 key,這個(gè)自己去申請即可 1,首先需要在終端安裝 2,準(zhǔn)備一個(gè)容器 3,在需要使用的頁面引入剛才安裝的 4, 5,綁定input框 最后附上css代碼 ???????這個(gè)時(shí)候就已經(jīng)可以了

    2024年02月12日
    瀏覽(25)
  • 微信小程序使用高德地圖實(shí)現(xiàn)檢索定位附近周邊的POI功能示例

    微信小程序使用高德地圖實(shí)現(xiàn)檢索定位附近周邊的POI功能示例

    ? ? ? ?解壓下載的文件得到 amap-wx.js ,在創(chuàng)建的項(xiàng)目中,新建一個(gè)名為 libs 目錄,將 amap-wx.js 文件拷貝到 libs 的本地目錄下。 登錄微信公眾平臺(tái),在 \\\"設(shè)置\\\" → \\\"開發(fā)設(shè)置\\\" 中設(shè)置 request 合法域名,將? https://restapi.amap.com ?中添加進(jìn)去,如下圖所示: ? ?

    2024年02月03日
    瀏覽(109)
  • 微信小程序?qū)W習(xí)實(shí)錄5(H5嵌入小程序、map組件、地圖調(diào)起功能、騰訊百度高德導(dǎo)航頁、返回web-view頁)

    微信小程序?qū)W習(xí)實(shí)錄5(H5嵌入小程序、map組件、地圖調(diào)起功能、騰訊百度高德導(dǎo)航頁、返回web-view頁)

    創(chuàng)建容器 地圖家長 在H5頁面引入 //res.wx.qq.com/open/js/jweixin-1.6.0.js ,建議使用高版本; 點(diǎn)擊返回按鈕 調(diào)用微信小程序和H5通用API 判斷是否在微信小程序環(huán)境中 地圖調(diào)起,再次返回小程序頁 獲取H5傳遞參數(shù)的方式為: console.log(options) latitude和longitude必須為數(shù)字類型,不支持字符

    2024年02月07日
    瀏覽(98)
  • 高德地圖js api

    官網(wǎng):開發(fā) | 高德地圖API vue-amap 基于vue的高德地圖:組件 | vue-amap 注意事項(xiàng):地圖盒子一定要有寬高?。。。?! 在項(xiàng)目中安裝 default-passive-events,并引入 main.js 中, 這個(gè)包的作用是通過添加 passive,來阻止 touchstart 事件,讓頁面更加流暢。 事件使用 ***.on(‘事件名比如:(cli

    2024年02月04日
    瀏覽(22)
  • uniapp中打包Andiord app,在真機(jī)調(diào)試時(shí)地圖以及定位功能可以正常使用,打包成app后失效問題(高德地圖)

    uniapp中打包Andiord app,在真機(jī)調(diào)試時(shí)地圖以及定位功能可以正常使用,打包成app后失效問題(高德地圖)

    踩坑uniapp中打包Andiord app,在真機(jī)調(diào)試時(shí)地圖以及定位功能可以正常使用,打包成app后失效問題_uniapp真機(jī)調(diào)試高德地圖正常 打包apk高德地圖就不加載-CSDN博客 目前兩個(gè)項(xiàng)目,一個(gè)項(xiàng)目是從另一個(gè)項(xiàng)目里面分割出來的一整套完整的系統(tǒng),兩個(gè)項(xiàng)目 配置里面的高德地圖的key值都

    2024年01月24日
    瀏覽(23)
  • 申請高德地圖API【流程記錄】

    申請高德地圖API【流程記錄】

    現(xiàn)在我們需要使用高德地圖的api進(jìn)行功能的實(shí)現(xiàn),這就需要我們申請一個(gè)高德地圖的key 1.進(jìn)入官網(wǎng) 登錄賬號(hào) 點(diǎn)擊高德開放平臺(tái) | 高德地圖API (amap.com)。進(jìn)行登錄 選擇控制臺(tái) 注冊為開發(fā)者 填寫郵箱獲取驗(yàn)證碼后,進(jìn)行支付寶掃碼進(jìn)行實(shí)名認(rèn)證 注冊完成 點(diǎn)擊確認(rèn)即可 2.申請

    2024年01月17日
    瀏覽(21)
  • 高德地圖系列(三):vue項(xiàng)目利用高德地圖實(shí)現(xiàn)地址搜索功能

    高德地圖系列(三):vue項(xiàng)目利用高德地圖實(shí)現(xiàn)地址搜索功能

    目錄 第一章 效果圖 第二章 源代碼 高德地圖為我們提供了搜索聯(lián)想,以及搜索結(jié)果標(biāo)記,該案例已將基礎(chǔ)功能打通,后續(xù)我們肯定還會(huì)對功能有所修改,想實(shí)現(xiàn)自己想要的效果,基本上看高德地圖文檔對著改就好了(跟我們用別的工具一樣做即可)? 代碼描述如下: ?注意事

    2024年02月03日
    瀏覽(15)
  • vue 使用高德地圖實(shí)現(xiàn)自定義選取起點(diǎn)和終點(diǎn)功能,支持搜索地址跳轉(zhuǎn)定位(保姆級(jí)教程)

    vue 使用高德地圖實(shí)現(xiàn)自定義選取起點(diǎn)和終點(diǎn)功能,支持搜索地址跳轉(zhuǎn)定位(保姆級(jí)教程)

    1. 起點(diǎn)終點(diǎn)選擇 ?2. 地址搜索 ? 1. 獲取高德地圖key 1.1? 訪問高德地圖官網(wǎng)注冊完成后登錄,進(jìn)入控制臺(tái) ?1.2? 左側(cè) 應(yīng)用管理-我的應(yīng)用,點(diǎn)擊創(chuàng)建新應(yīng)用 1.3 點(diǎn)擊添加 ? 1.4 選擇 Web端(JS API)? 1.5 創(chuàng)建完成,得到key和安全密鑰 ? 2. 引入高德地圖npm包 提示:以下代碼全部在*.vu

    2024年02月04日
    瀏覽(19)
  • 高德API JS 高德地圖獲取多個(gè)坐標(biāo)點(diǎn)的中心點(diǎn)

    高德API JS 高德地圖獲取多個(gè)坐標(biāo)點(diǎn)的中心點(diǎn)

    我需要: 在地圖上展示多個(gè)地點(diǎn) 地圖縮放到合適的大小,要求剛好能顯示全部點(diǎn)位 邊緣留有一部分間隔。 做成如圖所示這樣。 經(jīng)過一下午的研究,弄出來了。 需要以下這些 AMap 的類庫: AMap.Bounds() 區(qū)域 AMap.LngLat() 點(diǎn)坐標(biāo)(基礎(chǔ)點(diǎn)位) AMap.setBounds() 設(shè)置地圖區(qū)域,這會(huì)自動(dòng)

    2024年02月07日
    瀏覽(220)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包