<template> <div class="mapContainer"> <!-- <div id="tMap" /> --> <div id="tMap" ref="tMap" /> </div> </template> <script> import { TDIMap, BaiduMap } from "@/utils/map.js"; import marki1 from "@/assets/map/i-1.png"; import marki2 from "@/assets/map/i-2.png"; import marki3 from "@/assets/map/i-3.png"; import marki4 from "@/assets/map/i-4.png"; import marki5 from "@/assets/map/i-5.png"; import marki6 from "@/assets/map/i-6.png"; import marki7 from "@/assets/map/i-7.png"; const $tdMap = null; export default { name: "TdMap", props: {}, data() { return { // lat: 30.930916, // lng: 118.344438, //118.17193,30.727538 lat: 30.927928, lng: 118.194855, mapLevel: 11, marArr: [ { lat: "118.174014", lng: "30.732226", name: "这里是景区名称", }, { lat: "118.194855", lng: "30.927928", name: "这里是景区名称", }, { lat: "118.104855", lng: "30.867928", name: "这里是景区名称", }, { lat: "118.134855", lng: "30.787928", name: "这里是景区名称", }, { lat: "118.144855", lng: "30.927928", name: "这里是景区名称", }, { lat: "118.167855", lng: "30.997928", name: "这里是景区名称", }, { lat: "118.178855", lng: "30.957928", name: "这里是景区名称", }, ], }; }, mounted() { this.initBaiDu(); }, methods: { initBaiDu() { const _this = this; BaiduMap.init().then((BMap) => { _this.map = new BMap.Map(_this.$refs.tMap); _this.map.centerAndZoom( new BMap.Point(_this.lng, _this.lat), _this.mapLevel ); _this.map.addControl( new BMap.MapTypeControl({ mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP], //图层类型+混合 // mapTypes: [BMAP_NORMAL_MAP], //图层类型 // anchor: BMAP_ANCHOR_TOP_LEFT, //切换按钮位置 }) ); _this.map.enableScrollWheelZoom(); //地图个性化 _this.map.setMapStyleV2({ styleId: "2ab34170567eb610404d09569833f505", }); //划区域 // setTimeout(() => { // _this.getBoundary(); // }, 2000); _this.getBoundary(); }); }, getBoundary() { const _this = this; let bdary = new BMap.Boundary(); bdary.get("安徽省芜湖市南陵县", function (rs) { //获取行政区域 _this.map.clearOverlays(); //清除地图覆盖物 let count = rs.boundaries.length; //行政区域的点有多少个 if (count === 0) { alert("未能获取当前输入行政区域"); return; } let pointArray = []; for (let i = 0; i < count; i++) { let ply = new BMap.Polygon(rs.boundaries[i], { strokeWeight: 3, strokeColor: "#13EBFF", strokeStyle: "dashed", fillColor: "#08304B", fillOpacity: 0.2, isBuildingMask: true, isPoiMask: true, isMapMask: true, }); //建立多边形覆盖物 _this.map.addOverlay(ply); //添加覆盖物 pointArray = pointArray.concat(ply.getPath()); } _this.map.setViewport(pointArray); //调整视野 //地图标点========================== const marArr = _this.marArr; let mark = ""; for (var i = 0; i < marArr.length; i++) { switch (i) { case 0: mark = marki1; break; case 1: mark = marki2; break; case 2: mark = marki3; break; case 3: mark = marki4; break; case 4: mark = marki5; break; case 5: mark = marki6; break; case 6: mark = marki7; break; default: mark = marki1; } if (marArr[i].lat && marArr[i].lng) { _this.myIcon = new BMap.Icon(mark, new BMap.Size(42, 50)); let marker = new BMap.Marker( new BMap.Point(marArr[i].lat, marArr[i].lng), { icon: _this.myIcon, } ); _this.map.addOverlay(marker); // marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 // 创建信息窗口 let scont = "<div class='tcont'>" + marArr[i].name + "</div>"; let opts = { width: 150, }; let infoWindow = new BMap.InfoWindow(scont, opts); // 点标记添加点击事件 let point = new BMap.Point(marArr[i].lat, marArr[i].lng); marker.addEventListener("click", function () { _this.map.openInfoWindow(infoWindow, point); // 开启信息窗口 }); } } }); }, }, }; </script> <style lang="scss" scoped> .mapContainer { width: 100%; z-index: 4; height: 100%; } #tMap { width: 100%; height: 100%; } </style>
// 地图========================= .BMap_pop .BMap_top { background: rgba(7,44,76, .8) !important; border: 0 !important; opacity: 0; } .BMap_pop .BMap_center { // width: 281px !important; border: 0 !important; background: rgba(7,44,76, .8) !important; opacity: 0; } .BMap_pop .BMap_bottom { border: 0 !important; background: rgba(7,44,76, .8) !important; opacity: 0; } .BMap_pop div:nth-child(3) { background: transparent !important; } .BMap_pop div:nth-child(3) div { border-radius: 3px; background: rgba(7,44,76, .8) !important; border: 0 !important; opacity: 0; } .BMap_pop div:nth-child(1) { // border-radius: 3px 0 0 0; // background: transparent !important; // border: 0 !important; } .BMap_pop div:nth-child(1) div { background: rgba(7,44,76, .8) !important; opacity: 0; } .BMap_pop div:nth-child(5) { border-radius: 0 0 0 3px; background: transparent !important; border: 0 !important; } .BMap_pop div:nth-child(5) div { border-radius: 3px; background: rgba(7,44,76, .8) !important; opacity: 0; } .BMap_pop div:nth-child(7) { background: transparent !important; // left: 226px; } .BMap_pop div:nth-child(7) div { border-radius: 3px; background: rgba(7,44,76, .8) !important; opacity: 0; } .BMap_bubble_content{ width: 150px !important; color: #fff !important; } /*替换箭头*/ img[src="http://api.map.baidu.com/images/iw3.png"] { // content: url('../images/iw3.png'); width:1px !important; height: 1px !important; } img[src="https://api.map.baidu.com/images/iw3.png"] { opacity: 0.7; // margin-top: -692px !important; filter: alpha(opacity=70); // content: url('../images/iw3.png'); width:1px !important; height: 1px !important; } img[src="http://api.map.baidu.com/images/iws3.png"] { opacity: 0; } img[src="http://api.map.baidu.com/images/iw_close1d3.gif"] { left: 165px !important; } //地图工具隐藏 .anchorBL { display: none; } .tcont { width: 150px; height: 50px; background: url("../assets/map/m-t-bg.png") no-repeat center center !important; background-size: 100% 100%; display: flex; align-items: center; justify-content: center; color: #13EBFF; z-index: 9; }