1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627 |
- <template>
- <div class="map-wrap">
- <div id="container" tabindex="0"></div>
- <div id="mask"></div>
- <div class="yun-wrap">
- <img class="yun yun1" src="../assets/img/云1.png" alt />
- </div>
- <div class="yun-wrap">
- <img class="yun yun2" src="../assets/img/云2.png" alt />
- </div>
- <div class="yun-wrap">
- <img class="yun yun3" src="../assets/img/云3.png" alt />
- </div>
- </div>
- </template>
- <script>
- import AMapLoader from '@amap/amap-jsapi-loader';
- import axios from 'axios';
- import {
- smallClassMap,
- rightScrollData,
- forestSample,
- alarmDataApi,
- financeBasePlant,
- financeBaseDetail,
- farmInfo,
- smallClassDetail,
- treePlant
- } from '@/service/index.js';
- import { mapMutations, mapState, mapGetters } from 'vuex';
- import { Message } from 'element-ui';
- export default {
- name: 'amap',
- data() {
- return {
- AMap: null,
- map: null,
- lngLat: [106.628201, 26.646694],
- adName: '',
- zoom: 8,
- adcode: '贵州省',
- mapLevel: 'province',
- parentId: '520000',
- province: '',
- districtExplorer: null,
- tipMarker: null,
- $tipMarkerContent: null,
- currentAreaNode: null,
- smallClassMapArr: [],
- smallMarker: null,
- treeCompData: {},
- treeSmallLabel: null,
- leftPage: 'forest',
- parentId: '',
- // 行政区
- polygon: null,
- // 城市标注点
- cityMarker: null,
- smallClassPolygon: null,
- forestMarker: null,
- rightScrollMarker: null,
- boundaryPolygon: null,
- eventMarker: null,
- markerData: {},
- cityMarkerArr: [],
- putPolygonData: [],
- townPolygons: [],
- treeCompMarkers: [],
- forestFarmData: [],
- districtList: [],
- selectData: {},
- districtData: {},
- streetData: {},
- smallMarkers: [],
- eventMarkers: [],
- treePlant: [],
- baseMarkers: []
- };
- },
- mounted() {
- // this.initMAp();
- this.initAMap();
- },
- watch: {
- '$store.state.addr.parentId': {
- handler(val) {
- if (this.$store.state.addr.mapLevel != 'street') {
- this.selectData = this.$store.state.addr.selectCity;
- this.districtData = this.$store.state.addr.selectDistrict;
- this.streetData = this.$store.state.addr.selectStreet;
- if (this.map) {
- this.parentId = val;
- this.switch2AreaNode(
- val,
- this.$store.state.addr.mapLevel,
- this.$store.state.addr.selectCity,
- this.leftPage
- );
- this.getDistrict(
- this.$store.state.addr.parentName,
- this.$store.state.addr.mapLevel
- );
- // this.$store.dispatch('searchArea', {
- // parentId: val,
- // name: this.$store.state.addr.parentName,
- // mapLevel: this.$store.state.addr.mapLevel
- // });
- }
- }
- }
- },
- '$store.state.addr.selectStreet'(val) {
- if (val.label && val.value && val.areaId) {
- this.map.remove(this.polygon);
- this.map.setCity(val.label);
- // that.map.setZoomAndCenter(13, centerLanLatArr, false, 12);
- // this.$store.dispatch('getSmallClassMap', {
- // cityId: this.$store.state.addr.selectCity.areaId,
- // countyId: this.$store.state.addr.selectDistrict.areaId,
- // townId: this.$store.state.addr.selectStreet.areaId
- // });
- // that.map.setBounds(townPolygon.getBounds(), null, null, true);
- if (this.leftPage === 'forest') {
- this.addForestPolygon(this.smallClassMapArr);
- this.getForestSample(this.leftPage);
- } else if (this.leftPage === 'treeSpecies') {
- this.addTreeSpeciesPolygon(this.smallClassMapArr);
- this.getRightScrollData(this.leftPage);
- } else if (this.leftPage === 'economics') {
- this.getEconomics(this.smallClassMapArr);
- } else if (this.leftPage === 'event') {
- this.getEven();
- }
- }
- // this.putPolygon(val)
- },
- '$store.state.addr.page': {
- handler(val) {
- this.leftPage = val;
- if (!this.parentId) {
- this.parentId = '520000';
- this.$store.state.addr.parentName = '贵州省';
- }
- if (this.parentId) {
- this.getSmallClass();
- this.mapPolygon();
- this.switch2AreaNode(
- this.parentId,
- this.$store.state.addr.mapLevel,
- this.$store.state.addr.selectStreet,
- this.leftPage
- );
- this.getDistrict(
- this.$store.state.addr.parentName,
- this.$store.state.addr.mapLevel
- );
- }
- }
- },
- // '$store.state.addr.smallClassMapArr': {
- // deep: true,
- // immediate: true,
- // handler: function (val, oldVal) {
- // console.log();
- // if (this.$store.state.addr.mapLevel == 'province') {
- // } else {
- // this.smallClassMapArr = val;
- // if (this.smallClassMapArr) {
- // if (this.$store.state.addr.mapLevel === 'district') {
- // if (this.leftPage === 'forest') {
- // this.addForestPolygon(this.smallClassMapArr);
- // } else if (this.leftPage === 'treeSpecies') {
- // this.addTreeSpeciesPolygon(this.smallClassMapArr);
- // } else if (this.leftPage === 'event') {
- // this.getEven(this.smallClassMapArr);
- // } else if (this.leftPage === 'economics') {
- // this.getEconomics(this.smallClassMapArr);
- // }
- // }
- // }
- // }
- // }
- // },
- '$store.state.addr.smallClassSearch': {
- deep: true,
- immediate: true,
- handler: function (val, oldVal) {
- let _this = this;
- if (val) {
- if (val.longitude && val.latitude && !val.name) {
- let lanLatArr = [val.longitude, val.latitude];
- let smallLabel =
- "<div class='info-small'>" +
- "<h5 class='marker-title'>" +
- val.countyName +
- '-' +
- val.smallNumber +
- '</h5>' +
- "<div class='marker-content'>" +
- '' +
- '<p>小班号:' +
- val.smallNumber +
- '</p>' +
- '<p>样地数:' +
- val.sampleCount +
- '</p>' +
- '<p>小班蓄积量:' +
- val.smallClassStock +
- '(立方米)' +
- '</p>' +
- '<p>小班占地面积:' +
- val.landArea +
- '(亩)' +
- '</p>' +
- '<p>小班树种组成:' +
- val.treeComp +
- '</p>' +
- '<p>所在位置:' +
- val.cityName +
- val.countyName +
- val.townName;
- '</p>' + '</div>' + '</div>';
- this.smallMarker = new AMap.Marker({
- map: this.map,
- position: lanLatArr,
- icon: require('@/assets/img/small-marker.png'),
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 0),
- zIndex: 9999
- });
- this.smallMarker.setLabel({
- direction: 'right',
- offset: new AMap.Pixel(-170, -115), //设置文本标注偏移量
- content: smallLabel //设置文本标注内容
- });
- // this.smallMarker.setMap(this.map);
- // this.map.add(this.smallMarker);
- this.smallMarkers.push(_this.smallMarker);
- } else if (val.name == false && this.smallMarker) {
- this.map.on('rightclick', function (e) {
- _this.map.remove(_this.smallMarkers);
- });
- }
- }
- }
- },
- '$store.state.addr.eventData': {
- deep: true,
- immediate: true,
- handler: function (val, oldVal) {
- let _this = this;
- if (val) {
- if (val.longitude && val.latitude && !val.name) {
- let lanLatArr = [val.longitude, val.latitude];
- let baseIcon = '';
- let fireIcon = require('@/assets/img/fire.png');
- let cutTreeIcon = require('@/assets/img/cutTree.png');
- let insectpestIcon = require('@/assets/img/insectpest.png');
- if (val.eventType == 1) {
- val.eventContLabel = '火灾';
- baseIcon = fireIcon;
- } else if (val.eventType == 2) {
- val.eventContLabel = '砍伐';
- baseIcon = cutTreeIcon;
- } else if (val.eventType == 3) {
- val.eventContLabel = '病虫害';
- baseIcon = insectpestIcon;
- } else if (val.eventType == 4) {
- val.eventContLabel = '偷盗林木';
- }
- let treeSmallLabel =
- "<div class='info-small'>" +
- "<h5 class='marker-title'>历史事件" +
- '</h5>' +
- "<div class='marker-content'>" +
- '<p>事件类型:' +
- val.eventContLabel +
- '</p>' +
- '<p>上报时间:' +
- val.createTime +
- '</p>' +
- '<p>上报人:' +
- val.createBy +
- '</p>' +
- '<p>位置:' +
- val.cityName +
- val.countyName +
- val.townName +
- val.villageName +
- '</p>' +
- '</div>' +
- '</div>';
- this.eventMarker = new AMap.Marker({
- map: this.map,
- position: lanLatArr,
- icon: baseIcon,
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 0),
- zIndex: 9999
- });
- this.eventMarker.setLabel({
- direction: 'top',
- offset: new AMap.Pixel(-10, 0), //设置文本标注偏移量
- content: treeSmallLabel //设置文本标注内容
- });
- this.eventMarkers.push(this.eventMarker);
- // this.map.add(this.eventMarker);
- } else if (val.name == false && this.eventMarker) {
- this.map.on('rightclick', function (e) {
- _this.map.remove(_this.eventMarkers);
- });
- }
- }
- }
- },
- '$store.state.addr.baseDetail': {
- deep: true,
- immediate: true,
- handler: function (val, oldVal) {
- let _this = this;
- if (val) {
- if (val.baseLongitude && val.baseLatitude && !val.name) {
- let lanLatArr = [val.baseLongitude, val.baseLatitude];
- let treeSmallLabel =
- "<div class='info-small'>" +
- "<h5 class='marker-title'>" +
- val.baseName +
- '</h5>' +
- "<div class='marker-content'>" +
- '<p>基地名称:' +
- val.baseName +
- '</p>' +
- '<p>种植/养殖/加工作物:' +
- val.cropName +
- '</p>' +
- '<p>占地面积:' +
- val.baseArea +
- '亩' +
- '</p>' +
- '<p>位置:' +
- val.cityName +
- val.countyName +
- val.townName +
- '</p>' +
- '</div>' +
- '</div>';
- this.baseMarker = new AMap.Marker({
- map: this.map,
- position: lanLatArr,
- icon: require('@/assets/img/small-marker.png'),
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 0),
- zIndex: 9999
- });
- this.baseMarker.setLabel({
- direction: 'top',
- offset: new AMap.Pixel(0, 0), //设置文本标注偏移量
- content: treeSmallLabel //设置文本标注内容
- });
- this.baseMarkers.push(_this.baseMarker);
- } else if (val.name == false && this.baseMarker) {
- this.map.on('rightclick', function (e) {
- _this.map.remove(_this.baseMarkers);
- });
- }
- }
- }
- }
- },
- computed: {
- ...mapGetters(['vuexCityList', 'vuexDistrictList', 'vuexStreetList']),
- ...mapState(['selectCity', 'selectDistrict', 'selectStreet'])
- },
- created() {
- this.getTreePlant();
- },
- methods: {
- ...mapMutations([
- 'changeSelectCity',
- 'changeSelectDistrict',
- 'changeSelectStreet',
- 'changeSelectAddr'
- ]),
- initAMap() {
- let _this = this;
- window._AMapSecurityConfig = {
- securityJsCode: 'e6666dfe93e7d3c6f3a5dc35cad6befb' // 密钥
- };
- AMapLoader.load({
- key: 'f79d862df9288710e3dce6591af9dff1', // 申请好的Web端开发者Key,首次调用 load 时必填
- version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
- Loca: {
- version: '2.0'
- },
- AMapUI: {
- // 是否加载 AMapUI,缺省不加载
- version: '1.1', // AMapUI 缺省 1.1
- plugins: ['overlay/SimpleMarker'] // 需要加载的 AMapUI ui插件
- }
- }).then((AMap) => {
- _this.AMap = AMap;
- _this.map = new AMap.Map('container', {
- //设置地图容器id
- viewMode: '3D', //是否为3D地图模式
- terrain: true,
- zoom: _this.zoom, //初始化地图级别
- center: _this.lngLat, //初始化地图中心点位置
- pitch: 45,
- // layers: [
- // new AMap.TileLayer.Satellite(),
- // new AMap.TileLayer.RoadNet()
- // ],
- features: ['road', 'bg', 'building'] //地图要素
- });
- AMapUI.load(
- ['ui/geo/DistrictExplorer', 'lib/$'],
- function (DistrictExplorer) {
- _this.loadMapData(DistrictExplorer, $);
- }
- );
- var wms = new AMap.TileLayer.WMTS({
- url: 'http://t4.tianditu.gov.cn/img_w/wmts',
- blend: false,
- tileSize: 256,
- params: {
- Layer: 'img',
- Version: '1.0.0',
- Format: 'tiles',
- // TileMatrixSet: 'EPSG:3857',
- TileMatrixSet: 'w',
- STYLE: 'default',
- tk: '0864c66cc5f141fc17511169957aad51'
- }
- });
- wms.setMap(_this.map);
- // this.$nextTick(() => {
- // // this.getDistrict()
- // });
- });
- },
- getDistrict(adName, mapLevel) {
- if (mapLevel === 'street') {
- mapLevel = 'district';
- }
- switch (adName) {
- case '黔西南州':
- adName = '黔西南布依族苗族自治州';
- break;
- case '黔东南州':
- adName = '黔东南苗族侗族自治州';
- break;
- case '黔南州':
- adName = '黔南布依族苗族自治州';
- break;
- }
- let that = this;
- this.map.clearMap();
- AMap.plugin(['AMap.DistrictSearch'], function () {
- var district = new AMap.DistrictSearch({
- // 返回行政区边界坐标等具体信息
- extensions: 'all',
- // 设置查询行政区级别为 区 (district)
- level: mapLevel,
- // 显示下级行政区级数,1表示返回下一级行政区
- subdistrict: 1
- });
- district.search(adName, function (status, result) {
- 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)
- ];
- if (result.districtList != undefined) {
- var holes = result.districtList[0].boundaries;
- var pathArray = [outer];
- pathArray.push.apply(pathArray, holes);
- that.polygon = new AMap.Polygon({
- pathL: pathArray,
- map: that.map,
- strokeColor: '#00eeff',
- strokeWeight: 1,
- fillColor: '#0c1b05', // 遮罩背景色
- fillOpacity: 0.8,
- height: 10000
- });
- that.polygon.setPath(pathArray);
- // that.map.add(that.polygon);
- var cityArr = result.districtList[0].districtList;
- that.districtList = cityArr;
- for (let i = 0; i < cityArr.length; i++) {
- that.cityMarker = new AMap.Text({
- //c城市指示标
- text: cityArr[i].name,
- zIndex: 1,
- map: that.map,
- anchor: 'center', // 设置文本标记锚点
- style: {
- padding: '0px 6px',
- color: '#fff',
- border: 'none',
- fontSize: '12px',
- 'background-color': '#E6810C'
- },
- position: [cityArr[i].center.lng, cityArr[i].center.lat]
- });
- // that.map.add(that.cityMarker);
- that.cityMarkerArr.push(that.cityMarker);
- }
- } else {
- return false;
- }
- });
- });
- },
- loadMapData(DistrictExplorer, $) {
- let that = this;
- //创建一个实例
- that.districtExplorer = window.districtExplorer = new DistrictExplorer({
- eventSupport: true, //打开事件支持
- bubble: true,
- map: that.map
- });
- //当前聚焦的区域
- this.$tipMarkerContent = $('<div class="tipMarker top"></div>');
- this.tipMarker = new AMap.Marker({
- content: this.$tipMarkerContent.get(0),
- offset: new AMap.Pixel(0, 0),
- bubble: true
- });
- //监听feature的hover事件
- this.districtExplorer.on(
- 'featureMouseout featureMouseover',
- (e, feature) => {
- this.toggleHoverFeature(
- feature,
- e.type === 'featureMouseover',
- e.originalEvent ? e.originalEvent.lnglat : null
- );
- }
- );
- //监听鼠标在feature上滑动
- this.districtExplorer.on('featureMousemove', (e) => {
- //更新提示位置
- this.tipMarker.setPosition(e.originalEvent.lnglat);
- });
- var adName = that.adcode; //贵州省
- var mapLevel = that.mapLevel;
- var adcode = '520000';
- //feature被点击
- this.districtExplorer.on('featureClick', (e, feature) => {
- const props = feature.properties;
- for (let item of this.forestFarmData) {
- if (props.name == item.cityName || props.name == item.countyName) {
- mapLevel = props.level;
- adName = props.name;
- this.$store.dispatch('searchArea', {
- parentId: props.adcode,
- name: props.name,
- mapLevel: props.level
- });
- let valCode = props.adcode + '000000';
- let areaId = '';
- this.vuexCityList.forEach((item) => {
- if (valCode == item.areaCode) {
- areaId = item.areaId;
- }
- });
- this.vuexDistrictList.forEach((item) => {
- if (valCode == item.areaCode) {
- areaId = item.areaId;
- }
- });
- if (props.level == 'city') {
- this.changeSelectCity({
- value: valCode,
- label: props.name,
- areaId: areaId
- });
- } else if (props.level == 'district') {
- this.changeSelectDistrict({
- value: valCode,
- label: props.name,
- areaId: areaId
- });
- }
- }
- }
- });
- this.map.on('mousewheel', (e) => {
- // console.log(e.lnglat.lng, e.lnglat.lat);
- var zoom = this.map.getZoom(); //获取当前地图级别
- if (
- zoom > '10.5' &&
- zoom < '11' &&
- this.$store.state.addr.mapLevel == 'street'
- ) {
- if (this.districtData.value) {
- let districtCode = this.districtData.value.substring(0, 6);
- this.$store.dispatch('searchArea', {
- parentId: districtCode,
- name: this.districtData.label,
- mapLevel: 'district'
- });
- }
- }
- if (
- zoom > '9' &&
- zoom < '9.5' &&
- this.$store.state.addr.mapLevel == 'district'
- ) {
- if (this.selectData.value) {
- let districtCode = this.selectData.value.substring(0, 6);
- this.$store.dispatch('searchArea', {
- parentId: districtCode,
- name: this.selectData.label,
- mapLevel: 'city'
- });
- }
- }
- if (
- zoom > '7.6' &&
- zoom < '7.9' &&
- this.$store.state.addr.mapLevel == 'city'
- ) {
- this.$store.dispatch('searchArea', {
- parentId: '520000',
- name: '贵州省',
- mapLevel: 'province'
- });
- }
- });
- that.getDistrict(adName, mapLevel);
- this.switch2AreaNode(adcode);
- },
- //根据Hover状态设置相关样式
- toggleHoverFeature(feature, isHover, position) {
- if (feature.properties.subFeatureIndex != null) {
- this.tipMarker.setMap(isHover ? this.map : null);
- if (!feature) {
- return;
- }
- const props = feature.properties;
- if (isHover) {
- //更新提示内容
- this.$tipMarkerContent.html(props.name);
- //更新位置
- this.tipMarker.setPosition(position || props.center);
- }
- //更新相关多边形的样式
- const polys = this.districtExplorer.findFeaturePolygonsByAdcode(
- props.adcode
- );
- polys.forEach((elemnt) => {
- elemnt.setOptions({
- fillColor: '#0dbc79',
- fillOpacity: isHover ? 0.5 : 0
- });
- });
- }
- },
- //绘制某个区域的边界
- renderAreaPolygons(areaNode) {
- //更新地图视野
- this.map.setBounds(areaNode.getBounds(), null, null, false);
- this.getSmallClass();
- this.mapPolygon();
- //清除已有的绘制内容
- this.districtExplorer.clearFeaturePolygons();
- //绘制子区域
- this.districtExplorer.renderSubFeatures(areaNode, () => {
- return {
- cursor: 'default',
- bubble: true,
- strokeColor: 'yellow', //线颜色
- strokeOpacity: 1, //线透明度
- strokeWeight: 2, //线宽
- fillOpacity: 0 //填充透明度
- };
- });
- //绘制父区域
- this.districtExplorer.renderParentFeature(areaNode, {
- cursor: 'default',
- bubble: true,
- strokeColor: '#00eeff', //线颜色
- strokeOpacity: 1, //线透明度
- strokeWeight: 2, //线宽
- fillOpacity: 0 //填充透明度
- });
-
- },
- //切换区域后刷新显示内容
- refreshAreaNode(areaNode) {
- this.districtExplorer.setHoverFeature(null);
- this.renderAreaPolygons(areaNode);
- },
- //切换区域
- switch2AreaNode(adcode, mapLevel, selectStreet, page, callback) {
- // if (
- // this.currentAreaNode &&'' + this.currentAreaNode.getAdcode() === '' + adcode
- // ) {
- // return;
- // }
- this.loadAreaNode(adcode, (error, areaNode) => {
- if (error) {
- if (callback) {
- callback(error);
- }
- return;
- }
- this.currentAreaNode = areaNode;
- if (
- mapLevel == 'city' ||
- mapLevel == undefined ||
- mapLevel == 'province'
- ) {
- this.setMarker();
- }
- this.getrjx(adcode, selectStreet);
- //设置当前使用的定位用节点
- this.districtExplorer.setAreaNodesForLocating([this.currentAreaNode]);
- this.refreshAreaNode(areaNode);
- if (callback) {
- callback(null, areaNode);
- }
- });
- },
- // 加载区域
- loadAreaNode(adcode, callback) {
- this.districtExplorer.loadAreaNode(adcode, (error, areaNode) => {
- if (error) {
- if (callback) {
- callback(error);
- }
- window.console.error(error);
- return;
- }
- if (callback) {
- callback(null, areaNode);
- }
- });
- },
- getSmallClass() {
- let params = {
- cityId: this.$store.state.addr.selectCity.areaId,
- countyId: this.$store.state.addr.selectDistrict.areaId,
- // townId: this.$store.state.addr.selectStreet.areaId
- };
- smallClassMap(params).then((res) => {
- if (res.code == 200) {
- this.smallClassMapArr = res.rows;
- if (this.leftPage === 'forest') {
- this.addForestPolygon(this.smallClassMapArr);
- } else if (this.leftPage === 'treeSpecies') {
- this.addTreeSpeciesPolygon();
- } else if (this.leftPage === 'economics') {
- this.getEconomics(this.smallClassMapArr);
- }
- }
- });
- },
- mapPolygon() {
- if (this.smallClassMapArr) {
- if (this.leftPage === 'forest') {
- this.addForestPolygon(this.smallClassMapArr);
- if (this.$store.state.addr.mapLevel == 'district') {
- this.getForestSample(this.leftPage);
- }
- } else if (this.leftPage === 'treeSpecies') {
- this.addTreeSpeciesPolygon();
- if (this.$store.state.addr.mapLevel == 'district') {
- this.getRightScrollData(this.leftPage);
- }
- } else if (this.leftPage === 'economics') {
- this.getEconomics(this.smallClassMapArr);
- } else if (this.leftPage === 'event') {
- this.getEven();
- }
- }
- },
- addForestPolygon(smallClassMapArr) {
- let that = this;
- if (smallClassMapArr) {
- smallClassMapArr.forEach((item) => {
- let polyData = JSON.parse(item.mapInfo);
- for (let elementLs in polyData.features) {
- let smallClassPolygon = new AMap.Polygon({
- map: that.map,
- path: polyData.features[elementLs].geometry.coordinates,
- strokeOpacity: 1,
- fillOpacity: 0,
- strokeColor: 'red',
- strokeWeight: 2,
- zIndex: 999,
- cursor: 'pointer'
- });
- if (item.longitude && item.latitude) {
- var lanLatArr = [];
- lanLatArr = [item.longitude, item.latitude];
- if (this.$store.state.addr.mapLevel == 'district') {
- let smallClassN = new AMap.Text({
- map: this.map,
- position: lanLatArr,
- text: item.smallNumber,
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 8),
- style: {
- 'background-color': 'transparent',
- border: 'none',
- color: '#05dfff',
- fontSize: '12px'
- }
- });
- }
- smallClassPolygon.on('click', (e) => {
- let smallLabel =
- "<div class='info-small'>" +
- "<h5 class='marker-title'>" +
- item.countyName +
- '-' +
- item.smallNumber +
- '</h5>' +
- "<div class='marker-content'>" +
- '<p>小班号:' +
- item.smallNumber +
- '</p>' +
- '<p>样地数:' +
- item.sampleCount +
- '</p>' +
- '<p>小班蓄积量:' +
- item.smallClassStock +
- '(立方米)' +
- '</p>' +
- '<p>小班占地面积:' +
- item.landArea +
- '(亩)' +
- '</p>' +
- '<p>小班树种组成:' +
- item.treeComp +
- '</p>' +
- '<p>所在位置:' +
- item.cityName +
- item.countyName +
- item.townName;
- '</p>' + '</div>' + '</div>';
- that.smallMarker = new AMap.Marker({
- position: lanLatArr,
- icon: require('@/assets/img/small-marker.png'),
- anchor: 'bottom-center',
- offset: new AMap.Pixel(-5, -6)
- });
- that.smallMarker.setLabel({
- direction: 'right',
- offset: new AMap.Pixel(-170, -115), //设置文本标注偏移量
- content: smallLabel //设置文本标注内容
- });
- that.smallMarker.setMap(that.map);
- smallClassPolygon.setOptions({
- fillOpacity: 0.7,
- fillColor: 'yellow'
- });
- });
- smallClassPolygon.on('mouseout', () => {
- if (that.smallMarker) {
- that.smallMarker.setMap(null);
- that.smallMarker = null;
- }
- smallClassPolygon.setOptions({
- fillOpacity: 0,
- fillColor: '#ccebc5'
- });
- });
- }
- }
- // this.map.add(that.smallClassPolygon);
- });
- }
- },
- // 获取样地数据
- getForestSample(page) {
- forestSample({
- cityId: this.$store.state.addr.selectCity.areaId,
- countyId: this.$store.state.addr.selectDistrict.areaId,
- townId: this.$store.state.addr.selectStreet.areaId
- }).then((res) => {
- let sampleMarker = require('@/assets/img/sample-marker.png');
- let iconMeta = [28, 28];
- this.setMarkers(res, sampleMarker, iconMeta, page);
- });
- },
- // 添加地图标注(样地、树种)
- setMarkers(res, sampleMarker, iconMeta, page) {
- let _this = this;
- if (this.forestMarker) {
- this.forestMarker.setMap(null);
- this.forestMarker = null;
- }
- this.markerData = res;
- let iconMarker = sampleMarker;
- let iconMetaSet = iconMeta;
- let sampleIcon = new AMap.Icon({
- size: new AMap.Size(iconMetaSet[0], iconMetaSet[1]), // 图标尺寸
- image: iconMarker,
- imageSize: new AMap.Size(iconMetaSet[0], iconMetaSet[1]) // 根据所设置的大小拉伸或压缩图片
- });
- this.markerData.rows.forEach((item) => {
- let lngLat = [item.longitude, item.latitude];
- if (item.longitude && item.latitude) {
- this.forestMarker = new AMap.Marker({
- map: _this.map,
- position: lngLat,
- icon: sampleIcon,
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, -18)
- });
- if (page === 'forest') {
- this.forestMarker.setLabel({
- direction: 'right',
- offset: new AMap.Pixel(-8, 0), //设置文本标注偏移量
- content: `<div style="color:#05dfff">${item.smallNumber}-${item.sampleNumber}</div>` //设置文本标注内容
- });
- let clickLabel =
- "<div class='info-small'>" +
- "<h5 class='marker-title'>" +
- item.smallNumber +
- '-' +
- item.sampleNumber +
- '</h5>' +
- "<div class='marker-content'>" +
- '<p>样地号:' +
- item.sampleNumber +
- '</p>' +
- '<p>所属小班:' +
- item.smallNumber +
- '</p>' +
- '<p>样地蓄积:' +
- item.landStock +
- '</p>' +
- '<p>样地株数:' +
- item.landNumber +
- '</p>' +
- '</div>' +
- '</div>';
- let lastMarker = new AMap.Marker({
- position: lngLat,
- icon: sampleIcon,
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, -18)
- });
- lastMarker.setLabel({
- zIndex: 120,
- direction: 'top',
- offset: new AMap.Pixel(-4, 0), //设置文本标注偏移量
- content: clickLabel //设置文本标注内容
- });
- this.forestMarker.on('click', function (e) {
- _this.map.add(lastMarker);
- });
- this.forestMarker.on('mouseout', function (e) {
- _this.map.remove(lastMarker);
- });
- } else if (page === 'treeSpecies') {
- this.forestMarker.setLabel({
- direction: 'top',
- offset: new AMap.Pixel(0, 8), //设置文本标注偏移量
- content: `<div class="label-treecomp">${item.treeComp}<span class="smallH">${item.smallNumber}</span></div>` //设置文本标注内容
- });
- }
- // this.map.add(this.forestMarker);
- }
- });
- },
- addTreeSpeciesPolygon() {
- let that = this;
- that.smallClassMapArr.forEach((item) => {
- let polyData = JSON.parse(item.mapInfo);
- for (let elementLs in polyData.features) {
- let polygonColor = '';
- this.treePlant.forEach((tree) => {
- if (tree.plantName == item.superTree && item.superTree == '硬阔') {
- polygonColor = '#00da85';
- } else if (
- tree.plantName == item.superTree &&
- item.superTree == '软阔'
- ) {
- polygonColor = '#009bfd';
- } else if (
- tree.plantName == item.superTree &&
- item.superTree == '杉木'
- ) {
- polygonColor = '#eca62d';
- } else if (
- tree.plantName == item.superTree &&
- item.superTree == '马尾松'
- ) {
- polygonColor = '#b82dec';
- }
- });
- let polygon = new AMap.Polygon({
- map: that.map,
- path: polyData.features[elementLs].geometry.coordinates,
- strokeOpacity: 1,
- fillOpacity: 0.6,
- strokeColor: 'red',
- strokeWeight: 2,
- zIndex: 999,
- cursor: 'pointer',
- fillColor: polygonColor
- });
- if (item.longitude && item.latitude) {
- var lanLatArr = [];
- polygon.on('click', (e) => {
- lanLatArr = [item.longitude, item.latitude];
- let treeSmallLabel =
- "<div class='info-small'>" +
- "<h5 class='marker-title'>小班" +
- item.smallNumber +
- '</h5>' +
- "<div class='marker-content'>" +
- '<p>树种组成:' +
- item.treeComp +
- '</p>' +
- '<p>树种结构:' +
- item.treeStruct +
- '</p>' +
- '<p>优势树种:' +
- item.superTree +
- '</p>' +
- '<p>优势树种平均胸径:' +
- item.superTreeDbh +
- '厘米' +
- '</p>' +
- '<p>优势树种平均高:' +
- item.superTreeHigh +
- '米' +
- '</p>' +
- '<p>位置:' +
- item.countyName +
- item.townName +
- item.villageName +
- '</p>' +
- '</div>' +
- '</div>';
- that.smallMarker = new AMap.Marker({
- map: that.map,
- position: lanLatArr,
- icon: require('@/assets/img/small-marker.png'),
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 0)
- });
- that.smallMarker.setLabel({
- direction: 'top',
- offset: new AMap.Pixel(-10, 0), //设置文本标注偏移量
- content: treeSmallLabel //设置文本标注内容
- });
- that.treeCompMarkers.push(that.smallMarker);
- });
- polygon.on('mouseout', () => {
- that.map.remove(that.treeCompMarkers);
- });
- }
- }
- });
- },
- // 获取小班列表
- getRightScrollData(page) {
- rightScrollData({
- cityId: this.$store.state.addr.selectCity.areaId,
- countyId: this.$store.state.addr.selectDistrict.areaId,
- townId: this.$store.state.addr.selectStreet.areaId
- }).then((res) => {
- let sampleMarker = require('@/assets/img/sanjiaod.png');
- let iconMeta = [16, 10];
- this.setMarkers(res, sampleMarker, iconMeta, page);
- });
- },
- // 事件信息
- getEven() {
- let _this = this;
- alarmDataApi().then((res) => {
- res.data.forEach((item) => {
- let lanLatArr = [item.longitude, item.latitude];
- let baseIcon = '';
- let fireIcon = require('@/assets/img/fire.png');
- let cutTreeIcon = require('@/assets/img/cutTree.png');
- let insectpestIcon = require('@/assets/img/insectpest.png');
- if (item.eventType == 1) {
- item.eventContLabel = '火灾';
- baseIcon = fireIcon;
- } else if (item.eventType == 2) {
- item.eventContLabel = '砍伐';
- baseIcon = cutTreeIcon;
- } else if (item.eventType == 3) {
- item.eventContLabel = '病虫害';
- baseIcon = insectpestIcon;
- }
- _this.smallMarker = new AMap.Marker({
- map: _this.map,
- position: lanLatArr,
- icon: baseIcon,
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 0),
- zIndex: 999
- });
- _this.smallMarker.on('click', function (e) {
- let treeSmallLabel =
- "<div class='info-small'>" +
- "<h5 class='marker-title'>最新事件" +
- '</h5>' +
- "<div class='marker-content'>" +
- '<p>事件类型:' +
- item.eventContLabel +
- '</p>' +
- '<p>上报时间:' +
- item.createTime +
- '</p>' +
- '<p>上报人:' +
- item.createBy +
- '</p>' +
- '<p>位置:' +
- item.cityName +
- item.countyName +
- item.townName +
- item.villageName +
- '</p>' +
- '</div>' +
- '</div>';
- _this.eventMarker = new AMap.Marker({
- position: lanLatArr,
- icon: baseIcon,
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 0),
- zIndex: 999
- });
- _this.eventMarker.setLabel({
- direction: 'top',
- offset: new AMap.Pixel(-10, 0), //设置文本标注偏移量
- content: treeSmallLabel //设置文本标注内容
- });
- _this.map.add(_this.eventMarker);
- });
- _this.smallMarker.on('mouseout', function (e) {
- if (!_this.eventMarker) {
- return;
- } else {
- _this.map.remove(_this.eventMarker);
- }
- });
- });
- });
- },
- // 林业经济
- getEconomics() {
- this.smallClassMapArr.forEach((item) => {
- let polyData = JSON.parse(item.mapInfo);
- for (let elementLs in polyData.features) {
- let polygon = new AMap.Polygon({
- map: this.map,
- path: polyData.features[elementLs].geometry.coordinates,
- strokeOpacity: 1,
- fillOpacity: 0,
- strokeColor: 'red',
- strokeWeight: 2,
- zIndex: 999,
- cursor: 'pointer'
- });
- polygon.on('mouseover', (e) => {
- polygon.setOptions({
- fillOpacity: 0.7,
- fillColor: 'yellow'
- });
- });
- polygon.on('mouseout', () => {
- polygon.setOptions({
- fillOpacity: 0,
- fillColor: '#ccebc5'
- });
- });
- }
- });
- financeBasePlant({
- cityId: this.$store.state.addr.selectCity.areaId,
- countyId: this.$store.state.addr.selectDistrict.areaId,
- townId: this.$store.state.addr.selectStreet.areaId
- }).then((res) => {
- let economicsList = [];
- let baseList = [];
- res.rows.forEach((element) => {
- economicsList.push({
- longitude: element.cateLongitude,
- latitude: element.cateLatitude,
- icon: element.image
- });
- baseList.push({
- baseId: element.baseId,
- baseName: element.baseName,
- longitude: element.baseLongitude,
- latitude: element.baseLatitude
- });
- });
- economicsList.forEach((item) => {
- let lanLatArr = [item.longitude, item.latitude];
- let beeIcon = item.icon;
- let iconMeta = [82, 26];
- let sampleIcon = new AMap.Icon({
- size: new AMap.Size(iconMeta[0], iconMeta[1]), // 图标尺寸
- image: beeIcon,
- imageSize: new AMap.Size(iconMeta[0], iconMeta[1]) // 根据所设置的大小拉伸或压缩图片
- });
- this.smallMarker = new AMap.Marker({
- position: lanLatArr,
- icon: sampleIcon,
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 0)
- });
- this.smallMarker.setMap(this.map);
- });
- baseList.forEach((element) => {
- let lanLatArr = [element.longitude, element.latitude];
- let baseIcon = require('@/assets/img/postion.png');
- let iconMeta = [20, 29];
- let sampleIcon = new AMap.Icon({
- size: new AMap.Size(iconMeta[0], iconMeta[1]), // 图标尺寸
- image: baseIcon,
- imageSize: new AMap.Size(iconMeta[0], iconMeta[1]) // 根据所设置的大小拉伸或压缩图片
- });
- let baseMarker = new AMap.Marker({
- map: this.map,
- position: lanLatArr,
- icon: sampleIcon,
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 0)
- });
- baseMarker.setLabel({
- direction: 'right',
- offset: new AMap.Pixel(0, 0), //设置文本标注偏移量
- content: `<div>${element.baseName}</div>` //设置文本标注内容
- });
- baseMarker.on('click', function (e) {
- financeBaseDetail({ baseId: element.baseId }).then((res) => {
- if (res.code == 200) {
- let treeSmallLabel =
- "<div class='info-small'>" +
- "<h5 class='marker-title'>" +
- res.data.baseName +
- '</h5>' +
- "<div class='marker-content'>" +
- '<p>基地名称:' +
- res.data.baseName +
- '</p>' +
- '<p>种植/养殖/加工作物:' +
- res.data.cropName +
- '</p>' +
- '<p>占地面积:' +
- res.data.baseArea +
- '亩' +
- '</p>' +
- '<p>位置:' +
- res.data.cityName +
- res.data.countyName +
- res.data.townName +
- '</p>' +
- '</div>' +
- '</div>';
- baseMarker.setLabel({
- direction: 'top',
- offset: new AMap.Pixel(0, 0), //设置文本标注偏移量
- content: treeSmallLabel //设置文本标注内容
- });
- }
- });
- });
- baseMarker.on('mouseout', function (e) {
- baseMarker.setLabel({
- direction: 'right',
- offset: new AMap.Pixel(0, 0), //设置文本标注偏移量
- content: `<div>${element.baseName}</div>` //设置文本标注内容
- });
- });
- this.map.add(baseMarker);
- });
- });
- },
- setMarker() {
- farmInfo().then((res) => {
- this.forestFarmData = res.rows;
- let parentMarker = require('@/assets/img/pre-marker.png');
- this.forestFarmData.forEach((item) => {
- let selectCity = this.$store.state.addr.selectCity.label;
- switch (this.$store.state.addr.selectCity.label) {
- case '黔西南州':
- selectCity = '黔西南布依族苗族自治州';
- break;
- case '黔东南州':
- selectCity = '黔东南苗族侗族自治州';
- break;
- case '黔南州':
- selectCity = '黔南布依族苗族自治州';
- break;
- }
- if (this.$store.state.addr.selectCity.label) {
- if (selectCity == item.cityName) {
- let lngLat = [item.longitude, item.latitude];
- var marker = new AMap.Marker({
- position: lngLat,
- icon: parentMarker,
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 0)
- });
- marker.setLabel({
- direction: 'bottom',
- offset: new AMap.Pixel(0, 0), //设置文本标注偏移量
- content: `<div>${item.forestName}</div>` //设置文本标注内容
- });
- marker.setMap(this.map);
- }
- } else {
- let lngLat = [item.longitude, item.latitude];
- var marker = new AMap.Marker({
- position: lngLat,
- icon: parentMarker,
- anchor: 'bottom-center',
- offset: new AMap.Pixel(0, 0)
- });
- marker.setLabel({
- direction: 'bottom',
- offset: new AMap.Pixel(0, 0), //设置文本标注偏移量
- content: `<div>${item.forestName}</div>` //设置文本标注内容
- });
- marker.setMap(this.map);
- }
- });
- });
- },
- getrjx(adcode, selectStreet) {
- if (adcode == '522632') {
- axios.get('/static/rongjangintown.json').then((res) => {
- this.putPolygonData = res.data.features;
- this.putPolygon();
- });
- } else if (adcode == '520181') {
- axios.get('/static/qingzhenzhen.json').then((res) => {
- this.putPolygonData = res.data.features;
- this.putPolygon();
- });
- }
- },
- putPolygon(selectStreet) {
- let that = this;
- this.putPolygonData.forEach((element) => {
- this.boundaryPolygon = new AMap.Polygon({
- map: that.map,
- path: element.geometry.coordinates,
- strokeOpacity: 1,
- fillOpacity: 0,
- strokeColor: 'yellow',
- strokeWeight: 1,
- zIndex: 999,
- cursor: 'pointer'
- });
- that.townPolygons.push(this.boundaryPolygon);
- // that.map.add(that.townPolygons);
- this.boundaryPolygon.on('click', (e) => {
- this.smallClassMapArr = [];
- let centerLanLatArr = [e.lnglat.lng, e.lnglat.lat];
- that.map.remove(that.townPolygons);
- that.map.remove(that.polygon);
- // that.map.remove(that.cityMarkerArr);
- that.districtExplorer.clearFeaturePolygons();
- let valCode = element.properties.XIANG;
- let areaId = '';
- let label = element.properties.XIANG_NAME;
- this.vuexStreetList.forEach((item) => {
- if (valCode == item.areaCode) {
- areaId = item.areaId;
- }
- });
- this.changeSelectStreet({
- value: valCode,
- label: label,
- areaId: areaId
- });
- this.changeSelectAddr('street');
- // this.$store.dispatch('searchArea', {
- // parentId: valCode,
- // name: label,
- // mapLevel: 'street'
- // });
- 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 holes = element.geometry.coordinates;
- var pathArray = [outer];
- pathArray.push.apply(pathArray, holes);
- let townPolygon = new AMap.Polygon({
- map: that.map,
- pathL: pathArray,
- strokeColor: 'yellow',
- strokeWeight: 4,
- fillColor: '#0c1b05', // 遮罩背景色
- fillOpacity: 0
- });
- townPolygon.setPath(holes);
- // that.map.add(townPolygon);
- that.map.setZoomAndCenter(13, centerLanLatArr, false, 12);
- // this.$store.dispatch('getSmallClassMap', {
- // cityId: this.$store.state.addr.selectCity.areaId,
- // countyId: this.$store.state.addr.selectDistrict.areaId,
- // townId: this.$store.state.addr.selectStreet.areaId
- // });
- // that.map.setBounds(townPolygon.getBounds(), null, null, true);
- townPolygon.on('click', (e) => {
- });
- if (this.leftPage === 'forest') {
- this.addForestPolygon(this.smallClassMapArr);
- this.getForestSample(this.leftPage);
- } else if (this.leftPage === 'treeSpecies') {
- this.addTreeSpeciesPolygon(this.smallClassMapArr);
- this.getRightScrollData(this.leftPage);
- } else if (this.leftPage === 'economics') {
- this.getEconomics(this.smallClassMapArr);
- } else if (this.leftPage === 'event') {
- this.getEven();
- }
- });
- });
- },
- getTreePlant() {
- treePlant().then((res) => {
- this.treePlant = res.rows;
- });
- }
- }
- };
- </script>
- <style lang='scss' scoped>
- #container {
- width: 100%;
- height: 100vh;
- /deep/ .tdt-pane {
- z-index: auto;
- }
- }
- /deep/ .amap-marker-content {
- .tipMarker {
- color: #555;
- background-color: rgba(255, 254, 239, 0.8);
- border: 1px solid #7e7e7e;
- padding: 2px 6px;
- font-size: 12px;
- white-space: nowrap;
- display: inline-block;
- &:before,
- &:after {
- content: '';
- display: block;
- position: absolute;
- margin: auto;
- width: 0;
- height: 0;
- border: solid transparent;
- border-width: 5px 5px;
- }
- &.top {
- transform: translate(-50%, -110%);
- &:before,
- &:after {
- bottom: -9px;
- left: 0;
- right: 0;
- border-top-color: rgba(255, 254, 239, 0.8);
- }
- &:before {
- bottom: -10px;
- border-top-color: #7e7e7e;
- }
- }
- }
- }
- /deep/ .amap-logo,
- .amap-copyright {
- display: block !important;
- visibility: inherit !important;
- }
- /deep/ .amap-icon img {
- max-width: 3rem !important;
- max-height: 3rem !important;
- }
- /deep/ .info-small {
- background-image: url('../assets/img/small-label.png');
- background-repeat: no-repeat;
- background-size: 100% 100%;
- width: 18rem;
- // height: 10rem;
- color: #fff;
- .marker-title {
- margin: 0 auto;
- line-height: 30px;
- }
- .marker-content {
- padding: 0 20px 10px 20px;
- p {
- text-align: left;
- font-size: 12px;
- margin: 0;
- line-height: 28px;
- }
- }
- }
- /deep/ .amap-marker-label {
- border: 0;
- background-color: transparent;
- }
- #mask {
- width: 100%;
- height: 100vh;
- box-shadow: inset 0px 0px 10vw 8vw rgba(0, 10, 34, 0.54);
- position: fixed;
- left: 0;
- right: 0;
- bottom: 0;
- top: 0;
- pointer-events: none;
- }
- @keyframes imageAnimation_32630606 {
- 0% {
- // opacity: 0;
- transform: none;
- }
- 34% {
- // opacity: 1;
- transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg) scaleX(1) scaleY(1)
- translate3d(34vw, 0px, 0px);
- }
- 67% {
- // opacity: 1;
- transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg) scaleX(1) scaleY(1)
- translate3d(67vw, 0px, 0px);
- }
- 100% {
- // opacity: 0;
- transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg) scaleX(1) scaleY(1)
- translate3d(160vw, 0px, 0px);
- }
- }
- .yun-wrap {
- position: fixed;
- left: 0;
- top: 350px;
- width: 100vw;
- pointer-events: none;
- }
- .yun {
- position: fixed;
- left: -500px;
- animation-name: imageAnimation_32630606;
- animation-iteration-count: infinite;
- animation-timing-function: linear;
- animation-duration: 110s;
- animation-delay: 0s;
- -webkit-user-drag: none;
- filter: none;
- pointer-events: none;
- }
- .yun2 {
- bottom: 20px;
- animation-duration: 90s;
- animation-delay: 10s;
- }
- .yun3 {
- top: 100px;
- animation-duration: 120s;
- animation-delay: 15s;
- }
- /deep/ .label-treecomp {
- position: relative;
- background-color: #05dfff;
- color: #fff;
- padding: 6px 10px;
- border-radius: 8px;
- font-size: 14px;
- text-align: center;
- &::before {
- position: absolute;
- top: 26px;
- left: 42%;
- content: '';
- width: 0px;
- height: 0px;
- border: 6px solid transparent;
- border-top-color: #05dfff;
- }
- .smallH {
- position: absolute;
- top: 34px;
- z-index: 99;
- display: block;
- color: #05dfff;
- text-align: center;
- font-size: 14px;
- // left: 38%;
- left: 0;
- width: 100%;
- }
- }
- </style>
|