Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop
Conflicts:
src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue
11个文件已删除
3个文件已添加
32个文件已修改
| | |
| | | .DS_Store |
| | | package-lock.json |
| | | .idea |
| | | .dist |
| | | /dist |
| | |
| | | getWasteGasDetails (data) { |
| | | return axios.get(mapUrl.getWasteGasDetails, data) |
| | | }, |
| | | // 废气点小时日数据 |
| | | getWasteGasMonData (data) { |
| | | return axios.get(mapUrl.getWasteGasMonData, data) |
| | | }, |
| | | // 废水点 |
| | | getWasteWater (data) { |
| | | return axios.get(mapUrl.getWasteWater, data) |
| | |
| | | |
| | | export const getWasteGas = $HOST + '/wasteGas/getWasteGas' |
| | | export const getWasteGasDetails = $HOST + '/wasteGas/getWasteGasMonitoringDetails' |
| | | export const getWasteGasMonData = $HOST + '/wasteGas/QueryOnlineMonData' |
| | | |
| | | export const getWasteWater = $HOST + '/wasteWater/getWasteWater' // 废水点信息 |
| | | export const getWasteWaterMonitoring = $HOST + '/wasteWater/getWasteWaterMonitoring' // 废水监测数据 |
| | |
| | | @color-tool: #C0C4CC;//工具色 |
| | | @color-shadow: #00fff6;//显示颜色 |
| | | @background-color: rgba(0, 16, 30, .7);//背景填充色 |
| | | @background-color4: rgba(0, 16, 30, .4);//背景填充色 |
| | | @background-color-light: rgba(40, 50, 100, .4);//光晕 |
| | | @background-color-split: rgba(0, 255, 246, .14);//分割线 |
| | | @background-color-tools: #1A4951;//工具箱 |
| | |
| | | @import "_map-variable"; |
| | | |
| | | .leaflet-container, |
| | | html,body{ |
| | | // font-family: 'Microsoft YaHei'; |
| | | font: 12px/1.5 "Microsoft YaHei", Arial, Helvetica, sans-serif; |
| | | } |
| | | /*全局设置***********/ |
| | | h1, h2, h3, h4, h5, h6, ul, li, p { |
| | | padding: 0; |
| | |
| | | } |
| | | |
| | | /***************Company 图层 悬浮框样式。*********************************/ |
| | | .company-bindTooltip { |
| | | background: @background-color-split; |
| | | .company-bindTooltip{ |
| | | position: absolute; |
| | | top:0; |
| | | left: 0; |
| | | display: flex; |
| | | justify-content: center; |
| | | justify-items: center; |
| | | img{display: block;width: 30px;height: 30px;margin-left: -15px;margin-top: -15px} |
| | | ul{ |
| | | width: 120px; |
| | | margin-left: -60px; |
| | | text-align: center; |
| | | display: flex; |
| | | position: absolute; |
| | | top:20px; |
| | | left:0; |
| | | li{ |
| | | position: absolute; |
| | | top:0; |
| | | left:0; |
| | | width: 100%; |
| | | font-weight: 900; |
| | | text-shadow: 0 0 4px #fff; |
| | | color: red; |
| | | font-size: 16px; |
| | | height: 20px; |
| | | line-height: 18px; |
| | | overflow: visible; |
| | | } |
| | | } |
| | | } |
| | | /*.company-bindTooltip { |
| | | //background: @background-color-split; |
| | | background: none; |
| | | border: none; |
| | | color: red; |
| | | font-size: 16px; |
| | | font-weight: 900 !important; |
| | | text-shadow: 0 0 5px #fff; |
| | | //filter:Dropshadow(offx=1,offy=0,color=white) |
| | | //Dropshadow(offx=0,offy=1,color=white) |
| | | //Dropshadow(offx=0,offy=-1,color=white) |
| | | //Dropshadow(offx=-1,offy=0,color=white); |
| | | //font-size: 16px; |
| | | box-shadow: none; |
| | | -webkit-text-stroke: .5px #fff; |
| | | text-shadow: 0 0 5px #fff; |
| | | filter:Dropshadow(offx=1,offy=0,color=white) |
| | | Dropshadow(offx=0,offy=1,color=white) |
| | | Dropshadow(offx=0,offy=-1,color=white) |
| | | Dropshadow(offx=-1,offy=0,color=white); |
| | | box-shadow: none; |
| | | -webkit-text-stroke: 0.1px #fff; |
| | | font: 16px "Microsoft YaHei", Arial, Helvetica, sans-serif; |
| | | ul{ |
| | | position: relative; |
| | | li:not(:first-child){ |
| | | position: absolute; |
| | | top:0; |
| | | left:0; |
| | | width: 100%; |
| | | font-weight: 900; |
| | | } |
| | | li{ |
| | | text-shadow: 0 0 4px #fff; |
| | | } |
| | | } |
| | | }*/ |
| | | .company-bindTooltip:before{ |
| | | display: none; |
| | | } |
| | | |
| | | .company-bindTooltip-hover h3 { |
| | |
| | | list-style: none; |
| | | margin: 0; |
| | | padding: 0; |
| | | width: 260px; |
| | | display: flex; |
| | | //width: 260px; |
| | | //display: flex; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .company-bindTooltip-hover ul li { |
| | | margin: 0; |
| | | padding: 3px 0; |
| | | width: 50%; |
| | | //width: 50%; |
| | | } |
| | | |
| | | /*************** PublicTable 表格样式。*********************************/ |
| | |
| | | .icon{ |
| | | width: 20px; |
| | | margin: 0 auto; |
| | | font-size: 20px; |
| | | } |
| | | |
| | | } |
| | |
| | | <template> |
| | | <div id="Tab"> |
| | | <div class="infomation"> |
| | | <el-tag>氮氧化物:29.93 标准:100</el-tag> |
| | | <el-tag>二氧化硫:17.34 标准:50</el-tag> |
| | | <el-tag>烟尘:6.93 标准:30</el-tag> |
| | | <el-tag>废气流量:120343.18</el-tag> |
| | | <!-- <el-tag>氮氧化物 : 29.93 标准 : 100</el-tag>--> |
| | | <!-- <el-tag>二氧化硫 : 17.34 标准 : 50</el-tag>--> |
| | | <!-- <el-tag>烟尘 : 6.93 标准 : 30</el-tag>--> |
| | | <!-- <el-tag>废气流量 : 120343.18</el-tag>--> |
| | | <el-row> |
| | | <el-col :span="6"><div class="grid-content bg-purple">氮氧化物 : 29.93 标准 : 100</div></el-col> |
| | | <el-col :span="6"><div class="grid-content bg-purple">二氧化硫 : 17.34 标准 : 50</div></el-col> |
| | | <el-col :span="6"><div class="grid-content bg-purple">烟尘 : 6.93 标准 : 30</div></el-col> |
| | | <el-col :span="6"><div class="grid-content bg-purple">废气流量 : 120343.18</div></el-col> |
| | | <!-- <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>--> |
| | | </el-row> |
| | | </div> |
| | | <div class="form-echrts"> |
| | | <!-- :title="this.$attrs.getWasteGasDetails[0].OnLineMonEmissPointName" --> |
| | | <div class="from-search"> |
| | | <el-form :inline="true" :model="formInline" class="demo-form-inline"> |
| | | <el-date-picker |
| | | class="date" |
| | | v-model="value" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | <el-form-item label="采样点数" class="text-size"> |
| | | <el-select v-model="formInline.region" placeholder="0"> |
| | | <el-option label="0" value="shanghai"></el-option> |
| | | <el-option label="25" value="beijing"></el-option> |
| | | <el-option label="50" value="beijing"></el-option> |
| | | <el-option label="75" value="beijing"></el-option> |
| | | <el-option label="100" value="beijing"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="onSubmit">查询</el-button> |
| | | </el-form-item> |
| | | <el-button size="mini" round @click="dialogVisible = true">明细表</el-button> |
| | | <el-dialog :visible.sync="dialogVisible" |
| | | :append-to-body="true" |
| | | :title="this.$attrs.value==='feiqi'?this.$attrs.getWasteGasDetails[0].OnLineMonEmissPointName:this.$attrs.getWasteWaterMonitoringDetails[0].OnLineMonEmissPointName" |
| | | width="68%" |
| | | center |
| | | v-dialogDrag |
| | | > |
| | | <div class="el-dialog-div" style="height: 500px"> |
| | | <public-detailed-list v-bind="$attrs"></public-detailed-list> |
| | | </div> |
| | | </el-dialog> |
| | | </el-form> |
| | | <!-- <el-form :inline="true" :model="formInline" class="demo-form-inline">--> |
| | | <!-- <el-form-item label="审批人">--> |
| | | <!-- <el-input v-model="formInline.user" placeholder="审批人"></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <div class="block">--> |
| | | <!-- <el-date-picker--> |
| | | <!-- size="'mini"--> |
| | | <!-- class="date"--> |
| | | <!-- v-model="value"--> |
| | | <!-- type="datetimerange"--> |
| | | <!-- range-separator="至"--> |
| | | <!-- start-placeholder="开始日期"--> |
| | | <!-- end-placeholder="结束日期">--> |
| | | <!-- </el-date-picker>--> |
| | | <!-- </div>--> |
| | | <!-- <el-form-item label="采样点数" class="text-size">--> |
| | | <!-- <el-select v-model="formInline.region" placeholder="0">--> |
| | | <!-- <el-option label="0" value="shanghai"></el-option>--> |
| | | <!-- <el-option label="25" value="beijing"></el-option>--> |
| | | <!-- <el-option label="50" value="beijing"></el-option>--> |
| | | <!-- <el-option label="75" value="beijing"></el-option>--> |
| | | <!-- <el-option label="100" value="beijing"></el-option>--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item>--> |
| | | <!-- <el-button type="primary" @click="onSubmit">查询</el-button>--> |
| | | <!-- </el-form-item>--> |
| | | |
| | | <!-- </el-form>--> |
| | | <!-- <input list="students">--> |
| | | <!-- <datalist id="students">--> |
| | | <!-- <option value="Lily">--> |
| | | <!-- <option value="Lucy">--> |
| | | <!-- <option value="Jim">--> |
| | | <!-- <option value="Lily">--> |
| | | <!-- </datalist>--> |
| | | <el-row type="flex" :gutter="20"> |
| | | <el-col :span="14"> |
| | | <!-- <el-row>--> |
| | | <!-- <el-col :span="12">--> |
| | | <!-- <el-row type="flex" justify="space-between">--> |
| | | <!-- <el-col class="pickerData">--> |
| | | <!-- 开始时间:--> |
| | | <!-- <el-date-picker--> |
| | | <!-- type="date">--> |
| | | <!-- </el-date-picker>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | <!-- </el-col>--> |
| | | <!-- <el-col :span="12" type="flex">--> |
| | | <!-- <el-row type="flex" justify="center">--> |
| | | <!-- <el-col>--> |
| | | <!-- 结束时间:--> |
| | | <!-- <el-date-picker--> |
| | | <!-- type="date"--> |
| | | <!-- >--> |
| | | <!-- </el-date-picker>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | 采样点数: |
| | | <input list="source" id="ipt" class="echatsInput"> |
| | | <datalist id="source"> |
| | | <option value="0" /> |
| | | <option value="25" /> |
| | | <option value="50" /> |
| | | <option value="75" /> |
| | | <option value="100" /> |
| | | </datalist> |
| | | <!-- <div data-tap-disabled="true">--> |
| | | <!-- 采样点数:--> |
| | | <!-- <select id="source">--> |
| | | <!-- <option value="1">0</option>--> |
| | | <!-- <option value="2">25</option>--> |
| | | <!-- <option value="3">50</option>--> |
| | | <!-- <option value="4">75</option>--> |
| | | <!-- <option value="5">100</option>--> |
| | | <!-- </select>--> |
| | | <!-- </div>--> |
| | | </el-col> |
| | | <el-col class="detailbtn" :span="2" @click="onSubmit">查询</el-col> |
| | | <el-col :span="3"> |
| | | <div class="detailbtn" @click="dialogVisible = true" >明细表</div> |
| | | <el-dialog :visible.sync="dialogVisible" |
| | | :append-to-body="true" |
| | | :title="this.$attrs.value==='feiqi'?this.$attrs.getWasteGasDetails[0].OnLineMonEmissPointName:this.$attrs.getWasteWaterMonitoringDetails[0].OnLineMonEmissPointName" |
| | | width="68%" |
| | | center |
| | | v-dialogDrag |
| | | > |
| | | <div class="el-dialog-div" style="height: 500px"> |
| | | <public-detailed-list v-bind="$attrs"></public-detailed-list> |
| | | </div> |
| | | </el-dialog> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div style="width:100%;height:1rem;margin-top:-0.1rem;position:absolute;" id="echarts" ref="main"> |
| | | <div style="width:100%;height:200px;" id="echarts" ref="main"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | // import PublicDetailedList from '@components/BaseNav/PublicBounced/GasComponents/PublicDetailedList' |
| | | import PublicDetailedList from '@components/BaseNav/PublicBounced/GasComponents/PublicDetailedList' |
| | | |
| | | export default { |
| | | name: 'ECharts', |
| | | components: { |
| | | // PublicDetailedList |
| | | PublicDetailedList |
| | | }, |
| | | data () { |
| | | return { |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .infomation { |
| | | height: 0.2rem; |
| | | display: flex; |
| | | justify-content: space-around; |
| | | margin-bottom: 5px; |
| | | .grid-content{ |
| | | font-size: 8px!important; |
| | | background-color:#2e4967; |
| | | text-align: center; |
| | | margin: 0 2px 4px 2px; |
| | | border-radius: 2px; |
| | | } |
| | | .Infomation { |
| | | margin-left: 10px; |
| | | height: 0.2rem; |
| | | } |
| | | |
| | | .el-tag { |
| | | height: 25px; |
| | | width: 140px; |
| | | line-height: 25px; |
| | | margin-right: 10px; |
| | | font-size: 10px; |
| | | background-color: rgba(0, 255, 246, 0.14); |
| | | color: #00d0f9; |
| | | border: none; |
| | | padding: 0 15px; |
| | | } |
| | | |
| | | .form-echrts { |
| | | width: 100%; |
| | | height: 1rem; |
| | | border-top: 1px solid #396d83; |
| | | //margin: 10px 10px 10px 10px; |
| | | .from-search{ |
| | | //display: flex; |
| | | //justify-content: space-between; |
| | | .pickerData{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .el-tag { |
| | | height: 25px; |
| | | line-height: 25px; |
| | | background-color: rgba(0, 255, 246, 0.14); |
| | | color: #00d0f9; |
| | | border: none; |
| | | /deep/.el-input__inner{ |
| | | width: 40px!important; |
| | | height: 16px!important; |
| | | background-color: #2e4967; |
| | | } |
| | | |
| | | .form-echrts { |
| | | height: 1rem; |
| | | border-top: 1px solid #396d83; |
| | | |
| | | .el-dialog-div { |
| | | //height: 50vh!important; |
| | | overflow: auto; |
| | | //overflow: hidden; |
| | | } |
| | | .echatsInput{ |
| | | color: #00ffff; |
| | | background-color: #2e4967; |
| | | border: none; |
| | | border-radius: 6px; |
| | | width: 40px; |
| | | } |
| | | .detailbtn{ |
| | | background-color:#2e4967; |
| | | text-align: center; |
| | | padding: 0 7px; |
| | | line-height: 20px; |
| | | border-radius: 4px; |
| | | margin-right: 6px; |
| | | } |
| | | } |
| | | .el-dialog-div { |
| | | //height: 50vh!important; |
| | | overflow: auto; |
| | | //overflow: hidden; |
| | | } |
| | | |
| | | .from-search { |
| | | background-color: red; |
| | |
| | | methods: { |
| | | tabTaggle (taggleMenu) { |
| | | this.currentTab = taggleMenu |
| | | debugger |
| | | // debugger |
| | | } |
| | | } |
| | | } |
| | |
| | | <el-col :span="8">生产单位:{{ setWasteGasdata.porltName }}</el-col> |
| | | <el-col :span="8">排放类型名称:{{ setWasteGasdata.MonTypeName }}</el-col> |
| | | </el-row> |
| | | <el-row type="flex" class="row-bg" justify="space-around"> |
| | | <el-row type="flex" class="row-bg row-item-two" justify="space-around"> |
| | | <el-col :span="8">排放去向:{{ setWasteGasdata.EmissDirecti }}</el-col> |
| | | <el-col :span="18">控制级别名称:{{ setWasteGasdata.ContrLevelShowName }}</el-col> |
| | | <el-col :span="18">内/外排口:{{ setWasteGasdata.OrOutPortName }}</el-col> |
| | |
| | | <el-col :span="8">生产单位:{{ setWasteWaterdata.porltName }}</el-col> |
| | | <el-col :span="8">排放类型名称:{{ setWasteWaterdata.MonTypeName }}</el-col> |
| | | </el-row> |
| | | <el-row type="flex" class="row-bg" justify="space-around"> |
| | | <el-row type="flex" class="row-bg row-item-two" justify="space-around"> |
| | | <el-col :span="8">排放去向:{{ setWasteWaterdata.EmissDirecti }}</el-col> |
| | | <el-col :span="8">控制级别名称:{{ setWasteWaterdata.ContrLevelShowName }}</el-col> |
| | | <el-col :span="8">内/外排口:{{ setWasteWaterdata.OrOutPortName }}</el-col> |
| | |
| | | margin-bottom: 10px; |
| | | background-color: rgba(33, 41, 69, 0.9); |
| | | //width: 6rem; |
| | | height: 0.5rem; |
| | | //height: 0.5rem; |
| | | } |
| | | |
| | | .main { |
| | |
| | | .main-matter { |
| | | font-size: 13px; |
| | | font-weight: normal; |
| | | //padding: 10px 6px; |
| | | padding: 0px 6px; |
| | | border: 1px solid #396d83; |
| | | |
| | | .row-item-one { |
| | | //flex-wrap: nowrap; |
| | | overflow: hidden; |
| | | margin-top: 6px; |
| | | margin-bottom: 7px; |
| | | //margin-left: 10px; |
| | | } |
| | | |
| | | .row-item-two{ |
| | | margin-bottom: 6px; |
| | | } |
| | | .el-row { |
| | | width: 100%; |
| | | color: #00d0f9; |
| | |
| | | <!-- <span class="icon-name">图层</span>--> |
| | | </div> |
| | | </el-tooltip> |
| | | <transition name="animationChange"> |
| | | <transition name="layerChange"> |
| | | <div :class="'legend-content map-background'" v-show="layerControllerVisible"> |
| | | <lc-service-layer></lc-service-layer> |
| | | <button @click="showPanel" type="button" class="el-button special-button el-button--default el-icon-d-arrow-left"></button> |
| | |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | .animationChange-enter-active, .animationChange-leave-active { |
| | | |
| | | .layerChange-enter-active { |
| | | transform-origin: top left; |
| | | animation: bounce-in .2s; |
| | | } |
| | | .layerChange-leave-active { |
| | | transform-origin: top left; |
| | | animation: bounce-in .2s reverse; |
| | | } |
| | | /* |
| | | |
| | | .layerChange-enter-active, |
| | | .layerChange-leave-active { |
| | | transition: all 0.5s; |
| | | } |
| | | |
| | | .animationChange-enter, .animationChange-leave-to { |
| | | .layerChange-enter, |
| | | .layerChange-leave-to { |
| | | opacity: 0; |
| | | transform: translateX(-100px); |
| | | } |
| | | }*/ |
| | | .float-panel.active{ |
| | | overflow: visible; |
| | | } |
| | |
| | | background: #0E3565; |
| | | } |
| | | .el-button--default{ |
| | | padding: 15px 3px; |
| | | background:@background-color; |
| | | padding: 0; |
| | | background:@background-color4; |
| | | color:@color-tool; |
| | | position: absolute; |
| | | top:0; |
| | | left: 100%; |
| | | margin-left: .02rem; |
| | | border-radius: 0.03rem 50% 50% 0.03rem; |
| | | top:24px; |
| | | right:0.02rem; |
| | | border:none;//1px solid @color-tool; |
| | | width: 0.2rem; |
| | | height: 0.2rem; |
| | | text-align: center; |
| | | line-height: 0.2rem; |
| | | margin-top: -0.1rem; |
| | | border-radius: 50%; |
| | | // border-radius: 0.03rem 50% 50% 0.03rem; |
| | | } |
| | | .el-button--default:hover{ |
| | | background:@background-color; |
| | | border:1px solid @color; |
| | | box-shadow: 0 0 2px @color; |
| | | color:@color; |
| | | } |
| | | .legend-content{ |
| | | width: 1.79167rem; |
| | |
| | | * 固废 |
| | | */ |
| | | // 区分不同类型 使用不同img |
| | | const companyImg = '/assets/images/map/company.png' |
| | | const companyImg = '/assets/images/map/company_refining.png' |
| | | |
| | | const mapApi = require('../../../api/mapApi').default |
| | | const AnimalService = require('../service/AnimalService').default |
| | |
| | | const positionY = data[i].Longitude |
| | | |
| | | var iconUrl = companyImg |
| | | const htmls = '<div><img src="' + iconUrl + '"><ul><li>' + data[i].name + '</li><li>' + data[i].name + '</li><li>' + data[i].name + '</li><li>' + data[i].name + '</li><li>' + data[i].name + '</li><li>' + data[i].name + '</li></ul></div>' |
| | | var myIcon = L.divIcon({ |
| | | html: htmls, |
| | | className: 'company-bindTooltip', |
| | | iconSize: 16 |
| | | }) |
| | | |
| | | const marker = L.marker([positionX, positionY], { |
| | | icon: L.icon({ |
| | | /* icon: L.icon({ |
| | | iconUrl: iconUrl, |
| | | iconSize: [30, 30], |
| | | iconAnchor: [13, 5] |
| | | }), |
| | | iconAnchor: [15, 15] |
| | | }), */ |
| | | icon: myIcon, |
| | | test: data[i] |
| | | }) |
| | | marker.bindTooltip(data[i].name, { |
| | | /* const htmls = '<ul><li>' + data[i].name + '</li></ul>' |
| | | marker.bindTooltip(htmls, { |
| | | permanent: true, |
| | | offset: [0, 14], |
| | | offset: [0, 5], |
| | | direction: 'bottom', |
| | | className: 'company-bindTooltip' |
| | | }) |
| | | }) */ |
| | | layer.addLayer(marker) |
| | | } |
| | | } |
| | |
| | | totransferData: getSolidWasteData[i], |
| | | icon: L.icon({ |
| | | iconUrl: iconUrl, |
| | | iconSize: [20, 20], |
| | | iconAnchor: [10, 10] |
| | | iconSize: [30, 30], |
| | | iconAnchor: [15, 15] |
| | | }) |
| | | }) |
| | | layer.addLayer(marker) |
| | |
| | | test: data[i], |
| | | icon: L.icon({ |
| | | iconUrl: iconUrl, |
| | | iconSize: [20, 20], |
| | | iconAnchor: [10, 10] |
| | | iconSize: [30, 38], |
| | | iconAnchor: [15, 19] |
| | | }) |
| | | }) |
| | | layer.addLayer(marker) |
| | |
| | | const dataValue = { |
| | | StoragePlaceId: e.layer.options.test.StoragePlaceId |
| | | } |
| | | // const GasOnlinedata = { |
| | | // onLineMonEmissPointId: 23, |
| | | // monItemId: 28, |
| | | // emissTypeld: 2, |
| | | // beginTime: 2020/0o4/0o6 15:13:20, |
| | | // endTime=2020/0o4/0o7;15:13:20, |
| | | // dataType:1 |
| | | // } |
| | | // const Mondata = await mapApi.getWasteGasMonData(GasOnlinedata) |
| | | // console.log(Mondata) |
| | | const result = await mapApi.getWasteGasDetails(dataValue) |
| | | // console.log(result.Result.DataInfo) |
| | | const PublicBounced = window.Vue.extend(publicBounced) |
| | |
| | | test: data[i], |
| | | icon: L.icon({ |
| | | iconUrl: iconUrl, |
| | | iconSize: [20, 20], |
| | | iconAnchor: [10, 10] |
| | | iconSize: [35, 35], |
| | | iconAnchor: [18, 18] |
| | | }) |
| | | }) |
| | | layer.addLayer(marker) |
| | |
| | | <div class="wms-panel"> |
| | | <el-scrollbar class="wms-panel-scrollbar"> |
| | | <div v-for="item in serviceLayers" :key="item.code" class="layerbox"> |
| | | <i class="downUp el-icon-caret-bottom" @click="item.isShow=!item.isShow" :class="item.isShow?'':'active'" ></i><!-- el-icon-arrow-down --> |
| | | <!-- 一级图层遍历 --> |
| | | <div style="padding-left:10px;padding-top:10px"> |
| | | <input type="checkbox" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" |
| | | @change="swAllLayers(item)"/>{{ item.name }} |
| | | <div style="padding-left:25px;padding-top:10px;color:#fff"> |
| | | <input type="checkbox" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }} |
| | | </div> |
| | | <div class="layerbox-item"> |
| | | <div class="layerbox-item" v-show="item.isShow"> |
| | | <!-- 二级图层遍历 --> |
| | | <div class="basemap-layer-item" v-for="itm in item.layers" :key="itm.code"> |
| | | <input type="checkbox" |
| | |
| | | :name="'wmsSublayers_'+item.code+'_'+layer.code" |
| | | :checked="layer.checked" |
| | | :value="layer.code" |
| | | @change="swWmsLayer(layer)"/>{{ layer.name }} |
| | | @change="swWmsLayer(layer)"/> |
| | | <span :style="'color:'+layer.color">{{ layer.name }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | } |
| | | .layerbox { |
| | | width: 100%; |
| | | position: relative; |
| | | .downUp{ |
| | | position: absolute; |
| | | top:3px; |
| | | left: -2px; |
| | | height: 30px; |
| | | width: 30px; |
| | | text-align: center; |
| | | line-height: 30px; |
| | | cursor: pointer; |
| | | font-size: 20px; |
| | | transition: all 1.5s; |
| | | } |
| | | .downUp.active{ |
| | | transform: rotate(-90deg); |
| | | } |
| | | .downUp:hover{font-size: 26px;font-weight: 900} |
| | | .layerbox-item { |
| | | padding-left: 30px; |
| | | padding-top: 5px; |
| | |
| | | fillColor: STYLES.FILL_COLOR, |
| | | color: STYLES.COLOR, |
| | | fillOpacity: STYLES.FILL_OPACITY, |
| | | opacity: STYLES.OPACITY, |
| | | dashArray: STYLES.DASH_ARRAY, |
| | | dashSpeed: STYLES.DASH_SPPED |
| | | opacity: STYLES.OPACITY |
| | | // dashArray: STYLES.DASH_ARRAY, |
| | | // dashSpeed: STYLES.DASH_SPPED |
| | | } |
| | | }, |
| | | pointToLayer: (geoJsonPoint, latlng) => { |
| | |
| | | <template>
|
| | | <div class="base-nav-menu">
|
| | | <template v-for="(item,index) in menuList">
|
| | | <template v-if="item.items && item.items.length">
|
| | | <el-submenu :index="item.index" :key="index">
|
| | | <template slot="title" v-if="item.icon">
|
| | | <img :src="item.icon" :title="item.label"/>
|
| | | </template>
|
| | | <template slot="title" v-else>{{ item.label }}</template>
|
| | | <base-nav-menu-item v-for="child in item.items" :key="child.title" :menuList='[child]'></base-nav-menu-item>
|
| | | </el-submenu>
|
| | | </template>
|
| | | <template v-else>
|
| | | <el-menu-item :index="item.index" :key="index">
|
| | | <!-- <el-radio></el-radio>-->
|
| | | {{ item.label }}
|
| | | </el-menu-item>
|
| | | </template>
|
| | | </template>
|
| | | </div>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | |
|
| | | export default {
|
| | | name: 'BaseNavMenuItem',
|
| | | data () {
|
| | | return {}
|
| | | },
|
| | | props: {
|
| | | menuList: Array
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="less" scoped>
|
| | | .el-menu--popup {
|
| | | min-width: 100px;
|
| | | }
|
| | | .base-nav-menu {
|
| | | height: 38px;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | outline: none;
|
| | | border: none;
|
| | | //margin-left: 20px;
|
| | | padding: 0;
|
| | | .el-menu--popup {
|
| | | min-width: 100px;
|
| | | }
|
| | | }
|
| | |
|
| | | .el-menu--horizontal {
|
| | | .el-menu--popup {
|
| | | min-width: 100px;
|
| | | }
|
| | | }
|
| | | </style>
|
| | | <template> |
| | | <div class="base-nav-menu"> |
| | | <template v-for="(item,index) in menuList"> |
| | | <template v-if="item.items && item.items.length"> |
| | | <el-submenu :index="item.index" :key="index"> |
| | | <template slot="title" v-if="item.icon"> |
| | | <img :src="item.icon" :title="item.label"/> |
| | | </template> |
| | | <template slot="title" v-else>{{ item.label }}</template> |
| | | <base-nav-menu-item v-for="child in item.items" :key="child.title" :menuList='[child]'></base-nav-menu-item> |
| | | </el-submenu> |
| | | </template> |
| | | <template v-else> |
| | | <el-menu-item :index="item.index" :key="index"> |
| | | <!-- <el-radio></el-radio>--> |
| | | {{ item.label }} |
| | | </el-menu-item> |
| | | </template> |
| | | </template> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | export default { |
| | | name: 'BaseNavMenuItem', |
| | | data () { |
| | | return {} |
| | | }, |
| | | props: { |
| | | menuList: Array |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .el-menu--popup { |
| | | min-width: 100px; |
| | | } |
| | | .base-nav-menu { |
| | | height: 38px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | outline: none; |
| | | border: none; |
| | | //margin-left: 20px; |
| | | padding: 0; |
| | | .el-menu--popup { |
| | | min-width: 100px; |
| | | } |
| | | } |
| | | |
| | | .el-menu--horizontal { |
| | | .el-menu--popup { |
| | | min-width: 100px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="panel-right" v-show="isShow"> |
| | | <div class="panel-tab"> |
| | | <!-- <div v-for="item in topicMenu" :key="item.id" :title="item.name" class="tab-item" @click="handleGd"--> |
| | | <!-- :class="{'B-TMT-tab-waybill-isActive': isWaybillHover}">--> |
| | | <!-- <img :src="item.icon" style="width: 24px;height: 24px;"></div>--> |
| | | <div class="container"> |
| | | <ul> |
| | | <li style="text-align: right"> |
| | | <button type="button" class="el-button special-button el-button--default el-icon-d-arrow-right"></button> |
| | | </li> |
| | | </ul> |
| | | |
| | | <ul v-for="item in topicList" :key="item.name" :class="item.checked?'module-wrap map-btn-active':'module-wrap map-btn-unactive'" @click="()=>{selected(item)}" > |
| | | <el-tooltip :popper-class="'map-tooltip'" effect="dark" :content="item.name" placement="left"> |
| | | <li> |
| | | <img src="../../assets/images/map-pages/icon/sl.png" class="icon"> |
| | | </li> |
| | | </el-tooltip> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="panel-fold-btn" >--> |
| | | <!-- <div class="btn-stretch" @click="toggleMonitorPanel"></div>--> |
| | | <!-- </div>--> |
| | | |
| | | <!-- <div class="panel-fold-btn" @click="toggleMonitorPanel" >--> |
| | | <!-- <div :class="[isCollapse? 'btn-stretch':'btn-shrink']" ></div>--> |
| | | <!--<!– <div class="btn-stretch" v-if="isCollapse" </div>–>--> |
| | | <!--<!– <div class="btn-shrink" v-else-if="!isCollapse" ></div>–>--> |
| | | <!--<!– :style = "{width:isCollapse ? '290px' : '0px'}"–>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="right-control" v-if="!isCollapse" >--> |
| | | <div class="right-control" :class="[{ 'unfold': !isCollapse },{ 'shrink': isCollapse }] " > |
| | | <div class="panel-fold-btn" @click="toggleMonitorPanel"> |
| | | <!-- <div class="btn-stretch" v-if="isCollapse"></div>--> |
| | | <!-- <div class="btn-shrink" v-else-if="!isCollapse"></div>--> |
| | | <div :class="[isCollapse? 'btn-stretch':'btn-shrink']" ></div> |
| | | </div> |
| | | |
| | | <div :class="'search-container map-background'"> |
| | | <div class="el-message-box__content" style="padding:0 6px 6px 6px;font-size: 13px;"> |
| | | <component :title="title" :is="gcComp"></component> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <transition name="searchPanelChange"> |
| | | <div style=" display: inline-flex;"> |
| | | <div class="panel-tab"> |
| | | <div class="container"> |
| | | <!-- <ul> |
| | | <li style="text-align: right"> |
| | | <div @click="setSearchPanelChange" type="button" class="el-button special-button el-button--default"> |
| | | <i class=" el-icon-d-arrow-right" v-if="selectGroup"></i> |
| | | <i class=" el-icon-d-arrow-left" v-else ></i> |
| | | </div> |
| | | </li> |
| | | </ul> --> |
| | | <ul v-for="item in topicList" :key="item.name" :class="item.checked?'module-wrap map-btn-active':'module-wrap map-btn-unactive'" @click="()=>{selected(item)}" > |
| | | <el-tooltip :popper-class="'map-tooltip'" effect="dark" :content="item.name" placement="left"> |
| | | <li> |
| | | <img src="../../assets/images/map-pages/icon/sl.png" class="icon"> |
| | | </li> |
| | | </el-tooltip> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <div class="right-control" :class="[{ 'unfold': !isCollapse },{ 'shrink': isCollapse }] " > |
| | | <div class="panel-fold-btn" @click="toggleMonitorPanel"> |
| | | <div :class="[isCollapse? 'btn-stretch':'btn-shrink']" ></div> |
| | | </div> |
| | | <div :class="'search-container map-background'" v-show="selectGroup" > |
| | | <div @click="setSearchPanelChange" type="button" class="el-button special-button el-button--default "> |
| | | <i class=" el-icon-d-arrow-right" v-if="selectGroup"></i> |
| | | <i class=" el-icon-d-arrow-left" v-else ></i> |
| | | </div> |
| | | <div class="el-message-box__content" style="padding:0 6px 6px 6px;font-size: 13px;"> |
| | | <component :title="title" :is="gcComp"></component> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </transition> |
| | | <!-- <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="搜索" placement="left" v-show="!selectGroup"> |
| | | <div :class="selectGroup === true ?'active-button':''" class="iconBtn" @click="setSearchPanelChange" style="position: absolute;top:0;right: 0" > |
| | | <i class="el-icon-search icon"></i> |
| | | </div> |
| | | </el-tooltip> --> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | toggleMonitorStyle: 'right:0px', |
| | | |
| | | title: '污雨水管网', |
| | | isCollapse: true |
| | | isCollapse: true, |
| | | selectGroup: true |
| | | } |
| | | }, |
| | | computed: {}, |
| | |
| | | handleClose (done) { |
| | | console.log(done) |
| | | }, |
| | | setSearchPanelChange () { |
| | | this.selectGroup = !this.selectGroup |
| | | if (!this.selectGroup) { |
| | | this.topicList.forEach((itm) => { |
| | | itm.checked = false |
| | | }) |
| | | } |
| | | }, |
| | | selected (val) { |
| | | // console.log(val) |
| | | this.title = val.name |
| | | this.selectGroup = true |
| | | this.topicList.forEach((itm) => { |
| | | itm.checked = val.name === itm.name |
| | | }) |
| | |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | |
| | | .searchPanelChange-enter-active { |
| | | transform-origin: top right; |
| | | animation: bounce-in .2s; |
| | | } |
| | | .searchPanelChange-leave-active { |
| | | transform-origin: top right; |
| | | animation: bounce-in .2s reverse; |
| | | } |
| | | .search-container { |
| | | position: relative; |
| | | width: 1.79167rem; |
| | |
| | | // background-color: #061e51 !important; |
| | | // border: solid 1px #0e639e !important; |
| | | //} |
| | | .el-button--default { |
| | | padding: 15px 3px; |
| | | background: rgba(0, 16, 30, 0.7); |
| | | color: #C0C4CC; |
| | | border-radius:50% 0.03rem 0.03rem 50% ; |
| | | .el-button--default.special-button { |
| | | padding: 0; |
| | | background:@background-color4; |
| | | color:@color-tool; |
| | | position: absolute; |
| | | top:24px; |
| | | right:0.02rem; |
| | | border:none;//1px solid @color-tool; |
| | | width: 0.2rem; |
| | | height: 0.2rem; |
| | | text-align: center; |
| | | line-height: 0.2rem; |
| | | margin-top: -0.1rem; |
| | | border-radius: 50%; |
| | | z-index: 999; |
| | | } |
| | | .el-button--default:hover{ |
| | | .el-button--default.special-button:hover{ |
| | | background:@background-color; |
| | | border:1px solid @color; |
| | | box-shadow: 0 0 2px @color; |
| | | color:@color; |
| | | } |
| | | |
| | | .el-form-item__label { |
| | | color: rgb(52, 224, 255); |
| | | color: @color; |
| | |
| | | <!-- </div>--> |
| | | <lc-base-map v-show="item.index==='2'"></lc-base-map> |
| | | </el-popover> |
| | | <el-button @click="changeSelect" class="special-button"> |
| | | <!-- <el-button @click="changeSelect" class="special-button"> |
| | | <i class="el-icon-d-arrow-left"></i> |
| | | </el-button> |
| | | </el-button> --> |
| | | </el-row> |
| | | </transition> |
| | | </div> |
| | |
| | | }, |
| | | changeSelect () { |
| | | this.selectGroup = false |
| | | this.isShow = !this.isShow |
| | | this.active = -1 |
| | | }, |
| | | changeSelectMouse () { |
| | | this.selectGroup = true |
| | | this.isShow = [] |
| | | this.selectGroup = !this.selectGroup |
| | | if (this.selectGroup) { |
| | | this.isShow = [] |
| | | } else { |
| | | this.isShow = !this.isShow |
| | | this.active = -1 |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | .special-button { |
| | | width: 0.1362rem; |
| | | height: 0.2725rem; |
| | | color: #C0C4CC; |
| | | border-radius: 0.03rem 50% 50% 0.03rem; |
| | | background:@background-color4; |
| | | color:@color-tool; |
| | | border:1px solid @color-tool; |
| | | } |
| | | .special-button:hover{ |
| | | color: #00fff6; |
| | |
| | | <template>
|
| | | <div class="bounced-box">
|
| | | <ul>
|
| | | <li>
|
| | | <form action="" class="bounced-box-title">
|
| | | <span>文字标注设置</span>
|
| | | <a @click="changeBounced()">X</a>
|
| | | </form>
|
| | | </li>
|
| | | <li>
|
| | | <form action="" class="bounced-box-content">
|
| | | <h6>内容:</h6>
|
| | | <div><textarea v-model='bouncedText' @blur="ChangeText"></textarea></div>
|
| | | </form>
|
| | | </li>
|
| | | <li class="bounced-box-choose">
|
| | | <span>颜色:</span>
|
| | | <select v-model='bouncedSelect' @click="changeLabelTextSelect()">
|
| | | <option v-for="(item,index) in selectOptions" :key="index" :value="item.value">{{ item.text }}</option>
|
| | | </select>
|
| | | </li>
|
| | | </ul>
|
| | | </div>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | |
|
| | | import MakeTation from '@components/plugin/MakeTation'
|
| | |
|
| | | export default {
|
| | | name: 'TextBounced',
|
| | | data () {
|
| | | return {
|
| | | bouncedText: '',
|
| | | bouncedSelect: 'red',
|
| | | selectOptions: [
|
| | | {
|
| | | value: 'red',
|
| | | text: '红色'
|
| | | },
|
| | | {
|
| | | value: 'blue',
|
| | | text: '蓝色'
|
| | | },
|
| | | {
|
| | | value: 'yellow',
|
| | | text: '黄色'
|
| | | }
|
| | | ]
|
| | | }
|
| | | },
|
| | | methods: {
|
| | | changeBounced () {
|
| | | this.$emit('changeBounced', false)
|
| | | },
|
| | | changeLabelTextSelect () {
|
| | | // this.bouncedSelect = item
|
| | | console.log('获取颜色')
|
| | | MakeTation.setContentColor(this.bouncedSelect)
|
| | | },
|
| | | ChangeText () {
|
| | | MakeTation.setContentText(this.bouncedText)
|
| | | console.log(this.bouncedText)
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="less" scoped>
|
| | | .bounced-box {
|
| | | position: absolute;
|
| | | border: 1px solid grey;
|
| | | width: 150px;
|
| | | right: 5%;
|
| | | top: 238px;
|
| | | background-color: rgba(3, 28, 61, 0.8);
|
| | | color: white;
|
| | | cursor: default;
|
| | | left: 814px;
|
| | |
|
| | | ul {
|
| | | list-style: none;
|
| | | padding: 0;
|
| | | margin: 0;
|
| | |
|
| | | li {
|
| | | margin: 1rem 0;
|
| | | }
|
| | |
|
| | | .bounced-box-title {
|
| | | background-color: rgba(34, 83, 130, 0.8);
|
| | | cursor: move;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-around;
|
| | |
|
| | | a {
|
| | | color: white;
|
| | | cursor: pointer;
|
| | | }
|
| | | }
|
| | |
|
| | | .bounced-box-content {
|
| | | h6 {
|
| | | padding: 0;
|
| | | margin: 5px;
|
| | | }
|
| | |
|
| | | div {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | |
|
| | | textarea {
|
| | | width: 90%;
|
| | | resize: none;
|
| | | outline: 0;
|
| | | border: 1px solid #a0b3d6;
|
| | | border-radius: 5px;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .bounced-box-choose {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-around;
|
| | | }
|
| | | }
|
| | | }
|
| | | </style>
|
| | | <template> |
| | | <div class="bounced-box"> |
| | | <ul> |
| | | <li> |
| | | <form action="" class="bounced-box-title"> |
| | | <span>文字标注设置</span> |
| | | <a @click="changeBounced()">X</a> |
| | | </form> |
| | | </li> |
| | | <li> |
| | | <form action="" class="bounced-box-content"> |
| | | <h6>内容:</h6> |
| | | <div><textarea v-model='bouncedText' @blur="ChangeText"></textarea></div> |
| | | </form> |
| | | </li> |
| | | <li class="bounced-box-choose"> |
| | | <span>颜色:</span> |
| | | <select v-model='bouncedSelect' @click="changeLabelTextSelect()"> |
| | | <option v-for="(item,index) in selectOptions" :key="index" :value="item.value">{{ item.text }}</option> |
| | | </select> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import MakeTation from '@components/plugin/MakeTation' |
| | | |
| | | export default { |
| | | name: 'TextBounced', |
| | | data () { |
| | | return { |
| | | bouncedText: '', |
| | | bouncedSelect: 'red', |
| | | selectOptions: [ |
| | | { |
| | | value: 'red', |
| | | text: '红色' |
| | | }, |
| | | { |
| | | value: 'blue', |
| | | text: '蓝色' |
| | | }, |
| | | { |
| | | value: 'yellow', |
| | | text: '黄色' |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | methods: { |
| | | changeBounced () { |
| | | this.$emit('changeBounced', false) |
| | | }, |
| | | changeLabelTextSelect () { |
| | | // this.bouncedSelect = item |
| | | console.log('获取颜色') |
| | | MakeTation.setContentColor(this.bouncedSelect) |
| | | }, |
| | | ChangeText () { |
| | | MakeTation.setContentText(this.bouncedText) |
| | | console.log(this.bouncedText) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .bounced-box { |
| | | position: absolute; |
| | | border: 1px solid grey; |
| | | width: 150px; |
| | | right: 5%; |
| | | top: 238px; |
| | | background-color: rgba(3, 28, 61, 0.8); |
| | | color: white; |
| | | cursor: default; |
| | | left: 814px; |
| | | |
| | | ul { |
| | | list-style: none; |
| | | padding: 0; |
| | | margin: 0; |
| | | |
| | | li { |
| | | margin: 1rem 0; |
| | | } |
| | | |
| | | .bounced-box-title { |
| | | background-color: rgba(34, 83, 130, 0.8); |
| | | cursor: move; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | |
| | | a { |
| | | color: white; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | |
| | | .bounced-box-content { |
| | | h6 { |
| | | padding: 0; |
| | | margin: 5px; |
| | | } |
| | | |
| | | div { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | textarea { |
| | | width: 90%; |
| | | resize: none; |
| | | outline: 0; |
| | | border: 1px solid #a0b3d6; |
| | | border-radius: 5px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .bounced-box-choose { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | /* eslint-disable */
|
| | | const init = (L) => {
|
| | | !function (t, e) {
|
| | | 'object' == typeof exports && 'undefined' != typeof module ? e() : 'function' == typeof define && define.amd ? define(e) : e()
|
| | | }(0, function () {
|
| | | 'use strict'
|
| | |
|
| | | function t (t, e) {
|
| | | return e = { exports: {} }, t(e, e.exports), e.exports
|
| | | }
|
| | |
|
| | | var e = 'undefined' != typeof window ? window : 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : {},
|
| | | n = t(function (t) {
|
| | | !function (e) {
|
| | | function n (t, e) {
|
| | | function n (t) {
|
| | | return e.bgcolor && (t.style.backgroundColor = e.bgcolor), e.width && (t.style.width = e.width + 'px'), e.height && (t.style.height = e.height + 'px'), e.style && Object.keys(e.style).forEach(function (n) {
|
| | | t.style[n] = e.style[n]
|
| | | }), t
|
| | | }
|
| | |
|
| | | return e = e || {}, s(e), Promise.resolve(t).then(function (t) {
|
| | | return u(t, e.filter, !0)
|
| | | }).then(c).then(d).then(n).then(function (n) {
|
| | | return g(n, e.width || h.width(t), e.height || h.height(t))
|
| | | })
|
| | | }
|
| | |
|
| | | function i (t, e) {
|
| | | return l(t, e || {}).then(function (e) {
|
| | | return e.getContext('2d').getImageData(0, 0, h.width(t), h.height(t)).data
|
| | | })
|
| | | }
|
| | |
|
| | | function o (t, e) {
|
| | | return l(t, e || {}).then(function (t) {
|
| | | return t.toDataURL()
|
| | | })
|
| | | }
|
| | |
|
| | | function r (t, e) {
|
| | | return e = e || {}, l(t, e).then(function (t) {
|
| | | return t.toDataURL('image/jpeg', e.quality || 1)
|
| | | })
|
| | | }
|
| | |
|
| | | function a (t, e) {
|
| | | return l(t, e || {}).then(h.canvasToBlob)
|
| | | }
|
| | |
|
| | | function s (t) {
|
| | | void 0 === t.imagePlaceholder ? w.impl.options.imagePlaceholder = M.imagePlaceholder : w.impl.options.imagePlaceholder = t.imagePlaceholder, void 0 === t.cacheBust ? w.impl.options.cacheBust = M.cacheBust : w.impl.options.cacheBust = t.cacheBust
|
| | | }
|
| | |
|
| | | function l (t, e) {
|
| | | function i (t) {
|
| | | var n = document.createElement('canvas')
|
| | | if (n.width = e.width || h.width(t), n.height = e.height || h.height(t), e.bgcolor) {
|
| | | var i = n.getContext('2d')
|
| | | i.fillStyle = e.bgcolor, i.fillRect(0, 0, n.width, n.height)
|
| | | }
|
| | | return n
|
| | | }
|
| | |
|
| | | return n(t, e).then(h.makeImage).then(h.delay(100)).then(function (e) {
|
| | | var n = i(t)
|
| | | return n.getContext('2d').drawImage(e, 0, 0), n
|
| | | })
|
| | | }
|
| | |
|
| | | function u (t, e, n) {
|
| | | function i (t) {
|
| | | return t instanceof HTMLCanvasElement ? h.makeImage(t.toDataURL()) : t.cloneNode(!1)
|
| | | }
|
| | |
|
| | | function o (t, e, n) {
|
| | | var i = t.childNodes
|
| | | return 0 === i.length ? Promise.resolve(e) : function (t, e, n) {
|
| | | var i = Promise.resolve()
|
| | | return e.forEach(function (e) {
|
| | | i = i.then(function () {
|
| | | return u(e, n)
|
| | | }).then(function (e) {
|
| | | e && t.appendChild(e)
|
| | | })
|
| | | }), i
|
| | | }(e, h.asArray(i), n).then(function () {
|
| | | return e
|
| | | })
|
| | | }
|
| | |
|
| | | function r (t, e) {
|
| | | function n () {
|
| | | !function (t, e) {
|
| | | t.cssText ? e.cssText = t.cssText : function (t, e) {
|
| | | h.asArray(t).forEach(function (n) {
|
| | | e.setProperty(n, t.getPropertyValue(n), t.getPropertyPriority(n))
|
| | | })
|
| | | }(t, e)
|
| | | }(window.getComputedStyle(t), e.style)
|
| | | }
|
| | |
|
| | | function i () {
|
| | | function n (n) {
|
| | | var i = window.getComputedStyle(t, n), o = i.getPropertyValue('content')
|
| | | if ('' !== o && 'none' !== o) {
|
| | | var r = h.uid()
|
| | | e.className = e.className + ' ' + r
|
| | | var a = document.createElement('style')
|
| | | a.appendChild(function (t, e, n) {
|
| | | var i = '.' + t + ':' + e, o = n.cssText ? function (t) {
|
| | | var e = t.getPropertyValue('content')
|
| | | return t.cssText + ' content: ' + e + ';'
|
| | | }(n) : function (t) {
|
| | | function e (e) {
|
| | | return e + ': ' + t.getPropertyValue(e) + (t.getPropertyPriority(e) ? ' !important' : '')
|
| | | }
|
| | |
|
| | | return h.asArray(t).map(e).join('; ') + ';'
|
| | | }(n)
|
| | | return document.createTextNode(i + '{' + o + '}')
|
| | | }(r, n, i)), e.appendChild(a)
|
| | | }
|
| | | }
|
| | |
|
| | | [':before', ':after'].forEach(function (t) {
|
| | | n(t)
|
| | | })
|
| | | }
|
| | |
|
| | | function o () {
|
| | | t instanceof HTMLTextAreaElement && (e.innerHTML = t.value), t instanceof HTMLInputElement && e.setAttribute('value', t.value)
|
| | | }
|
| | |
|
| | | function r () {
|
| | | e instanceof SVGElement && (e.setAttribute('xmlns', 'http://www.w3.org/2000/svg'), e instanceof SVGRectElement && ['width', 'height'].forEach(function (t) {
|
| | | var n = e.getAttribute(t)
|
| | | n && e.style.setProperty(t, n)
|
| | | }))
|
| | | }
|
| | |
|
| | | return e instanceof Element ? Promise.resolve().then(n).then(i).then(o).then(r).then(function () {
|
| | | return e
|
| | | }) : e
|
| | | }
|
| | |
|
| | | return n || !e || e(t) ? Promise.resolve(t).then(i).then(function (n) {
|
| | | return o(t, n, e)
|
| | | }).then(function (e) {
|
| | | return r(t, e)
|
| | | }) : Promise.resolve()
|
| | | }
|
| | |
|
| | | function c (t) {
|
| | | return p.resolveAll().then(function (e) {
|
| | | var n = document.createElement('style')
|
| | | return t.appendChild(n), n.appendChild(document.createTextNode(e)), t
|
| | | })
|
| | | }
|
| | |
|
| | | function d (t) {
|
| | | return f.inlineAll(t).then(function () {
|
| | | return t
|
| | | })
|
| | | }
|
| | |
|
| | | function g (t, e, n) {
|
| | | return Promise.resolve(t).then(function (t) {
|
| | | return t.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml'), (new XMLSerializer).serializeToString(t)
|
| | | }).then(h.escapeXhtml).then(function (t) {
|
| | | return '<foreignObject x="0" y="0" width="100%" height="100%">' + t + '</foreignObject>'
|
| | | }).then(function (t) {
|
| | | return '<svg xmlns="http://www.w3.org/2000/svg" width="' + e + '" height="' + n + '">' + t + '</svg>'
|
| | | }).then(function (t) {
|
| | | return 'data:image/svg+xml;charset=utf-8,' + t
|
| | | })
|
| | | }
|
| | |
|
| | | var h = function () {
|
| | | function t () {
|
| | | var t = 'application/font-woff', e = 'image/jpeg'
|
| | | return {
|
| | | woff: t,
|
| | | woff2: t,
|
| | | ttf: 'application/font-truetype',
|
| | | eot: 'application/vnd.ms-fontobject',
|
| | | png: 'image/png',
|
| | | jpg: e,
|
| | | jpeg: e,
|
| | | gif: 'image/gif',
|
| | | tiff: 'image/tiff',
|
| | | svg: 'image/svg+xml'
|
| | | }
|
| | | }
|
| | |
|
| | | function e (t) {
|
| | | var e = /\.([^\.\/]*?)$/g.exec(t)
|
| | | return e ? e[1] : ''
|
| | | }
|
| | |
|
| | | function n (n) {
|
| | | var i = e(n).toLowerCase()
|
| | | return t()[i] || ''
|
| | | }
|
| | |
|
| | | function i (t) {
|
| | | return -1 !== t.search(/^(data:)/)
|
| | | }
|
| | |
|
| | | function o (t) {
|
| | | return new Promise(function (e) {
|
| | | for (var n = window.atob(t.toDataURL().split(',')[1]), i = n.length, o = new Uint8Array(i), r = 0; r < i; r++) o[r] = n.charCodeAt(r)
|
| | | e(new Blob([o], { type: 'image/png' }))
|
| | | })
|
| | | }
|
| | |
|
| | | function r (t) {
|
| | | return t.toBlob ? new Promise(function (e) {
|
| | | t.toBlob(e)
|
| | | }) : o(t)
|
| | | }
|
| | |
|
| | | function a (t, e) {
|
| | | var n = document.implementation.createHTMLDocument(), i = n.createElement('base')
|
| | | n.head.appendChild(i)
|
| | | var o = n.createElement('a')
|
| | | return n.body.appendChild(o), i.href = e, o.href = t, o.href
|
| | | }
|
| | |
|
| | | function s (t) {
|
| | | return new Promise(function (e, n) {
|
| | | var i = new Image
|
| | | i.onload = function () {
|
| | | e(i)
|
| | | }, i.onerror = n, i.src = t
|
| | | })
|
| | | }
|
| | |
|
| | | function l (t) {
|
| | | var e = 3e4
|
| | | return w.impl.options.cacheBust && (t += (/\?/.test(t) ? '&' : '?') + (new Date).getTime()), new Promise(function (n) {
|
| | | function i () {
|
| | | if (4 === a.readyState) {
|
| | | if (200 !== a.status) return void (s ? n(s) : r('cannot fetch resource: ' + t + ', status: ' + a.status))
|
| | | var e = new FileReader
|
| | | e.onloadend = function () {
|
| | | var t = e.result.split(/,/)[1]
|
| | | n(t)
|
| | | }, e.readAsDataURL(a.response)
|
| | | }
|
| | | }
|
| | |
|
| | | function o () {
|
| | | s ? n(s) : r('timeout of ' + e + 'ms occured while fetching resource: ' + t)
|
| | | }
|
| | |
|
| | | function r (t) {
|
| | | console.error(t), n('')
|
| | | }
|
| | |
|
| | | var a = new XMLHttpRequest
|
| | | a.onreadystatechange = i, a.ontimeout = o, a.responseType = 'blob', a.timeout = e, a.open('GET', t, !0), a.send()
|
| | | var s
|
| | | if (w.impl.options.imagePlaceholder) {
|
| | | var l = w.impl.options.imagePlaceholder.split(/,/)
|
| | | l && l[1] && (s = l[1])
|
| | | }
|
| | | })
|
| | | }
|
| | |
|
| | | function u (t, e) {
|
| | | return 'data:' + e + ';base64,' + t
|
| | | }
|
| | |
|
| | | function c (t) {
|
| | | return t.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1')
|
| | | }
|
| | |
|
| | | function d (t) {
|
| | | return function (e) {
|
| | | return new Promise(function (n) {
|
| | | setTimeout(function () {
|
| | | n(e)
|
| | | }, t)
|
| | | })
|
| | | }
|
| | | }
|
| | |
|
| | | function g (t) {
|
| | | for (var e = [], n = t.length, i = 0; i < n; i++) e.push(t[i])
|
| | | return e
|
| | | }
|
| | |
|
| | | function h (t) {
|
| | | return t.replace(/#/g, '%23').replace(/\n/g, '%0A')
|
| | | }
|
| | |
|
| | | function m (t) {
|
| | | var e = f(t, 'border-left-width'), n = f(t, 'border-right-width')
|
| | | return t.scrollWidth + e + n
|
| | | }
|
| | |
|
| | | function p (t) {
|
| | | var e = f(t, 'border-top-width'), n = f(t, 'border-bottom-width')
|
| | | return t.scrollHeight + e + n
|
| | | }
|
| | |
|
| | | function f (t, e) {
|
| | | var n = window.getComputedStyle(t).getPropertyValue(e)
|
| | | return parseFloat(n.replace('px', ''))
|
| | | }
|
| | |
|
| | | return {
|
| | | escape: c,
|
| | | parseExtension: e,
|
| | | mimeType: n,
|
| | | dataAsUrl: u,
|
| | | isDataUrl: i,
|
| | | canvasToBlob: r,
|
| | | resolveUrl: a,
|
| | | getAndEncode: l,
|
| | | uid: function () {
|
| | | var t = 0
|
| | | return function () {
|
| | | return 'u' + function () {
|
| | | return ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4)
|
| | | }() + t++
|
| | | }
|
| | | }(),
|
| | | delay: d,
|
| | | asArray: g,
|
| | | escapeXhtml: h,
|
| | | makeImage: s,
|
| | | width: m,
|
| | | height: p
|
| | | }
|
| | | }(), m = function () {
|
| | | function t (t) {
|
| | | return -1 !== t.search(o)
|
| | | }
|
| | |
|
| | | function e (t) {
|
| | | for (var e, n = []; null !== (e = o.exec(t));) n.push(e[1])
|
| | | return n.filter(function (t) {
|
| | | return !h.isDataUrl(t)
|
| | | })
|
| | | }
|
| | |
|
| | | function n (t, e, n, i) {
|
| | | function o (t) {
|
| | | return new RegExp('(url\\([\'"]?)(' + h.escape(t) + ')([\'"]?\\))', 'g')
|
| | | }
|
| | |
|
| | | return Promise.resolve(e).then(function (t) {
|
| | | return n ? h.resolveUrl(t, n) : t
|
| | | }).then(i || h.getAndEncode).then(function (t) {
|
| | | return h.dataAsUrl(t, h.mimeType(e))
|
| | | }).then(function (n) {
|
| | | return t.replace(o(e), '$1' + n + '$3')
|
| | | })
|
| | | }
|
| | |
|
| | | function i (i, o, r) {
|
| | | return function () {
|
| | | return !t(i)
|
| | | }() ? Promise.resolve(i) : Promise.resolve(i).then(e).then(function (t) {
|
| | | var e = Promise.resolve(i)
|
| | | return t.forEach(function (t) {
|
| | | e = e.then(function (e) {
|
| | | return n(e, t, o, r)
|
| | | })
|
| | | }), e
|
| | | })
|
| | | }
|
| | |
|
| | | var o = /url\(['"]?([^'"]+?)['"]?\)/g
|
| | | return {
|
| | | inlineAll: i,
|
| | | shouldProcess: t,
|
| | | impl: {
|
| | | readUrls: e,
|
| | | inline: n
|
| | | }
|
| | | }
|
| | | }(), p = function () {
|
| | | function t () {
|
| | | return e(document).then(function (t) {
|
| | | return Promise.all(t.map(function (t) {
|
| | | return t.resolve()
|
| | | }))
|
| | | }).then(function (t) {
|
| | | return t.join('\n')
|
| | | })
|
| | | }
|
| | |
|
| | | function e () {
|
| | | function t (t) {
|
| | | return t.filter(function (t) {
|
| | | return t.type === CSSRule.FONT_FACE_RULE
|
| | | }).filter(function (t) {
|
| | | return m.shouldProcess(t.style.getPropertyValue('src'))
|
| | | })
|
| | | }
|
| | |
|
| | | function e (t) {
|
| | | var e = []
|
| | | return t.forEach(function (t) {
|
| | | try {
|
| | | h.asArray(t.cssRules || []).forEach(e.push.bind(e))
|
| | | } catch (e) {
|
| | | console.log('Error while reading CSS rules from ' + t.href, e.toString())
|
| | | }
|
| | | }), e
|
| | | }
|
| | |
|
| | | function n (t) {
|
| | | return {
|
| | | resolve: function () {
|
| | | var e = (t.parentStyleSheet || {}).href
|
| | | return m.inlineAll(t.cssText, e)
|
| | | },
|
| | | src: function () {
|
| | | return t.style.getPropertyValue('src')
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | return Promise.resolve(h.asArray(document.styleSheets)).then(e).then(t).then(function (t) {
|
| | | return t.map(n)
|
| | | })
|
| | | }
|
| | |
|
| | | return {
|
| | | resolveAll: t,
|
| | | impl: { readAll: e }
|
| | | }
|
| | | }(), f = function () {
|
| | | function t (t) {
|
| | | function e (e) {
|
| | | return h.isDataUrl(t.src) ? Promise.resolve() : Promise.resolve(t.src).then(e || h.getAndEncode).then(function (e) {
|
| | | return h.dataAsUrl(e, h.mimeType(t.src))
|
| | | }).then(function (e) {
|
| | | return new Promise(function (n, i) {
|
| | | t.onload = n, t.onerror = i, t.src = e
|
| | | })
|
| | | })
|
| | | }
|
| | |
|
| | | return { inline: e }
|
| | | }
|
| | |
|
| | | function e (n) {
|
| | | return n instanceof Element ? function (t) {
|
| | | var e = t.style.getPropertyValue('background')
|
| | | return e ? m.inlineAll(e).then(function (e) {
|
| | | t.style.setProperty('background', e, t.style.getPropertyPriority('background'))
|
| | | }).then(function () {
|
| | | return t
|
| | | }) : Promise.resolve(t)
|
| | | }(n).then(function () {
|
| | | return n instanceof HTMLImageElement ? t(n).inline() : Promise.all(h.asArray(n.childNodes).map(function (t) {
|
| | | return e(t)
|
| | | }))
|
| | | }) : Promise.resolve(n)
|
| | | }
|
| | |
|
| | | return {
|
| | | inlineAll: e,
|
| | | impl: { newImage: t }
|
| | | }
|
| | | }(), M = {
|
| | | imagePlaceholder: void 0,
|
| | | cacheBust: !1
|
| | | }, w = {
|
| | | toSvg: n,
|
| | | toPng: o,
|
| | | toJpeg: r,
|
| | | toBlob: a,
|
| | | toPixelData: i,
|
| | | impl: {
|
| | | fontFaces: p,
|
| | | images: f,
|
| | | util: h,
|
| | | inliner: m,
|
| | | options: {}
|
| | | }
|
| | | }
|
| | | t.exports = w
|
| | | }()
|
| | | }), i = t(function (t) {
|
| | | var n = n || function (t) {
|
| | | if (!(void 0 === t || 'undefined' != typeof navigator && /MSIE [1-9]\./.test(navigator.userAgent))) {
|
| | | var e = t.document, n = function () {
|
| | | return t.URL || t.webkitURL || t
|
| | | }, i = e.createElementNS('http://www.w3.org/1999/xhtml', 'a'), o = 'download' in i, r = function (t) {
|
| | | var e = new MouseEvent('click')
|
| | | t.dispatchEvent(e)
|
| | | }, a = /constructor/i.test(t.HTMLElement) || t.safari, s = /CriOS\/[\d]+/.test(navigator.userAgent),
|
| | | l = function (e) {
|
| | | (t.setImmediate || t.setTimeout)(function () {
|
| | | throw e
|
| | | }, 0)
|
| | | }, u = function (t) {
|
| | | var e = function () {
|
| | | 'string' == typeof t ? n().revokeObjectURL(t) : t.remove()
|
| | | }
|
| | | setTimeout(e, 4e4)
|
| | | }, c = function (t, e, n) {
|
| | | e = [].concat(e)
|
| | | for (var i = e.length; i--;) {
|
| | | var o = t['on' + e[i]]
|
| | | if ('function' == typeof o) {
|
| | | try {
|
| | | o.call(t, n || t)
|
| | | } catch (t) {
|
| | | l(t)
|
| | | }
|
| | | }
|
| | | }
|
| | | }, d = function (t) {
|
| | | return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type) ? new Blob([String.fromCharCode(65279), t], { type: t.type }) : t
|
| | | }, g = function (e, l, g) {
|
| | | g || (e = d(e))
|
| | | var h, m = this, p = e.type, f = 'application/octet-stream' === p, M = function () {
|
| | | c(m, 'writestart progress write writeend'.split(' '))
|
| | | }
|
| | | if (m.readyState = m.INIT, o) {
|
| | | return h = n().createObjectURL(e), void setTimeout(function () {
|
| | | i.href = h, i.download = l, r(i), M(), u(h), m.readyState = m.DONE
|
| | | })
|
| | | }
|
| | | !function () {
|
| | | if ((s || f && a) && t.FileReader) {
|
| | | var i = new FileReader
|
| | | return i.onloadend = function () {
|
| | | var e = s ? i.result : i.result.replace(/^data:[^;]*;/, 'data:attachment/file;')
|
| | | t.open(e, '_blank') || (t.location.href = e), e = void 0, m.readyState = m.DONE, M()
|
| | | }, i.readAsDataURL(e), void (m.readyState = m.INIT)
|
| | | }
|
| | | if (h || (h = n().createObjectURL(e)), f) {
|
| | | t.location.href = h
|
| | | } else {
|
| | | t.open(h, '_blank') || (t.location.href = h)
|
| | | }
|
| | | m.readyState = m.DONE, M(), u(h)
|
| | | }()
|
| | | }, h = g.prototype, m = function (t, e, n) {
|
| | | return new g(t, e || t.name || 'download', n)
|
| | | }
|
| | | return 'undefined' != typeof navigator && navigator.msSaveOrOpenBlob ? function (t, e, n) {
|
| | | return e = e || t.name || 'download', n || (t = d(t)), navigator.msSaveOrOpenBlob(t, e)
|
| | | } : (h.abort = function () {
|
| | | }, h.readyState = h.INIT = 0, h.WRITING = 1, h.DONE = 2, h.error = h.onwritestart = h.onprogress = h.onwrite = h.onabort = h.onerror = h.onwriteend = null, m)
|
| | | }
|
| | | }('undefined' != typeof self && self || 'undefined' != typeof window && window || e.content)
|
| | | t.exports && (t.exports.saveAs = n)
|
| | | })
|
| | | L.Control.EasyPrint = L.Control.extend({
|
| | | options: {
|
| | | title: 'Print map',
|
| | | position: 'topleft',
|
| | | sizeModes: ['Current'],
|
| | | filename: 'map',
|
| | | exportOnly: !1,
|
| | | hidden: !1,
|
| | | tileWait: 500,
|
| | | hideControlContainer: !0,
|
| | | customWindowTitle: window.document.title,
|
| | | spinnerBgCOlor: '#0DC5C1',
|
| | | customSpinnerClass: 'epLoader',
|
| | | defaultSizeTitles: {
|
| | | Current: 'Current Size',
|
| | | A4Landscape: 'A4 Landscape',
|
| | | A4Portrait: 'A4 Portrait'
|
| | | }
|
| | | },
|
| | | onAdd: function () {
|
| | | this.mapContainer = this._map.getContainer(), this.options.sizeModes = this.options.sizeModes.map(function (t) {
|
| | | return 'Current' === t ? {
|
| | | name: this.options.defaultSizeTitles.Current,
|
| | | className: 'CurrentSize'
|
| | | } : 'A4Landscape' === t ? {
|
| | | height: this._a4PageSize.height,
|
| | | width: this._a4PageSize.width,
|
| | | name: this.options.defaultSizeTitles.A4Landscape,
|
| | | className: 'A4Landscape page'
|
| | | } : 'A4Portrait' === t ? {
|
| | | height: this._a4PageSize.width,
|
| | | width: this._a4PageSize.height,
|
| | | name: this.options.defaultSizeTitles.A4Portrait,
|
| | | className: 'A4Portrait page'
|
| | | } : t
|
| | | }, this)
|
| | | var t = L.DomUtil.create('div', 'leaflet-control-easyPrint leaflet-bar leaflet-control')
|
| | | if (!this.options.hidden) {
|
| | | this._addCss(), L.DomEvent.addListener(t, 'mouseover', this._togglePageSizeButtons, this), L.DomEvent.addListener(t, 'mouseout', this._togglePageSizeButtons, this)
|
| | | var e = 'leaflet-control-easyPrint-button'
|
| | | this.options.exportOnly && (e += '-export'), this.link = L.DomUtil.create('a', e, t), this.link.id = 'leafletEasyPrint', this.link.title = this.options.title, this.holder = L.DomUtil.create('ul', 'easyPrintHolder', t), this.options.sizeModes.forEach(function (t) {
|
| | | var e = L.DomUtil.create('li', 'easyPrintSizeMode', this.holder)
|
| | | e.title = t.name
|
| | | L.DomUtil.create('a', t.className, e)
|
| | | L.DomEvent.addListener(e, 'click', this.printMap, this)
|
| | | }, this), L.DomEvent.disableClickPropagation(t)
|
| | | }
|
| | | return t
|
| | | },
|
| | | printMap: function (t, e) {
|
| | | e && (this.options.filename = e), this.options.exportOnly || (this._page = window.open('', '_blank', 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=10, top=10, width=200, height=250, visible=none'), this._page.document.write(this._createSpinner(this.options.customWindowTitle, this.options.customSpinnerClass, this.options.spinnerBgCOlor))), this.originalState = {
|
| | | mapWidth: this.mapContainer.style.width,
|
| | | widthWasAuto: !1,
|
| | | widthWasPercentage: !1,
|
| | | mapHeight: this.mapContainer.style.height,
|
| | | zoom: this._map.getZoom(),
|
| | | center: this._map.getCenter()
|
| | | }, 'auto' === this.originalState.mapWidth ? (this.originalState.mapWidth = this._map.getSize().x + 'px', this.originalState.widthWasAuto = !0) : this.originalState.mapWidth.includes('%') && (this.originalState.percentageWidth = this.originalState.mapWidth, this.originalState.widthWasPercentage = !0, this.originalState.mapWidth = this._map.getSize().x + 'px'), this._map.fire('easyPrint-start', { event: t }), this.options.hidden || this._togglePageSizeButtons({ type: null }), this.options.hideControlContainer && this._toggleControls()
|
| | | var n = 'string' != typeof t ? t.target.className : t
|
| | | if ('CurrentSize' === n) return this._printOpertion(n)
|
| | | this.outerContainer = this._createOuterContainer(this.mapContainer), this.originalState.widthWasAuto && (this.outerContainer.style.width = this.originalState.mapWidth), this._createImagePlaceholder(n)
|
| | | },
|
| | | _createImagePlaceholder: function (t) {
|
| | | var e = this
|
| | | n.toPng(this.mapContainer, {
|
| | | width: parseInt(this.originalState.mapWidth.replace('px')),
|
| | | height: parseInt(this.originalState.mapHeight.replace('px'))
|
| | | }).then(function (n) {
|
| | | e.blankDiv = document.createElement('div')
|
| | | var i = e.blankDiv
|
| | | e.outerContainer.parentElement.insertBefore(i, e.outerContainer), i.className = 'epHolder', i.style.backgroundImage = 'url("' + n + '")', i.style.position = 'absolute', i.style.zIndex = 1011, i.style.display = 'initial', i.style.width = e.originalState.mapWidth, i.style.height = e.originalState.mapHeight, e._resizeAndPrintMap(t)
|
| | | }).catch(function (t) {
|
| | | console.error('oops, something went wrong!', t)
|
| | | })
|
| | | },
|
| | | _resizeAndPrintMap: function (t) {
|
| | | this.outerContainer.style.opacity = 0
|
| | | var e = this.options.sizeModes.filter(function (e) {
|
| | | return e.className === t
|
| | | })
|
| | | e = e[0], this.mapContainer.style.width = e.width + 'px', this.mapContainer.style.height = e.height + 'px', this.mapContainer.style.width > this.mapContainer.style.height ? this.orientation = 'portrait' : this.orientation = 'landscape', this._map.setView(this.originalState.center), this._map.setZoom(this.originalState.zoom), this._map.invalidateSize(), this.options.tileLayer ? this._pausePrint(t) : this._printOpertion(t)
|
| | | },
|
| | | _pausePrint: function (t) {
|
| | | var e = this, n = setInterval(function () {
|
| | | e.options.tileLayer.isLoading() || (clearInterval(n), e._printOpertion(t))
|
| | | }, e.options.tileWait)
|
| | | },
|
| | | _printOpertion: function (t) {
|
| | | var e = this, o = this.mapContainer.style.width;
|
| | | (this.originalState.widthWasAuto && 'CurrentSize' === t || this.originalState.widthWasPercentage && 'CurrentSize' === t) && (o = this.originalState.mapWidth), n.toPng(e.mapContainer, {
|
| | | width: parseInt(o),
|
| | | height: parseInt(e.mapContainer.style.height.replace('px'))
|
| | | }).then(function (t) {
|
| | | var n = e._dataURItoBlob(t)
|
| | | e.options.exportOnly ? i.saveAs(n, e.options.filename + '.png') : e._sendToBrowserPrint(t, e.orientation), e._toggleControls(!0), e.outerContainer && (e.originalState.widthWasAuto ? e.mapContainer.style.width = 'auto' : e.originalState.widthWasPercentage ? e.mapContainer.style.width = e.originalState.percentageWidth : e.mapContainer.style.width = e.originalState.mapWidth, e.mapContainer.style.height = e.originalState.mapHeight, e._removeOuterContainer(e.mapContainer, e.outerContainer, e.blankDiv), e._map.invalidateSize(), e._map.setView(e.originalState.center), e._map.setZoom(e.originalState.zoom)), e._map.fire('easyPrint-finished')
|
| | | }).catch(function (t) {
|
| | | console.error('Print operation failed', t)
|
| | | })
|
| | | },
|
| | | _sendToBrowserPrint: function (t, e) {
|
| | | this._page.resizeTo(600, 800)
|
| | | var n = this._createNewWindow(t, e, this)
|
| | | this._page.document.body.innerHTML = '', this._page.document.write(n), this._page.document.close()
|
| | | },
|
| | | _createSpinner: function (t, e, n) {
|
| | | return '<html><head><title>' + t + '</title></head><body><style>\n body{\n background: ' + n + ';\n }\n .epLoader,\n .epLoader:before,\n .epLoader:after {\n border-radius: 50%;\n }\n .epLoader {\n color: #ffffff;\n font-size: 11px;\n text-indent: -99999em;\n margin: 55px auto;\n position: relative;\n width: 10em;\n height: 10em;\n box-shadow: inset 0 0 0 1em;\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n }\n .epLoader:before,\n .epLoader:after {\n position: absolute;\n content: \'\';\n }\n .epLoader:before {\n width: 5.2em;\n height: 10.2em;\n background: #0dc5c1;\n border-radius: 10.2em 0 0 10.2em;\n top: -0.1em;\n left: -0.1em;\n -webkit-transform-origin: 5.2em 5.1em;\n transform-origin: 5.2em 5.1em;\n -webkit-animation: load2 2s infinite ease 1.5s;\n animation: load2 2s infinite ease 1.5s;\n }\n .epLoader:after {\n width: 5.2em;\n height: 10.2em;\n background: #0dc5c1;\n border-radius: 0 10.2em 10.2em 0;\n top: -0.1em;\n left: 5.1em;\n -webkit-transform-origin: 0px 5.1em;\n transform-origin: 0px 5.1em;\n -webkit-animation: load2 2s infinite ease;\n animation: load2 2s infinite ease;\n }\n @-webkit-keyframes load2 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n }\n @keyframes load2 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n }\n </style>\n <div class="' + e + '">Loading...</div></body></html>'
|
| | | },
|
| | | _createNewWindow: function (t, e, n) {
|
| | | return '<html><head>\n <style>@media print {\n img { max-width: 98%!important; max-height: 98%!important; }\n @page { size: ' + e + ';}}\n </style>\n <script>function step1(){\n setTimeout(\'step2()\', 10);}\n function step2(){window.print();window.close()}\n <\/script></head><body onload=\'step1()\'>\n <img src="' + t + '" style="display:block; margin:auto;"></body></html>'
|
| | | },
|
| | | _createOuterContainer: function (t) {
|
| | | var e = document.createElement('div')
|
| | | return t.parentNode.insertBefore(e, t), t.parentNode.removeChild(t), e.appendChild(t), e.style.width = t.style.width, e.style.height = t.style.height, e.style.display = 'inline-block', e.style.overflow = 'hidden', e
|
| | | },
|
| | | _removeOuterContainer: function (t, e, n) {
|
| | | e.parentNode && (e.parentNode.insertBefore(t, e), e.parentNode.removeChild(n), e.parentNode.removeChild(e))
|
| | | },
|
| | | _addCss: function () {
|
| | | var t = document.createElement('style')
|
| | | t.type = 'text/css', t.innerHTML = '.leaflet-control-easyPrint-button { \n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNMTI4LDMyaDI1NnY2NEgxMjhWMzJ6IE00ODAsMTI4SDMyYy0xNy42LDAtMzIsMTQuNC0zMiwzMnYxNjBjMCwxNy42LDE0LjM5OCwzMiwzMiwzMmg5NnYxMjhoMjU2VjM1Mmg5NiAgIGMxNy42LDAsMzItMTQuNCwzMi0zMlYxNjBDNTEyLDE0Mi40LDQ5Ny42LDEyOCw0ODAsMTI4eiBNMzUyLDQ0OEgxNjBWMjg4aDE5MlY0NDh6IE00ODcuMTk5LDE3NmMwLDEyLjgxMy0xMC4zODcsMjMuMi0yMy4xOTcsMjMuMiAgIGMtMTIuODEyLDAtMjMuMjAxLTEwLjM4Ny0yMy4yMDEtMjMuMnMxMC4zODktMjMuMiwyMy4xOTktMjMuMkM0NzYuODE0LDE1Mi44LDQ4Ny4xOTksMTYzLjE4Nyw0ODcuMTk5LDE3NnoiIGZpbGw9IiMwMDAwMDAiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);\n background-size: 16px 16px; \n cursor: pointer; \n }\n .leaflet-control-easyPrint-button-export { \n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDQzMy41IDQzMy41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MzMuNSA0MzMuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnIGlkPSJmaWxlLWRvd25sb2FkIj4KCQk8cGF0aCBkPSJNMzk1LjI1LDE1M2gtMTAyVjBoLTE1M3YxNTNoLTEwMmwxNzguNSwxNzguNUwzOTUuMjUsMTUzeiBNMzguMjUsMzgyLjV2NTFoMzU3di01MUgzOC4yNXoiIGZpbGw9IiMwMDAwMDAiLz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);\n background-size: 16px 16px; \n cursor: pointer; \n }\n .easyPrintHolder a {\n background-size: 16px 16px;\n cursor: pointer;\n }\n .easyPrintHolder .CurrentSize{\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgdmVyc2lvbj0iMS4xIiBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjQgNjQiPgogIDxnPgogICAgPGcgZmlsbD0iIzFEMUQxQiI+CiAgICAgIDxwYXRoIGQ9Ik0yNS4yNTUsMzUuOTA1TDQuMDE2LDU3LjE0NVY0Ni41OWMwLTEuMTA4LTAuODk3LTIuMDA4LTIuMDA4LTIuMDA4QzAuODk4LDQ0LjU4MiwwLDQ1LjQ4MSwwLDQ2LjU5djE1LjQwMiAgICBjMCwwLjI2MSwwLjA1MywwLjUyMSwwLjE1NSwwLjc2N2MwLjIwMywwLjQ5MiwwLjU5NCwwLjg4MiwxLjA4NiwxLjA4N0MxLjQ4Niw2My45NDcsMS43NDcsNjQsMi4wMDgsNjRoMTUuNDAzICAgIGMxLjEwOSwwLDIuMDA4LTAuODk4LDIuMDA4LTIuMDA4cy0wLjg5OC0yLjAwOC0yLjAwOC0yLjAwOEg2Ljg1NWwyMS4yMzgtMjEuMjRjMC43ODQtMC43ODQsMC43ODQtMi4wNTUsMC0yLjgzOSAgICBTMjYuMDM5LDM1LjEyMSwyNS4yNTUsMzUuOTA1eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgICA8cGF0aCBkPSJtNjMuODQ1LDEuMjQxYy0wLjIwMy0wLjQ5MS0wLjU5NC0wLjg4Mi0xLjA4Ni0xLjA4Ny0wLjI0NS0wLjEwMS0wLjUwNi0wLjE1NC0wLjc2Ny0wLjE1NGgtMTUuNDAzYy0xLjEwOSwwLTIuMDA4LDAuODk4LTIuMDA4LDIuMDA4czAuODk4LDIuMDA4IDIuMDA4LDIuMDA4aDEwLjU1NmwtMjEuMjM4LDIxLjI0Yy0wLjc4NCwwLjc4NC0wLjc4NCwyLjA1NSAwLDIuODM5IDAuMzkyLDAuMzkyIDAuOTA2LDAuNTg5IDEuNDIsMC41ODlzMS4wMjctMC4xOTcgMS40MTktMC41ODlsMjEuMjM4LTIxLjI0djEwLjU1NWMwLDEuMTA4IDAuODk3LDIuMDA4IDIuMDA4LDIuMDA4IDEuMTA5LDAgMi4wMDgtMC44OTkgMi4wMDgtMi4wMDh2LTE1LjQwMmMwLTAuMjYxLTAuMDUzLTAuNTIyLTAuMTU1LTAuNzY3eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==)\n }\n .easyPrintHolder .page {\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ0NC44MzMgNDQ0LjgzMyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDQ0LjgzMyA0NDQuODMzOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij4KPGc+Cgk8Zz4KCQk8cGF0aCBkPSJNNTUuMjUsNDQ0LjgzM2gzMzQuMzMzYzkuMzUsMCwxNy03LjY1LDE3LTE3VjEzOS4xMTdjMC00LjgxNy0xLjk4My05LjM1LTUuMzgzLTEyLjQ2N0wyNjkuNzMzLDQuNTMzICAgIEMyNjYuNjE3LDEuNywyNjIuMzY3LDAsMjU4LjExNywwSDU1LjI1Yy05LjM1LDAtMTcsNy42NS0xNywxN3Y0MTAuODMzQzM4LjI1LDQzNy4xODMsNDUuOSw0NDQuODMzLDU1LjI1LDQ0NC44MzN6ICAgICBNMzcyLjU4MywxNDYuNDgzdjAuODVIMjU2LjQxN3YtMTA4LjhMMzcyLjU4MywxNDYuNDgzeiBNNzIuMjUsMzRoMTUwLjE2N3YxMzAuMzMzYzAsOS4zNSw3LjY1LDE3LDE3LDE3aDEzMy4xNjd2MjI5LjVINzIuMjVWMzR6ICAgICIgZmlsbD0iIzAwMDAwMCIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=);\n }\n .easyPrintHolder .A4Landscape { \n transform: rotate(-90deg);\n }\n\n .leaflet-control-easyPrint-button{\n display: inline-block;\n }\n .easyPrintHolder{\n margin-top:-31px;\n margin-bottom: -5px;\n margin-left: 30px;\n padding-left: 0px;\n display: none;\n }\n\n .easyPrintSizeMode {\n display: inline-block;\n }\n .easyPrintHolder .easyPrintSizeMode a {\n border-radius: 0px;\n }\n\n .easyPrintHolder .easyPrintSizeMode:last-child a{\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n margin-left: -1px;\n }\n\n .easyPrintPortrait:hover, .easyPrintLandscape:hover{\n background-color: #757570;\n cursor: pointer;\n }', document.body.appendChild(t)
|
| | | },
|
| | | _dataURItoBlob: function (t) {
|
| | | for (var e = atob(t.split(',')[1]), n = t.split(',')[0].split(':')[1].split(';')[0], i = new ArrayBuffer(e.length), o = new DataView(i), r = 0; r < e.length; r++) o.setUint8(r, e.charCodeAt(r))
|
| | | return new Blob([i], { type: n })
|
| | | },
|
| | | _togglePageSizeButtons: function (t) {
|
| | | var e = this.holder.style, n = this.link.style
|
| | | 'mouseover' === t.type ? (e.display = 'block', n.borderTopRightRadius = '0', n.borderBottomRightRadius = '0') : (e.display = 'none', n.borderTopRightRadius = '2px', n.borderBottomRightRadius = '2px')
|
| | | },
|
| | | _toggleControls: function (t) {
|
| | | var e = document.getElementsByClassName('leaflet-control-container')[0]
|
| | | if (t) return e.style.display = 'block'
|
| | | e.style.display = 'none'
|
| | | },
|
| | | _a4PageSize: {
|
| | | height: 715,
|
| | | width: 1045
|
| | | }
|
| | | }), L.easyPrint = function (t) {
|
| | | return new L.Control.EasyPrint(t)
|
| | | }
|
| | | })
|
| | | //# sourceMappingURL=bundle.js.map
|
| | | }
|
| | |
|
| | | export default {
|
| | | init
|
| | | }
|
| | | /* eslint-disable */ |
| | | const init = (L) => { |
| | | !function (t, e) { |
| | | 'object' == typeof exports && 'undefined' != typeof module ? e() : 'function' == typeof define && define.amd ? define(e) : e() |
| | | }(0, function () { |
| | | 'use strict' |
| | | |
| | | function t (t, e) { |
| | | return e = { exports: {} }, t(e, e.exports), e.exports |
| | | } |
| | | |
| | | var e = 'undefined' != typeof window ? window : 'undefined' != typeof global ? global : 'undefined' != typeof self ? self : {}, |
| | | n = t(function (t) { |
| | | !function (e) { |
| | | function n (t, e) { |
| | | function n (t) { |
| | | return e.bgcolor && (t.style.backgroundColor = e.bgcolor), e.width && (t.style.width = e.width + 'px'), e.height && (t.style.height = e.height + 'px'), e.style && Object.keys(e.style).forEach(function (n) { |
| | | t.style[n] = e.style[n] |
| | | }), t |
| | | } |
| | | |
| | | return e = e || {}, s(e), Promise.resolve(t).then(function (t) { |
| | | return u(t, e.filter, !0) |
| | | }).then(c).then(d).then(n).then(function (n) { |
| | | return g(n, e.width || h.width(t), e.height || h.height(t)) |
| | | }) |
| | | } |
| | | |
| | | function i (t, e) { |
| | | return l(t, e || {}).then(function (e) { |
| | | return e.getContext('2d').getImageData(0, 0, h.width(t), h.height(t)).data |
| | | }) |
| | | } |
| | | |
| | | function o (t, e) { |
| | | return l(t, e || {}).then(function (t) { |
| | | return t.toDataURL() |
| | | }) |
| | | } |
| | | |
| | | function r (t, e) { |
| | | return e = e || {}, l(t, e).then(function (t) { |
| | | return t.toDataURL('image/jpeg', e.quality || 1) |
| | | }) |
| | | } |
| | | |
| | | function a (t, e) { |
| | | return l(t, e || {}).then(h.canvasToBlob) |
| | | } |
| | | |
| | | function s (t) { |
| | | void 0 === t.imagePlaceholder ? w.impl.options.imagePlaceholder = M.imagePlaceholder : w.impl.options.imagePlaceholder = t.imagePlaceholder, void 0 === t.cacheBust ? w.impl.options.cacheBust = M.cacheBust : w.impl.options.cacheBust = t.cacheBust |
| | | } |
| | | |
| | | function l (t, e) { |
| | | function i (t) { |
| | | var n = document.createElement('canvas') |
| | | if (n.width = e.width || h.width(t), n.height = e.height || h.height(t), e.bgcolor) { |
| | | var i = n.getContext('2d') |
| | | i.fillStyle = e.bgcolor, i.fillRect(0, 0, n.width, n.height) |
| | | } |
| | | return n |
| | | } |
| | | |
| | | return n(t, e).then(h.makeImage).then(h.delay(100)).then(function (e) { |
| | | var n = i(t) |
| | | return n.getContext('2d').drawImage(e, 0, 0), n |
| | | }) |
| | | } |
| | | |
| | | function u (t, e, n) { |
| | | function i (t) { |
| | | return t instanceof HTMLCanvasElement ? h.makeImage(t.toDataURL()) : t.cloneNode(!1) |
| | | } |
| | | |
| | | function o (t, e, n) { |
| | | var i = t.childNodes |
| | | return 0 === i.length ? Promise.resolve(e) : function (t, e, n) { |
| | | var i = Promise.resolve() |
| | | return e.forEach(function (e) { |
| | | i = i.then(function () { |
| | | return u(e, n) |
| | | }).then(function (e) { |
| | | e && t.appendChild(e) |
| | | }) |
| | | }), i |
| | | }(e, h.asArray(i), n).then(function () { |
| | | return e |
| | | }) |
| | | } |
| | | |
| | | function r (t, e) { |
| | | function n () { |
| | | !function (t, e) { |
| | | t.cssText ? e.cssText = t.cssText : function (t, e) { |
| | | h.asArray(t).forEach(function (n) { |
| | | e.setProperty(n, t.getPropertyValue(n), t.getPropertyPriority(n)) |
| | | }) |
| | | }(t, e) |
| | | }(window.getComputedStyle(t), e.style) |
| | | } |
| | | |
| | | function i () { |
| | | function n (n) { |
| | | var i = window.getComputedStyle(t, n), o = i.getPropertyValue('content') |
| | | if ('' !== o && 'none' !== o) { |
| | | var r = h.uid() |
| | | e.className = e.className + ' ' + r |
| | | var a = document.createElement('style') |
| | | a.appendChild(function (t, e, n) { |
| | | var i = '.' + t + ':' + e, o = n.cssText ? function (t) { |
| | | var e = t.getPropertyValue('content') |
| | | return t.cssText + ' content: ' + e + ';' |
| | | }(n) : function (t) { |
| | | function e (e) { |
| | | return e + ': ' + t.getPropertyValue(e) + (t.getPropertyPriority(e) ? ' !important' : '') |
| | | } |
| | | |
| | | return h.asArray(t).map(e).join('; ') + ';' |
| | | }(n) |
| | | return document.createTextNode(i + '{' + o + '}') |
| | | }(r, n, i)), e.appendChild(a) |
| | | } |
| | | } |
| | | |
| | | [':before', ':after'].forEach(function (t) { |
| | | n(t) |
| | | }) |
| | | } |
| | | |
| | | function o () { |
| | | t instanceof HTMLTextAreaElement && (e.innerHTML = t.value), t instanceof HTMLInputElement && e.setAttribute('value', t.value) |
| | | } |
| | | |
| | | function r () { |
| | | e instanceof SVGElement && (e.setAttribute('xmlns', 'http://www.w3.org/2000/svg'), e instanceof SVGRectElement && ['width', 'height'].forEach(function (t) { |
| | | var n = e.getAttribute(t) |
| | | n && e.style.setProperty(t, n) |
| | | })) |
| | | } |
| | | |
| | | return e instanceof Element ? Promise.resolve().then(n).then(i).then(o).then(r).then(function () { |
| | | return e |
| | | }) : e |
| | | } |
| | | |
| | | return n || !e || e(t) ? Promise.resolve(t).then(i).then(function (n) { |
| | | return o(t, n, e) |
| | | }).then(function (e) { |
| | | return r(t, e) |
| | | }) : Promise.resolve() |
| | | } |
| | | |
| | | function c (t) { |
| | | return p.resolveAll().then(function (e) { |
| | | var n = document.createElement('style') |
| | | return t.appendChild(n), n.appendChild(document.createTextNode(e)), t |
| | | }) |
| | | } |
| | | |
| | | function d (t) { |
| | | return f.inlineAll(t).then(function () { |
| | | return t |
| | | }) |
| | | } |
| | | |
| | | function g (t, e, n) { |
| | | return Promise.resolve(t).then(function (t) { |
| | | return t.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml'), (new XMLSerializer).serializeToString(t) |
| | | }).then(h.escapeXhtml).then(function (t) { |
| | | return '<foreignObject x="0" y="0" width="100%" height="100%">' + t + '</foreignObject>' |
| | | }).then(function (t) { |
| | | return '<svg xmlns="http://www.w3.org/2000/svg" width="' + e + '" height="' + n + '">' + t + '</svg>' |
| | | }).then(function (t) { |
| | | return 'data:image/svg+xml;charset=utf-8,' + t |
| | | }) |
| | | } |
| | | |
| | | var h = function () { |
| | | function t () { |
| | | var t = 'application/font-woff', e = 'image/jpeg' |
| | | return { |
| | | woff: t, |
| | | woff2: t, |
| | | ttf: 'application/font-truetype', |
| | | eot: 'application/vnd.ms-fontobject', |
| | | png: 'image/png', |
| | | jpg: e, |
| | | jpeg: e, |
| | | gif: 'image/gif', |
| | | tiff: 'image/tiff', |
| | | svg: 'image/svg+xml' |
| | | } |
| | | } |
| | | |
| | | function e (t) { |
| | | var e = /\.([^\.\/]*?)$/g.exec(t) |
| | | return e ? e[1] : '' |
| | | } |
| | | |
| | | function n (n) { |
| | | var i = e(n).toLowerCase() |
| | | return t()[i] || '' |
| | | } |
| | | |
| | | function i (t) { |
| | | return -1 !== t.search(/^(data:)/) |
| | | } |
| | | |
| | | function o (t) { |
| | | return new Promise(function (e) { |
| | | for (var n = window.atob(t.toDataURL().split(',')[1]), i = n.length, o = new Uint8Array(i), r = 0; r < i; r++) o[r] = n.charCodeAt(r) |
| | | e(new Blob([o], { type: 'image/png' })) |
| | | }) |
| | | } |
| | | |
| | | function r (t) { |
| | | return t.toBlob ? new Promise(function (e) { |
| | | t.toBlob(e) |
| | | }) : o(t) |
| | | } |
| | | |
| | | function a (t, e) { |
| | | var n = document.implementation.createHTMLDocument(), i = n.createElement('base') |
| | | n.head.appendChild(i) |
| | | var o = n.createElement('a') |
| | | return n.body.appendChild(o), i.href = e, o.href = t, o.href |
| | | } |
| | | |
| | | function s (t) { |
| | | return new Promise(function (e, n) { |
| | | var i = new Image |
| | | i.onload = function () { |
| | | e(i) |
| | | }, i.onerror = n, i.src = t |
| | | }) |
| | | } |
| | | |
| | | function l (t) { |
| | | var e = 3e4 |
| | | return w.impl.options.cacheBust && (t += (/\?/.test(t) ? '&' : '?') + (new Date).getTime()), new Promise(function (n) { |
| | | function i () { |
| | | if (4 === a.readyState) { |
| | | if (200 !== a.status) return void (s ? n(s) : r('cannot fetch resource: ' + t + ', status: ' + a.status)) |
| | | var e = new FileReader |
| | | e.onloadend = function () { |
| | | var t = e.result.split(/,/)[1] |
| | | n(t) |
| | | }, e.readAsDataURL(a.response) |
| | | } |
| | | } |
| | | |
| | | function o () { |
| | | s ? n(s) : r('timeout of ' + e + 'ms occured while fetching resource: ' + t) |
| | | } |
| | | |
| | | function r (t) { |
| | | console.error(t), n('') |
| | | } |
| | | |
| | | var a = new XMLHttpRequest |
| | | a.onreadystatechange = i, a.ontimeout = o, a.responseType = 'blob', a.timeout = e, a.open('GET', t, !0), a.send() |
| | | var s |
| | | if (w.impl.options.imagePlaceholder) { |
| | | var l = w.impl.options.imagePlaceholder.split(/,/) |
| | | l && l[1] && (s = l[1]) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | function u (t, e) { |
| | | return 'data:' + e + ';base64,' + t |
| | | } |
| | | |
| | | function c (t) { |
| | | return t.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1') |
| | | } |
| | | |
| | | function d (t) { |
| | | return function (e) { |
| | | return new Promise(function (n) { |
| | | setTimeout(function () { |
| | | n(e) |
| | | }, t) |
| | | }) |
| | | } |
| | | } |
| | | |
| | | function g (t) { |
| | | for (var e = [], n = t.length, i = 0; i < n; i++) e.push(t[i]) |
| | | return e |
| | | } |
| | | |
| | | function h (t) { |
| | | return t.replace(/#/g, '%23').replace(/\n/g, '%0A') |
| | | } |
| | | |
| | | function m (t) { |
| | | var e = f(t, 'border-left-width'), n = f(t, 'border-right-width') |
| | | return t.scrollWidth + e + n |
| | | } |
| | | |
| | | function p (t) { |
| | | var e = f(t, 'border-top-width'), n = f(t, 'border-bottom-width') |
| | | return t.scrollHeight + e + n |
| | | } |
| | | |
| | | function f (t, e) { |
| | | var n = window.getComputedStyle(t).getPropertyValue(e) |
| | | return parseFloat(n.replace('px', '')) |
| | | } |
| | | |
| | | return { |
| | | escape: c, |
| | | parseExtension: e, |
| | | mimeType: n, |
| | | dataAsUrl: u, |
| | | isDataUrl: i, |
| | | canvasToBlob: r, |
| | | resolveUrl: a, |
| | | getAndEncode: l, |
| | | uid: function () { |
| | | var t = 0 |
| | | return function () { |
| | | return 'u' + function () { |
| | | return ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4) |
| | | }() + t++ |
| | | } |
| | | }(), |
| | | delay: d, |
| | | asArray: g, |
| | | escapeXhtml: h, |
| | | makeImage: s, |
| | | width: m, |
| | | height: p |
| | | } |
| | | }(), m = function () { |
| | | function t (t) { |
| | | return -1 !== t.search(o) |
| | | } |
| | | |
| | | function e (t) { |
| | | for (var e, n = []; null !== (e = o.exec(t));) n.push(e[1]) |
| | | return n.filter(function (t) { |
| | | return !h.isDataUrl(t) |
| | | }) |
| | | } |
| | | |
| | | function n (t, e, n, i) { |
| | | function o (t) { |
| | | return new RegExp('(url\\([\'"]?)(' + h.escape(t) + ')([\'"]?\\))', 'g') |
| | | } |
| | | |
| | | return Promise.resolve(e).then(function (t) { |
| | | return n ? h.resolveUrl(t, n) : t |
| | | }).then(i || h.getAndEncode).then(function (t) { |
| | | return h.dataAsUrl(t, h.mimeType(e)) |
| | | }).then(function (n) { |
| | | return t.replace(o(e), '$1' + n + '$3') |
| | | }) |
| | | } |
| | | |
| | | function i (i, o, r) { |
| | | return function () { |
| | | return !t(i) |
| | | }() ? Promise.resolve(i) : Promise.resolve(i).then(e).then(function (t) { |
| | | var e = Promise.resolve(i) |
| | | return t.forEach(function (t) { |
| | | e = e.then(function (e) { |
| | | return n(e, t, o, r) |
| | | }) |
| | | }), e |
| | | }) |
| | | } |
| | | |
| | | var o = /url\(['"]?([^'"]+?)['"]?\)/g |
| | | return { |
| | | inlineAll: i, |
| | | shouldProcess: t, |
| | | impl: { |
| | | readUrls: e, |
| | | inline: n |
| | | } |
| | | } |
| | | }(), p = function () { |
| | | function t () { |
| | | return e(document).then(function (t) { |
| | | return Promise.all(t.map(function (t) { |
| | | return t.resolve() |
| | | })) |
| | | }).then(function (t) { |
| | | return t.join('\n') |
| | | }) |
| | | } |
| | | |
| | | function e () { |
| | | function t (t) { |
| | | return t.filter(function (t) { |
| | | return t.type === CSSRule.FONT_FACE_RULE |
| | | }).filter(function (t) { |
| | | return m.shouldProcess(t.style.getPropertyValue('src')) |
| | | }) |
| | | } |
| | | |
| | | function e (t) { |
| | | var e = [] |
| | | return t.forEach(function (t) { |
| | | try { |
| | | h.asArray(t.cssRules || []).forEach(e.push.bind(e)) |
| | | } catch (e) { |
| | | console.log('Error while reading CSS rules from ' + t.href, e.toString()) |
| | | } |
| | | }), e |
| | | } |
| | | |
| | | function n (t) { |
| | | return { |
| | | resolve: function () { |
| | | var e = (t.parentStyleSheet || {}).href |
| | | return m.inlineAll(t.cssText, e) |
| | | }, |
| | | src: function () { |
| | | return t.style.getPropertyValue('src') |
| | | } |
| | | } |
| | | } |
| | | |
| | | return Promise.resolve(h.asArray(document.styleSheets)).then(e).then(t).then(function (t) { |
| | | return t.map(n) |
| | | }) |
| | | } |
| | | |
| | | return { |
| | | resolveAll: t, |
| | | impl: { readAll: e } |
| | | } |
| | | }(), f = function () { |
| | | function t (t) { |
| | | function e (e) { |
| | | return h.isDataUrl(t.src) ? Promise.resolve() : Promise.resolve(t.src).then(e || h.getAndEncode).then(function (e) { |
| | | return h.dataAsUrl(e, h.mimeType(t.src)) |
| | | }).then(function (e) { |
| | | return new Promise(function (n, i) { |
| | | t.onload = n, t.onerror = i, t.src = e |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | return { inline: e } |
| | | } |
| | | |
| | | function e (n) { |
| | | return n instanceof Element ? function (t) { |
| | | var e = t.style.getPropertyValue('background') |
| | | return e ? m.inlineAll(e).then(function (e) { |
| | | t.style.setProperty('background', e, t.style.getPropertyPriority('background')) |
| | | }).then(function () { |
| | | return t |
| | | }) : Promise.resolve(t) |
| | | }(n).then(function () { |
| | | return n instanceof HTMLImageElement ? t(n).inline() : Promise.all(h.asArray(n.childNodes).map(function (t) { |
| | | return e(t) |
| | | })) |
| | | }) : Promise.resolve(n) |
| | | } |
| | | |
| | | return { |
| | | inlineAll: e, |
| | | impl: { newImage: t } |
| | | } |
| | | }(), M = { |
| | | imagePlaceholder: void 0, |
| | | cacheBust: !1 |
| | | }, w = { |
| | | toSvg: n, |
| | | toPng: o, |
| | | toJpeg: r, |
| | | toBlob: a, |
| | | toPixelData: i, |
| | | impl: { |
| | | fontFaces: p, |
| | | images: f, |
| | | util: h, |
| | | inliner: m, |
| | | options: {} |
| | | } |
| | | } |
| | | t.exports = w |
| | | }() |
| | | }), i = t(function (t) { |
| | | var n = n || function (t) { |
| | | if (!(void 0 === t || 'undefined' != typeof navigator && /MSIE [1-9]\./.test(navigator.userAgent))) { |
| | | var e = t.document, n = function () { |
| | | return t.URL || t.webkitURL || t |
| | | }, i = e.createElementNS('http://www.w3.org/1999/xhtml', 'a'), o = 'download' in i, r = function (t) { |
| | | var e = new MouseEvent('click') |
| | | t.dispatchEvent(e) |
| | | }, a = /constructor/i.test(t.HTMLElement) || t.safari, s = /CriOS\/[\d]+/.test(navigator.userAgent), |
| | | l = function (e) { |
| | | (t.setImmediate || t.setTimeout)(function () { |
| | | throw e |
| | | }, 0) |
| | | }, u = function (t) { |
| | | var e = function () { |
| | | 'string' == typeof t ? n().revokeObjectURL(t) : t.remove() |
| | | } |
| | | setTimeout(e, 4e4) |
| | | }, c = function (t, e, n) { |
| | | e = [].concat(e) |
| | | for (var i = e.length; i--;) { |
| | | var o = t['on' + e[i]] |
| | | if ('function' == typeof o) { |
| | | try { |
| | | o.call(t, n || t) |
| | | } catch (t) { |
| | | l(t) |
| | | } |
| | | } |
| | | } |
| | | }, d = function (t) { |
| | | return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type) ? new Blob([String.fromCharCode(65279), t], { type: t.type }) : t |
| | | }, g = function (e, l, g) { |
| | | g || (e = d(e)) |
| | | var h, m = this, p = e.type, f = 'application/octet-stream' === p, M = function () { |
| | | c(m, 'writestart progress write writeend'.split(' ')) |
| | | } |
| | | if (m.readyState = m.INIT, o) { |
| | | return h = n().createObjectURL(e), void setTimeout(function () { |
| | | i.href = h, i.download = l, r(i), M(), u(h), m.readyState = m.DONE |
| | | }) |
| | | } |
| | | !function () { |
| | | if ((s || f && a) && t.FileReader) { |
| | | var i = new FileReader |
| | | return i.onloadend = function () { |
| | | var e = s ? i.result : i.result.replace(/^data:[^;]*;/, 'data:attachment/file;') |
| | | t.open(e, '_blank') || (t.location.href = e), e = void 0, m.readyState = m.DONE, M() |
| | | }, i.readAsDataURL(e), void (m.readyState = m.INIT) |
| | | } |
| | | if (h || (h = n().createObjectURL(e)), f) { |
| | | t.location.href = h |
| | | } else { |
| | | t.open(h, '_blank') || (t.location.href = h) |
| | | } |
| | | m.readyState = m.DONE, M(), u(h) |
| | | }() |
| | | }, h = g.prototype, m = function (t, e, n) { |
| | | return new g(t, e || t.name || 'download', n) |
| | | } |
| | | return 'undefined' != typeof navigator && navigator.msSaveOrOpenBlob ? function (t, e, n) { |
| | | return e = e || t.name || 'download', n || (t = d(t)), navigator.msSaveOrOpenBlob(t, e) |
| | | } : (h.abort = function () { |
| | | }, h.readyState = h.INIT = 0, h.WRITING = 1, h.DONE = 2, h.error = h.onwritestart = h.onprogress = h.onwrite = h.onabort = h.onerror = h.onwriteend = null, m) |
| | | } |
| | | }('undefined' != typeof self && self || 'undefined' != typeof window && window || e.content) |
| | | t.exports && (t.exports.saveAs = n) |
| | | }) |
| | | L.Control.EasyPrint = L.Control.extend({ |
| | | options: { |
| | | title: 'Print map', |
| | | position: 'topleft', |
| | | sizeModes: ['Current'], |
| | | filename: 'map', |
| | | exportOnly: !1, |
| | | hidden: !1, |
| | | tileWait: 500, |
| | | hideControlContainer: !0, |
| | | customWindowTitle: window.document.title, |
| | | spinnerBgCOlor: '#0DC5C1', |
| | | customSpinnerClass: 'epLoader', |
| | | defaultSizeTitles: { |
| | | Current: 'Current Size', |
| | | A4Landscape: 'A4 Landscape', |
| | | A4Portrait: 'A4 Portrait' |
| | | } |
| | | }, |
| | | onAdd: function () { |
| | | this.mapContainer = this._map.getContainer(), this.options.sizeModes = this.options.sizeModes.map(function (t) { |
| | | return 'Current' === t ? { |
| | | name: this.options.defaultSizeTitles.Current, |
| | | className: 'CurrentSize' |
| | | } : 'A4Landscape' === t ? { |
| | | height: this._a4PageSize.height, |
| | | width: this._a4PageSize.width, |
| | | name: this.options.defaultSizeTitles.A4Landscape, |
| | | className: 'A4Landscape page' |
| | | } : 'A4Portrait' === t ? { |
| | | height: this._a4PageSize.width, |
| | | width: this._a4PageSize.height, |
| | | name: this.options.defaultSizeTitles.A4Portrait, |
| | | className: 'A4Portrait page' |
| | | } : t |
| | | }, this) |
| | | var t = L.DomUtil.create('div', 'leaflet-control-easyPrint leaflet-bar leaflet-control') |
| | | if (!this.options.hidden) { |
| | | this._addCss(), L.DomEvent.addListener(t, 'mouseover', this._togglePageSizeButtons, this), L.DomEvent.addListener(t, 'mouseout', this._togglePageSizeButtons, this) |
| | | var e = 'leaflet-control-easyPrint-button' |
| | | this.options.exportOnly && (e += '-export'), this.link = L.DomUtil.create('a', e, t), this.link.id = 'leafletEasyPrint', this.link.title = this.options.title, this.holder = L.DomUtil.create('ul', 'easyPrintHolder', t), this.options.sizeModes.forEach(function (t) { |
| | | var e = L.DomUtil.create('li', 'easyPrintSizeMode', this.holder) |
| | | e.title = t.name |
| | | L.DomUtil.create('a', t.className, e) |
| | | L.DomEvent.addListener(e, 'click', this.printMap, this) |
| | | }, this), L.DomEvent.disableClickPropagation(t) |
| | | } |
| | | return t |
| | | }, |
| | | printMap: function (t, e) { |
| | | e && (this.options.filename = e), this.options.exportOnly || (this._page = window.open('', '_blank', 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=10, top=10, width=200, height=250, visible=none'), this._page.document.write(this._createSpinner(this.options.customWindowTitle, this.options.customSpinnerClass, this.options.spinnerBgCOlor))), this.originalState = { |
| | | mapWidth: this.mapContainer.style.width, |
| | | widthWasAuto: !1, |
| | | widthWasPercentage: !1, |
| | | mapHeight: this.mapContainer.style.height, |
| | | zoom: this._map.getZoom(), |
| | | center: this._map.getCenter() |
| | | }, 'auto' === this.originalState.mapWidth ? (this.originalState.mapWidth = this._map.getSize().x + 'px', this.originalState.widthWasAuto = !0) : this.originalState.mapWidth.includes('%') && (this.originalState.percentageWidth = this.originalState.mapWidth, this.originalState.widthWasPercentage = !0, this.originalState.mapWidth = this._map.getSize().x + 'px'), this._map.fire('easyPrint-start', { event: t }), this.options.hidden || this._togglePageSizeButtons({ type: null }), this.options.hideControlContainer && this._toggleControls() |
| | | var n = 'string' != typeof t ? t.target.className : t |
| | | if ('CurrentSize' === n) return this._printOpertion(n) |
| | | this.outerContainer = this._createOuterContainer(this.mapContainer), this.originalState.widthWasAuto && (this.outerContainer.style.width = this.originalState.mapWidth), this._createImagePlaceholder(n) |
| | | }, |
| | | _createImagePlaceholder: function (t) { |
| | | var e = this |
| | | n.toPng(this.mapContainer, { |
| | | width: parseInt(this.originalState.mapWidth.replace('px')), |
| | | height: parseInt(this.originalState.mapHeight.replace('px')) |
| | | }).then(function (n) { |
| | | e.blankDiv = document.createElement('div') |
| | | var i = e.blankDiv |
| | | e.outerContainer.parentElement.insertBefore(i, e.outerContainer), i.className = 'epHolder', i.style.backgroundImage = 'url("' + n + '")', i.style.position = 'absolute', i.style.zIndex = 1011, i.style.display = 'initial', i.style.width = e.originalState.mapWidth, i.style.height = e.originalState.mapHeight, e._resizeAndPrintMap(t) |
| | | }).catch(function (t) { |
| | | console.error('oops, something went wrong!', t) |
| | | }) |
| | | }, |
| | | _resizeAndPrintMap: function (t) { |
| | | this.outerContainer.style.opacity = 0 |
| | | var e = this.options.sizeModes.filter(function (e) { |
| | | return e.className === t |
| | | }) |
| | | e = e[0], this.mapContainer.style.width = e.width + 'px', this.mapContainer.style.height = e.height + 'px', this.mapContainer.style.width > this.mapContainer.style.height ? this.orientation = 'portrait' : this.orientation = 'landscape', this._map.setView(this.originalState.center), this._map.setZoom(this.originalState.zoom), this._map.invalidateSize(), this.options.tileLayer ? this._pausePrint(t) : this._printOpertion(t) |
| | | }, |
| | | _pausePrint: function (t) { |
| | | var e = this, n = setInterval(function () { |
| | | e.options.tileLayer.isLoading() || (clearInterval(n), e._printOpertion(t)) |
| | | }, e.options.tileWait) |
| | | }, |
| | | _printOpertion: function (t) { |
| | | var e = this, o = this.mapContainer.style.width; |
| | | (this.originalState.widthWasAuto && 'CurrentSize' === t || this.originalState.widthWasPercentage && 'CurrentSize' === t) && (o = this.originalState.mapWidth), n.toPng(e.mapContainer, { |
| | | width: parseInt(o), |
| | | height: parseInt(e.mapContainer.style.height.replace('px')) |
| | | }).then(function (t) { |
| | | var n = e._dataURItoBlob(t) |
| | | e.options.exportOnly ? i.saveAs(n, e.options.filename + '.png') : e._sendToBrowserPrint(t, e.orientation), e._toggleControls(!0), e.outerContainer && (e.originalState.widthWasAuto ? e.mapContainer.style.width = 'auto' : e.originalState.widthWasPercentage ? e.mapContainer.style.width = e.originalState.percentageWidth : e.mapContainer.style.width = e.originalState.mapWidth, e.mapContainer.style.height = e.originalState.mapHeight, e._removeOuterContainer(e.mapContainer, e.outerContainer, e.blankDiv), e._map.invalidateSize(), e._map.setView(e.originalState.center), e._map.setZoom(e.originalState.zoom)), e._map.fire('easyPrint-finished') |
| | | }).catch(function (t) { |
| | | console.error('Print operation failed', t) |
| | | }) |
| | | }, |
| | | _sendToBrowserPrint: function (t, e) { |
| | | this._page.resizeTo(600, 800) |
| | | var n = this._createNewWindow(t, e, this) |
| | | this._page.document.body.innerHTML = '', this._page.document.write(n), this._page.document.close() |
| | | }, |
| | | _createSpinner: function (t, e, n) { |
| | | return '<html><head><title>' + t + '</title></head><body><style>\n body{\n background: ' + n + ';\n }\n .epLoader,\n .epLoader:before,\n .epLoader:after {\n border-radius: 50%;\n }\n .epLoader {\n color: #ffffff;\n font-size: 11px;\n text-indent: -99999em;\n margin: 55px auto;\n position: relative;\n width: 10em;\n height: 10em;\n box-shadow: inset 0 0 0 1em;\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n }\n .epLoader:before,\n .epLoader:after {\n position: absolute;\n content: \'\';\n }\n .epLoader:before {\n width: 5.2em;\n height: 10.2em;\n background: #0dc5c1;\n border-radius: 10.2em 0 0 10.2em;\n top: -0.1em;\n left: -0.1em;\n -webkit-transform-origin: 5.2em 5.1em;\n transform-origin: 5.2em 5.1em;\n -webkit-animation: load2 2s infinite ease 1.5s;\n animation: load2 2s infinite ease 1.5s;\n }\n .epLoader:after {\n width: 5.2em;\n height: 10.2em;\n background: #0dc5c1;\n border-radius: 0 10.2em 10.2em 0;\n top: -0.1em;\n left: 5.1em;\n -webkit-transform-origin: 0px 5.1em;\n transform-origin: 0px 5.1em;\n -webkit-animation: load2 2s infinite ease;\n animation: load2 2s infinite ease;\n }\n @-webkit-keyframes load2 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n }\n @keyframes load2 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n }\n </style>\n <div class="' + e + '">Loading...</div></body></html>' |
| | | }, |
| | | _createNewWindow: function (t, e, n) { |
| | | return '<html><head>\n <style>@media print {\n img { max-width: 98%!important; max-height: 98%!important; }\n @page { size: ' + e + ';}}\n </style>\n <script>function step1(){\n setTimeout(\'step2()\', 10);}\n function step2(){window.print();window.close()}\n <\/script></head><body onload=\'step1()\'>\n <img src="' + t + '" style="display:block; margin:auto;"></body></html>' |
| | | }, |
| | | _createOuterContainer: function (t) { |
| | | var e = document.createElement('div') |
| | | return t.parentNode.insertBefore(e, t), t.parentNode.removeChild(t), e.appendChild(t), e.style.width = t.style.width, e.style.height = t.style.height, e.style.display = 'inline-block', e.style.overflow = 'hidden', e |
| | | }, |
| | | _removeOuterContainer: function (t, e, n) { |
| | | e.parentNode && (e.parentNode.insertBefore(t, e), e.parentNode.removeChild(n), e.parentNode.removeChild(e)) |
| | | }, |
| | | _addCss: function () { |
| | | var t = document.createElement('style') |
| | | t.type = 'text/css', t.innerHTML = '.leaflet-control-easyPrint-button { \n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNMTI4LDMyaDI1NnY2NEgxMjhWMzJ6IE00ODAsMTI4SDMyYy0xNy42LDAtMzIsMTQuNC0zMiwzMnYxNjBjMCwxNy42LDE0LjM5OCwzMiwzMiwzMmg5NnYxMjhoMjU2VjM1Mmg5NiAgIGMxNy42LDAsMzItMTQuNCwzMi0zMlYxNjBDNTEyLDE0Mi40LDQ5Ny42LDEyOCw0ODAsMTI4eiBNMzUyLDQ0OEgxNjBWMjg4aDE5MlY0NDh6IE00ODcuMTk5LDE3NmMwLDEyLjgxMy0xMC4zODcsMjMuMi0yMy4xOTcsMjMuMiAgIGMtMTIuODEyLDAtMjMuMjAxLTEwLjM4Ny0yMy4yMDEtMjMuMnMxMC4zODktMjMuMiwyMy4xOTktMjMuMkM0NzYuODE0LDE1Mi44LDQ4Ny4xOTksMTYzLjE4Nyw0ODcuMTk5LDE3NnoiIGZpbGw9IiMwMDAwMDAiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);\n background-size: 16px 16px; \n cursor: pointer; \n }\n .leaflet-control-easyPrint-button-export { \n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDQzMy41IDQzMy41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MzMuNSA0MzMuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnIGlkPSJmaWxlLWRvd25sb2FkIj4KCQk8cGF0aCBkPSJNMzk1LjI1LDE1M2gtMTAyVjBoLTE1M3YxNTNoLTEwMmwxNzguNSwxNzguNUwzOTUuMjUsMTUzeiBNMzguMjUsMzgyLjV2NTFoMzU3di01MUgzOC4yNXoiIGZpbGw9IiMwMDAwMDAiLz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K);\n background-size: 16px 16px; \n cursor: pointer; \n }\n .easyPrintHolder a {\n background-size: 16px 16px;\n cursor: pointer;\n }\n .easyPrintHolder .CurrentSize{\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTZweCIgdmVyc2lvbj0iMS4xIiBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjQgNjQiPgogIDxnPgogICAgPGcgZmlsbD0iIzFEMUQxQiI+CiAgICAgIDxwYXRoIGQ9Ik0yNS4yNTUsMzUuOTA1TDQuMDE2LDU3LjE0NVY0Ni41OWMwLTEuMTA4LTAuODk3LTIuMDA4LTIuMDA4LTIuMDA4QzAuODk4LDQ0LjU4MiwwLDQ1LjQ4MSwwLDQ2LjU5djE1LjQwMiAgICBjMCwwLjI2MSwwLjA1MywwLjUyMSwwLjE1NSwwLjc2N2MwLjIwMywwLjQ5MiwwLjU5NCwwLjg4MiwxLjA4NiwxLjA4N0MxLjQ4Niw2My45NDcsMS43NDcsNjQsMi4wMDgsNjRoMTUuNDAzICAgIGMxLjEwOSwwLDIuMDA4LTAuODk4LDIuMDA4LTIuMDA4cy0wLjg5OC0yLjAwOC0yLjAwOC0yLjAwOEg2Ljg1NWwyMS4yMzgtMjEuMjRjMC43ODQtMC43ODQsMC43ODQtMi4wNTUsMC0yLjgzOSAgICBTMjYuMDM5LDM1LjEyMSwyNS4yNTUsMzUuOTA1eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgICA8cGF0aCBkPSJtNjMuODQ1LDEuMjQxYy0wLjIwMy0wLjQ5MS0wLjU5NC0wLjg4Mi0xLjA4Ni0xLjA4Ny0wLjI0NS0wLjEwMS0wLjUwNi0wLjE1NC0wLjc2Ny0wLjE1NGgtMTUuNDAzYy0xLjEwOSwwLTIuMDA4LDAuODk4LTIuMDA4LDIuMDA4czAuODk4LDIuMDA4IDIuMDA4LDIuMDA4aDEwLjU1NmwtMjEuMjM4LDIxLjI0Yy0wLjc4NCwwLjc4NC0wLjc4NCwyLjA1NSAwLDIuODM5IDAuMzkyLDAuMzkyIDAuOTA2LDAuNTg5IDEuNDIsMC41ODlzMS4wMjctMC4xOTcgMS40MTktMC41ODlsMjEuMjM4LTIxLjI0djEwLjU1NWMwLDEuMTA4IDAuODk3LDIuMDA4IDIuMDA4LDIuMDA4IDEuMTA5LDAgMi4wMDgtMC44OTkgMi4wMDgtMi4wMDh2LTE1LjQwMmMwLTAuMjYxLTAuMDUzLTAuNTIyLTAuMTU1LTAuNzY3eiIgZmlsbD0iIzAwMDAwMCIvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==)\n }\n .easyPrintHolder .page {\n background-image: url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ0NC44MzMgNDQ0LjgzMyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDQ0LjgzMyA0NDQuODMzOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij4KPGc+Cgk8Zz4KCQk8cGF0aCBkPSJNNTUuMjUsNDQ0LjgzM2gzMzQuMzMzYzkuMzUsMCwxNy03LjY1LDE3LTE3VjEzOS4xMTdjMC00LjgxNy0xLjk4My05LjM1LTUuMzgzLTEyLjQ2N0wyNjkuNzMzLDQuNTMzICAgIEMyNjYuNjE3LDEuNywyNjIuMzY3LDAsMjU4LjExNywwSDU1LjI1Yy05LjM1LDAtMTcsNy42NS0xNywxN3Y0MTAuODMzQzM4LjI1LDQzNy4xODMsNDUuOSw0NDQuODMzLDU1LjI1LDQ0NC44MzN6ICAgICBNMzcyLjU4MywxNDYuNDgzdjAuODVIMjU2LjQxN3YtMTA4LjhMMzcyLjU4MywxNDYuNDgzeiBNNzIuMjUsMzRoMTUwLjE2N3YxMzAuMzMzYzAsOS4zNSw3LjY1LDE3LDE3LDE3aDEzMy4xNjd2MjI5LjVINzIuMjVWMzR6ICAgICIgZmlsbD0iIzAwMDAwMCIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=);\n }\n .easyPrintHolder .A4Landscape { \n transform: rotate(-90deg);\n }\n\n .leaflet-control-easyPrint-button{\n display: inline-block;\n }\n .easyPrintHolder{\n margin-top:-31px;\n margin-bottom: -5px;\n margin-left: 30px;\n padding-left: 0px;\n display: none;\n }\n\n .easyPrintSizeMode {\n display: inline-block;\n }\n .easyPrintHolder .easyPrintSizeMode a {\n border-radius: 0px;\n }\n\n .easyPrintHolder .easyPrintSizeMode:last-child a{\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n margin-left: -1px;\n }\n\n .easyPrintPortrait:hover, .easyPrintLandscape:hover{\n background-color: #757570;\n cursor: pointer;\n }', document.body.appendChild(t) |
| | | }, |
| | | _dataURItoBlob: function (t) { |
| | | for (var e = atob(t.split(',')[1]), n = t.split(',')[0].split(':')[1].split(';')[0], i = new ArrayBuffer(e.length), o = new DataView(i), r = 0; r < e.length; r++) o.setUint8(r, e.charCodeAt(r)) |
| | | return new Blob([i], { type: n }) |
| | | }, |
| | | _togglePageSizeButtons: function (t) { |
| | | var e = this.holder.style, n = this.link.style |
| | | 'mouseover' === t.type ? (e.display = 'block', n.borderTopRightRadius = '0', n.borderBottomRightRadius = '0') : (e.display = 'none', n.borderTopRightRadius = '2px', n.borderBottomRightRadius = '2px') |
| | | }, |
| | | _toggleControls: function (t) { |
| | | var e = document.getElementsByClassName('leaflet-control-container')[0] |
| | | if (t) return e.style.display = 'block' |
| | | e.style.display = 'none' |
| | | }, |
| | | _a4PageSize: { |
| | | height: 715, |
| | | width: 1045 |
| | | } |
| | | }), L.easyPrint = function (t) { |
| | | return new L.Control.EasyPrint(t) |
| | | } |
| | | }) |
| | | //# sourceMappingURL=bundle.js.map |
| | | } |
| | | |
| | | export default { |
| | | init |
| | | } |
| | |
| | | /* eslint-disable */
|
| | | // 全屏展示插件
|
| | | const init = (L) => {
|
| | | (function (factory) {
|
| | | if (typeof define === 'function' && define.amd) {
|
| | | // AMD
|
| | | define(['leaflet'], factory)
|
| | | } else if (typeof module !== 'undefined') {
|
| | | // Node/CommonJS
|
| | | // module.exports = factory(require('leaflet'))
|
| | | factory(L)
|
| | | } else {
|
| | | // Browser globals
|
| | | if (typeof window.L === 'undefined') {
|
| | | throw new Error('Leaflet must be loaded first')
|
| | | }
|
| | | factory(window.L)
|
| | | }
|
| | | }(function (L) {
|
| | | L.Control.Fullscreen = L.Control.extend({
|
| | | options: {
|
| | | position: 'topleft',
|
| | | title: {
|
| | | false: 'View Fullscreen',
|
| | | true: 'Exit Fullscreen'
|
| | | }
|
| | | },
|
| | |
|
| | | onAdd: function (map) {
|
| | | var container = L.DomUtil.create('div', 'leaflet-control-fullscreen leaflet-bar leaflet-control')
|
| | |
|
| | | this.link = L.DomUtil.create('a', 'leaflet-control-fullscreen-button leaflet-bar-part', container)
|
| | | this.link.href = '#'
|
| | |
|
| | | this._map = map
|
| | | this._map.on('fullscreenchange', this._toggleTitle, this)
|
| | | this._toggleTitle()
|
| | |
|
| | | L.DomEvent.on(this.link, 'click', this._click, this)
|
| | |
|
| | | return container
|
| | | },
|
| | |
|
| | | _click: function (e) {
|
| | | L.DomEvent.stopPropagation(e)
|
| | | L.DomEvent.preventDefault(e)
|
| | | this._map.toggleFullscreen(this.options)
|
| | | },
|
| | |
|
| | | _toggleTitle: function () {
|
| | | this.link.title = this.optionsthis._map.isFullscreen()]
|
| | | }
|
| | | })
|
| | |
|
| | | L.Map.include({
|
| | | isFullscreen: function () {
|
| | | return this._isFullscreen || false
|
| | | },
|
| | |
|
| | | toggleFullscreen: function (options) {
|
| | | var container = this.getContainer()
|
| | | if (this.isFullscreen()) {
|
| | | if (options && options.pseudoFullscreen) {
|
| | | this._disablePseudoFullscreen(container)
|
| | | } else if (document.exitFullscreen) {
|
| | | document.exitFullscreen()
|
| | | } else if (document.mozCancelFullScreen) {
|
| | | document.mozCancelFullScreen()
|
| | | } else if (document.webkitCancelFullScreen) {
|
| | | document.webkitCancelFullScreen()
|
| | | } else if (document.msExitFullscreen) {
|
| | | document.msExitFullscreen()
|
| | | } else {
|
| | | this._disablePseudoFullscreen(container)
|
| | | }
|
| | | } else {
|
| | | if (options && options.pseudoFullscreen) {
|
| | | this._enablePseudoFullscreen(container)
|
| | | } else if (container.requestFullscreen) {
|
| | | container.requestFullscreen()
|
| | | } else if (container.mozRequestFullScreen) {
|
| | | container.mozRequestFullScreen()
|
| | | } else if (container.webkitRequestFullscreen) {
|
| | | container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)
|
| | | } else if (container.msRequestFullscreen) {
|
| | | container.msRequestFullscreen()
|
| | | } else {
|
| | | this._enablePseudoFullscreen(container)
|
| | | }
|
| | | }
|
| | | },
|
| | |
|
| | | _enablePseudoFullscreen: function (container) {
|
| | | L.DomUtil.addClass(container, 'leaflet-pseudo-fullscreen')
|
| | | this._setFullscreen(true)
|
| | | this.fire('fullscreenchange')
|
| | | },
|
| | |
|
| | | _disablePseudoFullscreen: function (container) {
|
| | | L.DomUtil.removeClass(container, 'leaflet-pseudo-fullscreen')
|
| | | this._setFullscreen(false)
|
| | | this.fire('fullscreenchange')
|
| | | },
|
| | |
|
| | | _setFullscreen: function (fullscreen) {
|
| | | this._isFullscreen = fullscreen
|
| | | var container = this.getContainer()
|
| | | if (fullscreen) {
|
| | | L.DomUtil.addClass(container, 'leaflet-fullscreen-on')
|
| | | } else {
|
| | | L.DomUtil.removeClass(container, 'leaflet-fullscreen-on')
|
| | | }
|
| | | this.invalidateSize()
|
| | | },
|
| | |
|
| | | _onFullscreenChange: function (e) {
|
| | | var fullscreenElement =
|
| | | document.fullscreenElement ||
|
| | | document.mozFullScreenElement ||
|
| | | document.webkitFullscreenElement ||
|
| | | document.msFullscreenElement
|
| | |
|
| | | if (fullscreenElement === this.getContainer() && !this._isFullscreen) {
|
| | | this._setFullscreen(true)
|
| | | this.fire('fullscreenchange')
|
| | | } else if (fullscreenElement !== this.getContainer() && this._isFullscreen) {
|
| | | this._setFullscreen(false)
|
| | | this.fire('fullscreenchange')
|
| | | }
|
| | | }
|
| | | })
|
| | |
|
| | | L.Map.mergeOptions({
|
| | | fullscreenControl: false
|
| | | })
|
| | |
|
| | | L.Map.addInitHook(function () {
|
| | | if (this.options.fullscreenControl) {
|
| | | this.fullscreenControl = new L.Control.Fullscreen(this.options.fullscreenControl)
|
| | | this.addControl(this.fullscreenControl)
|
| | | }
|
| | |
|
| | | var fullscreenchange
|
| | |
|
| | | if ('onfullscreenchange' in document) {
|
| | | fullscreenchange = 'fullscreenchange'
|
| | | } else if ('onmozfullscreenchange' in document) {
|
| | | fullscreenchange = 'mozfullscreenchange'
|
| | | } else if ('onwebkitfullscreenchange' in document) {
|
| | | fullscreenchange = 'webkitfullscreenchange'
|
| | | } else if ('onmsfullscreenchange' in document) {
|
| | | fullscreenchange = 'MSFullscreenChange'
|
| | | }
|
| | |
|
| | | if (fullscreenchange) {
|
| | | var onFullscreenChange = L.bind(this._onFullscreenChange, this)
|
| | |
|
| | | this.whenReady(function () {
|
| | | L.DomEvent.on(document, fullscreenchange, onFullscreenChange)
|
| | | })
|
| | |
|
| | | this.on('unload', function () {
|
| | | L.DomEvent.off(document, fullscreenchange, onFullscreenChange)
|
| | | })
|
| | | }
|
| | | })
|
| | |
|
| | | L.control.fullscreen = function (options) {
|
| | | return new L.Control.Fullscreen(options)
|
| | | }
|
| | | }))
|
| | | }
|
| | | export default {
|
| | | init
|
| | | }
|
| | | /* eslint-disable */ |
| | | // 全屏展示插件 |
| | | const init = (L) => { |
| | | (function (factory) { |
| | | if (typeof define === 'function' && define.amd) { |
| | | // AMD |
| | | define(['leaflet'], factory) |
| | | } else if (typeof module !== 'undefined') { |
| | | // Node/CommonJS |
| | | // module.exports = factory(require('leaflet')) |
| | | factory(L) |
| | | } else { |
| | | // Browser globals |
| | | if (typeof window.L === 'undefined') { |
| | | throw new Error('Leaflet must be loaded first') |
| | | } |
| | | factory(window.L) |
| | | } |
| | | }(function (L) { |
| | | L.Control.Fullscreen = L.Control.extend({ |
| | | options: { |
| | | position: 'topleft', |
| | | title: { |
| | | false: 'View Fullscreen', |
| | | true: 'Exit Fullscreen' |
| | | } |
| | | }, |
| | | |
| | | onAdd: function (map) { |
| | | var container = L.DomUtil.create('div', 'leaflet-control-fullscreen leaflet-bar leaflet-control') |
| | | |
| | | this.link = L.DomUtil.create('a', 'leaflet-control-fullscreen-button leaflet-bar-part', container) |
| | | this.link.href = '#' |
| | | |
| | | this._map = map |
| | | this._map.on('fullscreenchange', this._toggleTitle, this) |
| | | this._toggleTitle() |
| | | |
| | | L.DomEvent.on(this.link, 'click', this._click, this) |
| | | |
| | | return container |
| | | }, |
| | | |
| | | _click: function (e) { |
| | | L.DomEvent.stopPropagation(e) |
| | | L.DomEvent.preventDefault(e) |
| | | this._map.toggleFullscreen(this.options) |
| | | }, |
| | | |
| | | _toggleTitle: function () { |
| | | this.link.title = this.optionsthis._map.isFullscreen()] |
| | | } |
| | | }) |
| | | |
| | | L.Map.include({ |
| | | isFullscreen: function () { |
| | | return this._isFullscreen || false |
| | | }, |
| | | |
| | | toggleFullscreen: function (options) { |
| | | var container = this.getContainer() |
| | | if (this.isFullscreen()) { |
| | | if (options && options.pseudoFullscreen) { |
| | | this._disablePseudoFullscreen(container) |
| | | } else if (document.exitFullscreen) { |
| | | document.exitFullscreen() |
| | | } else if (document.mozCancelFullScreen) { |
| | | document.mozCancelFullScreen() |
| | | } else if (document.webkitCancelFullScreen) { |
| | | document.webkitCancelFullScreen() |
| | | } else if (document.msExitFullscreen) { |
| | | document.msExitFullscreen() |
| | | } else { |
| | | this._disablePseudoFullscreen(container) |
| | | } |
| | | } else { |
| | | if (options && options.pseudoFullscreen) { |
| | | this._enablePseudoFullscreen(container) |
| | | } else if (container.requestFullscreen) { |
| | | container.requestFullscreen() |
| | | } else if (container.mozRequestFullScreen) { |
| | | container.mozRequestFullScreen() |
| | | } else if (container.webkitRequestFullscreen) { |
| | | container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT) |
| | | } else if (container.msRequestFullscreen) { |
| | | container.msRequestFullscreen() |
| | | } else { |
| | | this._enablePseudoFullscreen(container) |
| | | } |
| | | } |
| | | }, |
| | | |
| | | _enablePseudoFullscreen: function (container) { |
| | | L.DomUtil.addClass(container, 'leaflet-pseudo-fullscreen') |
| | | this._setFullscreen(true) |
| | | this.fire('fullscreenchange') |
| | | }, |
| | | |
| | | _disablePseudoFullscreen: function (container) { |
| | | L.DomUtil.removeClass(container, 'leaflet-pseudo-fullscreen') |
| | | this._setFullscreen(false) |
| | | this.fire('fullscreenchange') |
| | | }, |
| | | |
| | | _setFullscreen: function (fullscreen) { |
| | | this._isFullscreen = fullscreen |
| | | var container = this.getContainer() |
| | | if (fullscreen) { |
| | | L.DomUtil.addClass(container, 'leaflet-fullscreen-on') |
| | | } else { |
| | | L.DomUtil.removeClass(container, 'leaflet-fullscreen-on') |
| | | } |
| | | this.invalidateSize() |
| | | }, |
| | | |
| | | _onFullscreenChange: function (e) { |
| | | var fullscreenElement = |
| | | document.fullscreenElement || |
| | | document.mozFullScreenElement || |
| | | document.webkitFullscreenElement || |
| | | document.msFullscreenElement |
| | | |
| | | if (fullscreenElement === this.getContainer() && !this._isFullscreen) { |
| | | this._setFullscreen(true) |
| | | this.fire('fullscreenchange') |
| | | } else if (fullscreenElement !== this.getContainer() && this._isFullscreen) { |
| | | this._setFullscreen(false) |
| | | this.fire('fullscreenchange') |
| | | } |
| | | } |
| | | }) |
| | | |
| | | L.Map.mergeOptions({ |
| | | fullscreenControl: false |
| | | }) |
| | | |
| | | L.Map.addInitHook(function () { |
| | | if (this.options.fullscreenControl) { |
| | | this.fullscreenControl = new L.Control.Fullscreen(this.options.fullscreenControl) |
| | | this.addControl(this.fullscreenControl) |
| | | } |
| | | |
| | | var fullscreenchange |
| | | |
| | | if ('onfullscreenchange' in document) { |
| | | fullscreenchange = 'fullscreenchange' |
| | | } else if ('onmozfullscreenchange' in document) { |
| | | fullscreenchange = 'mozfullscreenchange' |
| | | } else if ('onwebkitfullscreenchange' in document) { |
| | | fullscreenchange = 'webkitfullscreenchange' |
| | | } else if ('onmsfullscreenchange' in document) { |
| | | fullscreenchange = 'MSFullscreenChange' |
| | | } |
| | | |
| | | if (fullscreenchange) { |
| | | var onFullscreenChange = L.bind(this._onFullscreenChange, this) |
| | | |
| | | this.whenReady(function () { |
| | | L.DomEvent.on(document, fullscreenchange, onFullscreenChange) |
| | | }) |
| | | |
| | | this.on('unload', function () { |
| | | L.DomEvent.off(document, fullscreenchange, onFullscreenChange) |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | L.control.fullscreen = function (options) { |
| | | return new L.Control.Fullscreen(options) |
| | | } |
| | | })) |
| | | } |
| | | export default { |
| | | init |
| | | } |
| | |
| | | /* eslint-disable */
|
| | | // 添加文字标注
|
| | | var TextAnnotation = {
|
| | | points: [],
|
| | | color: '',
|
| | | L: null,
|
| | | map: null,
|
| | | layers: null,
|
| | | polyline: null,
|
| | | marker: null,
|
| | | changeColor: '',
|
| | | changeContent: '',
|
| | | init: function (map, L) {
|
| | | // console.log(L)
|
| | | TextAnnotation.L = L
|
| | | TextAnnotation.map = map
|
| | | TextAnnotation.points = []
|
| | | TextAnnotation.polyline = null
|
| | | TextAnnotation.marker = null
|
| | | TextAnnotation.layers = L.layerGroup()
|
| | | map.on('click', TextAnnotation.click).on('dblclick', TextAnnotation.dblclick)
|
| | | },
|
| | | // 设置改变文字内容
|
| | | setContent: function (changeContent) {
|
| | | // console.log(changeContent)
|
| | | TextAnnotation.changeContent = changeContent
|
| | | },
|
| | | // 设置改变文字颜色
|
| | | setColor: function (changeColor) {
|
| | | // console.log(changeColor)
|
| | | TextAnnotation.changeColor = changeColor
|
| | | },
|
| | | click: function (e) {
|
| | | // console.log(TextAnnotation.changeContent)
|
| | | let labIcon = L.divIcon({
|
| | | html: '<div style="color:' + TextAnnotation.changeColor + ';font-size: 18px;">' + TextAnnotation.changeContent + '</div>',
|
| | | iconSize: [100, 40],
|
| | | iconAnchor: [0, 0],
|
| | | className: ''
|
| | | })
|
| | | let marker = L.marker(e.latlng, { icon: labIcon })
|
| | | marker.addTo(TextAnnotation.map)
|
| | | },
|
| | | dblclick: function (e) {
|
| | | TextAnnotation.map.off('click', TextAnnotation.click).off('dblclick', TextAnnotation.dblclick)
|
| | | },
|
| | | destory: function () {
|
| | | if (TextAnnotation.polyline) {
|
| | | TextAnnotation.map.removeLayer(TextAnnotation.polyline)
|
| | | }
|
| | | if (TextAnnotation.marker) {
|
| | | TextAnnotation.marker.remove()
|
| | | }
|
| | | if (TextAnnotation.layers) {
|
| | | TextAnnotation.layers.clearLayers()
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 添加 点 的标注
|
| | | let pointAnnotation = {
|
| | | points: [],
|
| | | color: '',
|
| | | L: null,
|
| | | map: null,
|
| | | layers: null,
|
| | | polyline: null,
|
| | | marker: null,
|
| | | init: function (map, L) {
|
| | | pointAnnotation.L = L
|
| | | pointAnnotation.map = map
|
| | | pointAnnotation.points = []
|
| | | pointAnnotation.polyline = null
|
| | | pointAnnotation.marker = null
|
| | | pointAnnotation.layers = L.layerGroup()
|
| | | map.on('click', pointAnnotation.click).on('dblclick', pointAnnotation.dblclick)
|
| | | },
|
| | | click: function (e) {
|
| | | let marker = L.marker(e.latlng)
|
| | | marker.addTo(pointAnnotation.map)
|
| | | },
|
| | | dblclick: function (e) {
|
| | | pointAnnotation.map.off('click', pointAnnotation.click).off('dblclick', pointAnnotation.dblclick)
|
| | | },
|
| | | destory: function () {
|
| | | if (pointAnnotation.polyline) {
|
| | | pointAnnotation.map.removeLayer(pointAnnotation.polyline)
|
| | | }
|
| | | if (pointAnnotation.marker) {
|
| | | pointAnnotation.marker.remove()
|
| | | }
|
| | | if (pointAnnotation.layers) {
|
| | | pointAnnotation.layers.clearLayers()
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 添加文字标注
|
| | | const startMakeText = function (map, L) {
|
| | | TextAnnotation.init(map, L)
|
| | | }
|
| | | // 文字标注的 内容社设置
|
| | | const setContentText = function (text) {
|
| | | TextAnnotation.setContent(text)
|
| | | }
|
| | | // 文字标注内容的 颜色 设置
|
| | | const setContentColor = function (color) {
|
| | | TextAnnotation.setColor(color)
|
| | | }
|
| | |
|
| | | // 点 标注
|
| | | const StartPointAnnotation = function (map, L) {
|
| | | pointAnnotation.init(map, L)
|
| | | }
|
| | |
|
| | | const clearText = function () {
|
| | | startMakeText.destory()
|
| | | }
|
| | | export default {
|
| | | clearText,
|
| | | startMakeText,
|
| | | setContentText,
|
| | | setContentColor,
|
| | | StartPointAnnotation
|
| | | }
|
| | | /* eslint-disable */ |
| | | // 添加文字标注 |
| | | var TextAnnotation = { |
| | | points: [], |
| | | color: '', |
| | | L: null, |
| | | map: null, |
| | | layers: null, |
| | | polyline: null, |
| | | marker: null, |
| | | changeColor: '', |
| | | changeContent: '', |
| | | init: function (map, L) { |
| | | // console.log(L) |
| | | TextAnnotation.L = L |
| | | TextAnnotation.map = map |
| | | TextAnnotation.points = [] |
| | | TextAnnotation.polyline = null |
| | | TextAnnotation.marker = null |
| | | TextAnnotation.layers = L.layerGroup() |
| | | map.on('click', TextAnnotation.click).on('dblclick', TextAnnotation.dblclick) |
| | | }, |
| | | // 设置改变文字内容 |
| | | setContent: function (changeContent) { |
| | | // console.log(changeContent) |
| | | TextAnnotation.changeContent = changeContent |
| | | }, |
| | | // 设置改变文字颜色 |
| | | setColor: function (changeColor) { |
| | | // console.log(changeColor) |
| | | TextAnnotation.changeColor = changeColor |
| | | }, |
| | | click: function (e) { |
| | | // console.log(TextAnnotation.changeContent) |
| | | let labIcon = L.divIcon({ |
| | | html: '<div style="color:' + TextAnnotation.changeColor + ';font-size: 18px;">' + TextAnnotation.changeContent + '</div>', |
| | | iconSize: [100, 40], |
| | | iconAnchor: [0, 0], |
| | | className: '' |
| | | }) |
| | | let marker = L.marker(e.latlng, { icon: labIcon }) |
| | | marker.addTo(TextAnnotation.map) |
| | | }, |
| | | dblclick: function (e) { |
| | | TextAnnotation.map.off('click', TextAnnotation.click).off('dblclick', TextAnnotation.dblclick) |
| | | }, |
| | | destory: function () { |
| | | if (TextAnnotation.polyline) { |
| | | TextAnnotation.map.removeLayer(TextAnnotation.polyline) |
| | | } |
| | | if (TextAnnotation.marker) { |
| | | TextAnnotation.marker.remove() |
| | | } |
| | | if (TextAnnotation.layers) { |
| | | TextAnnotation.layers.clearLayers() |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 添加 点 的标注 |
| | | let pointAnnotation = { |
| | | points: [], |
| | | color: '', |
| | | L: null, |
| | | map: null, |
| | | layers: null, |
| | | polyline: null, |
| | | marker: null, |
| | | init: function (map, L) { |
| | | pointAnnotation.L = L |
| | | pointAnnotation.map = map |
| | | pointAnnotation.points = [] |
| | | pointAnnotation.polyline = null |
| | | pointAnnotation.marker = null |
| | | pointAnnotation.layers = L.layerGroup() |
| | | map.on('click', pointAnnotation.click).on('dblclick', pointAnnotation.dblclick) |
| | | }, |
| | | click: function (e) { |
| | | let marker = L.marker(e.latlng) |
| | | marker.addTo(pointAnnotation.map) |
| | | }, |
| | | dblclick: function (e) { |
| | | pointAnnotation.map.off('click', pointAnnotation.click).off('dblclick', pointAnnotation.dblclick) |
| | | }, |
| | | destory: function () { |
| | | if (pointAnnotation.polyline) { |
| | | pointAnnotation.map.removeLayer(pointAnnotation.polyline) |
| | | } |
| | | if (pointAnnotation.marker) { |
| | | pointAnnotation.marker.remove() |
| | | } |
| | | if (pointAnnotation.layers) { |
| | | pointAnnotation.layers.clearLayers() |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 添加文字标注 |
| | | const startMakeText = function (map, L) { |
| | | TextAnnotation.init(map, L) |
| | | } |
| | | // 文字标注的 内容社设置 |
| | | const setContentText = function (text) { |
| | | TextAnnotation.setContent(text) |
| | | } |
| | | // 文字标注内容的 颜色 设置 |
| | | const setContentColor = function (color) { |
| | | TextAnnotation.setColor(color) |
| | | } |
| | | |
| | | // 点 标注 |
| | | const StartPointAnnotation = function (map, L) { |
| | | pointAnnotation.init(map, L) |
| | | } |
| | | |
| | | const clearText = function () { |
| | | startMakeText.destory() |
| | | } |
| | | export default { |
| | | clearText, |
| | | startMakeText, |
| | | setContentText, |
| | | setContentColor, |
| | | StartPointAnnotation |
| | | } |
| | |
| | | /* eslint-disable */
|
| | | // 面积测量方法
|
| | | var areaMeasure = {
|
| | | points: [],
|
| | | // markers:[],
|
| | | color: 'red',
|
| | | L: null,
|
| | | layers: null,
|
| | | polygon: null,
|
| | | marker: null,
|
| | | init: function (map, L) {
|
| | | areaMeasure.L = L
|
| | | areaMeasure.map = map
|
| | | areaMeasure.points = []
|
| | | areaMeasure.polygon = null
|
| | | areaMeasure.marker = null
|
| | | areaMeasure.layers = L.layerGroup()
|
| | | areaMeasure.map.on('click', areaMeasure.click).on('dblclick', areaMeasure.dblclick)
|
| | | },
|
| | | close: function (latlng) {
|
| | | /*areaMeasure.marker = L.marker(latlng, { icon: deleteIcon }).addTo(map).on("click", function (e) {
|
| | | //console.log('marker',e);
|
| | | if(areaMeasure.polygon)
|
| | | map.removeLayer(areaMeasure.polygon);
|
| | |
|
| | | if(areaMeasure.marker)
|
| | | areaMeasure.marker.remove();
|
| | | });
|
| | | //areaMeasure.markers.push(marker);
|
| | | */
|
| | |
|
| | | },
|
| | | click: function (e) {
|
| | | areaMeasure.map.doubleClickZoom.disable()
|
| | | // 添加点信息
|
| | | areaMeasure.points.push(e.latlng)
|
| | | // 添加面
|
| | | areaMeasure.map.on('mousemove', areaMeasure.mousemove)
|
| | | },
|
| | | mousemove: function (e) {
|
| | | areaMeasure.points.push(e.latlng)
|
| | | if (areaMeasure.polygon) {
|
| | | areaMeasure.map.removeLayer(areaMeasure.polygon)
|
| | | }
|
| | | areaMeasure.polygon = areaMeasure.L.polygon(areaMeasure.points, {
|
| | | showMeasurements: true,
|
| | | color: 'red'
|
| | | })
|
| | | //areaMeasure.polygon.addTo(map);
|
| | | areaMeasure.polygon.addTo(areaMeasure.layers)
|
| | | areaMeasure.layers.addTo(areaMeasure.map)
|
| | | areaMeasure.points.pop()
|
| | | },
|
| | | dblclick: function (e) { // 双击结束
|
| | | console.log('双击结束', e)
|
| | | areaMeasure.polygon.enableEdit()
|
| | | areaMeasure.polygon.dragging.disable()
|
| | | areaMeasure.map.on('editable:vertex:drag editable:vertex:deleted', areaMeasure.polygon.updateMeasurements, areaMeasure.polygon)
|
| | | areaMeasure.polygon.addTo(areaMeasure.layers)
|
| | | areaMeasure.close(e.latlng)
|
| | | //areaMeasure.polygon.enableEdit();
|
| | | //map.on('editable:vertex:drag editable:vertex:deleted', areaMeasure.polygon.updateMeasurements, areaMeasure.polygon);
|
| | | areaMeasure.map.off('click', areaMeasure.click).off('mousemove', areaMeasure.mousemove).off('dblclick', areaMeasure.dblclick)
|
| | | },
|
| | | destory: function () {
|
| | | if (areaMeasure.polygon) {
|
| | | areaMeasure.map.removeLayer(areaMeasure.polygon)
|
| | | }
|
| | |
|
| | | if (areaMeasure.marker) {
|
| | | areaMeasure.marker.remove()
|
| | | }
|
| | | if (areaMeasure.layers) {
|
| | | areaMeasure.layers.clearLayers()
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 距离测量方法
|
| | | var distanceMeasure = {
|
| | | points: [],
|
| | | // markers:[],
|
| | | color: 'blue',
|
| | | L: null,
|
| | | map: null,
|
| | | layers: null,
|
| | | polyline: null,
|
| | | marker: null,
|
| | | init: function (map, L) {
|
| | | // console.log(L)
|
| | | distanceMeasure.L = L
|
| | | distanceMeasure.map = map
|
| | | distanceMeasure.points = []
|
| | | distanceMeasure.polyline = null
|
| | | distanceMeasure.marker = null
|
| | | distanceMeasure.layers = L.layerGroup()
|
| | | map.on('click', distanceMeasure.click).on('dblclick', distanceMeasure.dblclick)
|
| | | },
|
| | | close: function (latlng) {
|
| | | /*distanceMeasure.marker = L.marker(latlng, { icon: deleteIcon }).addTo(map).on("click", function (e) {
|
| | | //console.log('marker',e);
|
| | | if(distanceMeasure.polyline)
|
| | | map.removeLayer(distanceMeasure.polyline);
|
| | |
|
| | | if(distanceMeasure.marker)
|
| | | distanceMeasure.marker.remove();
|
| | | });*/
|
| | | },
|
| | | click: function (e) {
|
| | | distanceMeasure.map.doubleClickZoom.disable()
|
| | | // 添加点信息
|
| | | distanceMeasure.points.push(e.latlng)
|
| | | // 添加线
|
| | | distanceMeasure.map.on('mousemove', distanceMeasure.mousemove)
|
| | | },
|
| | | mousemove: function (e) {
|
| | | distanceMeasure.points.push(e.latlng)
|
| | | if (distanceMeasure.polyline) {
|
| | | distanceMeasure.map.removeLayer(distanceMeasure.polyline)
|
| | | }
|
| | | distanceMeasure.polyline = distanceMeasure.L.polyline(distanceMeasure.points, {
|
| | | showMeasurements: true,
|
| | | color: 'red'
|
| | | })
|
| | | distanceMeasure.polyline.addTo(distanceMeasure.layers)
|
| | | // distanceMeasure.polyline.enableEdit()
|
| | | distanceMeasure.layers.addTo(distanceMeasure.map)
|
| | | distanceMeasure.points.pop()
|
| | | },
|
| | | dblclick: function (e) { // 双击结束
|
| | | console.log('双击结束', e)
|
| | | distanceMeasure.polyline.enableEdit()
|
| | | distanceMeasure.polyline.dragging.disable()
|
| | | distanceMeasure.polyline.addTo(distanceMeasure.layers)
|
| | | distanceMeasure.map.on('editable:vertex:drag editable:vertex:deleted', distanceMeasure.polyline.updateMeasurements, distanceMeasure.polyline)
|
| | | distanceMeasure.close(e.latlng)
|
| | | distanceMeasure.map.off('click', distanceMeasure.click).off('mousemove', distanceMeasure.mousemove).off('dblclick', distanceMeasure.dblclick)
|
| | | },
|
| | | destory: function () {
|
| | | if (distanceMeasure.polyline) {
|
| | | distanceMeasure.map.removeLayer(distanceMeasure.polyline)
|
| | | }
|
| | | if (distanceMeasure.marker) {
|
| | | distanceMeasure.marker.remove()
|
| | | }
|
| | | if (distanceMeasure.layers) {
|
| | | distanceMeasure.layers.clearLayers()
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | const startMeasureArea = function (map, L) {
|
| | | areaMeasure.destory()
|
| | | areaMeasure.init(map, L)
|
| | | }
|
| | |
|
| | | const startMeasureLen = function (map, L) {
|
| | | distanceMeasure.destory()
|
| | | distanceMeasure.init(map, L)
|
| | | }
|
| | |
|
| | | const clearMeasure = function () {
|
| | | areaMeasure.destory()
|
| | | distanceMeasure.destory()
|
| | | }
|
| | | export default {
|
| | | startMeasureArea,
|
| | | startMeasureLen,
|
| | | clearMeasure
|
| | | }
|
| | | /* eslint-disable */ |
| | | // 面积测量方法 |
| | | var areaMeasure = { |
| | | points: [], |
| | | // markers:[], |
| | | color: 'red', |
| | | L: null, |
| | | layers: null, |
| | | polygon: null, |
| | | marker: null, |
| | | init: function (map, L) { |
| | | areaMeasure.L = L |
| | | areaMeasure.map = map |
| | | areaMeasure.points = [] |
| | | areaMeasure.polygon = null |
| | | areaMeasure.marker = null |
| | | areaMeasure.layers = L.layerGroup() |
| | | areaMeasure.map.on('click', areaMeasure.click).on('dblclick', areaMeasure.dblclick) |
| | | }, |
| | | close: function (latlng) { |
| | | /*areaMeasure.marker = L.marker(latlng, { icon: deleteIcon }).addTo(map).on("click", function (e) { |
| | | //console.log('marker',e); |
| | | if(areaMeasure.polygon) |
| | | map.removeLayer(areaMeasure.polygon); |
| | | |
| | | if(areaMeasure.marker) |
| | | areaMeasure.marker.remove(); |
| | | }); |
| | | //areaMeasure.markers.push(marker); |
| | | */ |
| | | |
| | | }, |
| | | click: function (e) { |
| | | areaMeasure.map.doubleClickZoom.disable() |
| | | // 添加点信息 |
| | | areaMeasure.points.push(e.latlng) |
| | | // 添加面 |
| | | areaMeasure.map.on('mousemove', areaMeasure.mousemove) |
| | | }, |
| | | mousemove: function (e) { |
| | | areaMeasure.points.push(e.latlng) |
| | | if (areaMeasure.polygon) { |
| | | areaMeasure.map.removeLayer(areaMeasure.polygon) |
| | | } |
| | | areaMeasure.polygon = areaMeasure.L.polygon(areaMeasure.points, { |
| | | showMeasurements: true, |
| | | color: 'red' |
| | | }) |
| | | //areaMeasure.polygon.addTo(map); |
| | | areaMeasure.polygon.addTo(areaMeasure.layers) |
| | | areaMeasure.layers.addTo(areaMeasure.map) |
| | | areaMeasure.points.pop() |
| | | }, |
| | | dblclick: function (e) { // 双击结束 |
| | | console.log('双击结束', e) |
| | | areaMeasure.polygon.enableEdit() |
| | | areaMeasure.polygon.dragging.disable() |
| | | areaMeasure.map.on('editable:vertex:drag editable:vertex:deleted', areaMeasure.polygon.updateMeasurements, areaMeasure.polygon) |
| | | areaMeasure.polygon.addTo(areaMeasure.layers) |
| | | areaMeasure.close(e.latlng) |
| | | //areaMeasure.polygon.enableEdit(); |
| | | //map.on('editable:vertex:drag editable:vertex:deleted', areaMeasure.polygon.updateMeasurements, areaMeasure.polygon); |
| | | areaMeasure.map.off('click', areaMeasure.click).off('mousemove', areaMeasure.mousemove).off('dblclick', areaMeasure.dblclick) |
| | | }, |
| | | destory: function () { |
| | | if (areaMeasure.polygon) { |
| | | areaMeasure.map.removeLayer(areaMeasure.polygon) |
| | | } |
| | | |
| | | if (areaMeasure.marker) { |
| | | areaMeasure.marker.remove() |
| | | } |
| | | if (areaMeasure.layers) { |
| | | areaMeasure.layers.clearLayers() |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 距离测量方法 |
| | | var distanceMeasure = { |
| | | points: [], |
| | | // markers:[], |
| | | color: 'blue', |
| | | L: null, |
| | | map: null, |
| | | layers: null, |
| | | polyline: null, |
| | | marker: null, |
| | | init: function (map, L) { |
| | | // console.log(L) |
| | | distanceMeasure.L = L |
| | | distanceMeasure.map = map |
| | | distanceMeasure.points = [] |
| | | distanceMeasure.polyline = null |
| | | distanceMeasure.marker = null |
| | | distanceMeasure.layers = L.layerGroup() |
| | | map.on('click', distanceMeasure.click).on('dblclick', distanceMeasure.dblclick) |
| | | }, |
| | | close: function (latlng) { |
| | | /*distanceMeasure.marker = L.marker(latlng, { icon: deleteIcon }).addTo(map).on("click", function (e) { |
| | | //console.log('marker',e); |
| | | if(distanceMeasure.polyline) |
| | | map.removeLayer(distanceMeasure.polyline); |
| | | |
| | | if(distanceMeasure.marker) |
| | | distanceMeasure.marker.remove(); |
| | | });*/ |
| | | }, |
| | | click: function (e) { |
| | | distanceMeasure.map.doubleClickZoom.disable() |
| | | // 添加点信息 |
| | | distanceMeasure.points.push(e.latlng) |
| | | // 添加线 |
| | | distanceMeasure.map.on('mousemove', distanceMeasure.mousemove) |
| | | }, |
| | | mousemove: function (e) { |
| | | distanceMeasure.points.push(e.latlng) |
| | | if (distanceMeasure.polyline) { |
| | | distanceMeasure.map.removeLayer(distanceMeasure.polyline) |
| | | } |
| | | distanceMeasure.polyline = distanceMeasure.L.polyline(distanceMeasure.points, { |
| | | showMeasurements: true, |
| | | color: 'red' |
| | | }) |
| | | distanceMeasure.polyline.addTo(distanceMeasure.layers) |
| | | // distanceMeasure.polyline.enableEdit() |
| | | distanceMeasure.layers.addTo(distanceMeasure.map) |
| | | distanceMeasure.points.pop() |
| | | }, |
| | | dblclick: function (e) { // 双击结束 |
| | | console.log('双击结束', e) |
| | | distanceMeasure.polyline.enableEdit() |
| | | distanceMeasure.polyline.dragging.disable() |
| | | distanceMeasure.polyline.addTo(distanceMeasure.layers) |
| | | distanceMeasure.map.on('editable:vertex:drag editable:vertex:deleted', distanceMeasure.polyline.updateMeasurements, distanceMeasure.polyline) |
| | | distanceMeasure.close(e.latlng) |
| | | distanceMeasure.map.off('click', distanceMeasure.click).off('mousemove', distanceMeasure.mousemove).off('dblclick', distanceMeasure.dblclick) |
| | | }, |
| | | destory: function () { |
| | | if (distanceMeasure.polyline) { |
| | | distanceMeasure.map.removeLayer(distanceMeasure.polyline) |
| | | } |
| | | if (distanceMeasure.marker) { |
| | | distanceMeasure.marker.remove() |
| | | } |
| | | if (distanceMeasure.layers) { |
| | | distanceMeasure.layers.clearLayers() |
| | | } |
| | | } |
| | | } |
| | | |
| | | const startMeasureArea = function (map, L) { |
| | | areaMeasure.destory() |
| | | areaMeasure.init(map, L) |
| | | } |
| | | |
| | | const startMeasureLen = function (map, L) { |
| | | distanceMeasure.destory() |
| | | distanceMeasure.init(map, L) |
| | | } |
| | | |
| | | const clearMeasure = function () { |
| | | areaMeasure.destory() |
| | | distanceMeasure.destory() |
| | | } |
| | | export default { |
| | | startMeasureArea, |
| | | startMeasureLen, |
| | | clearMeasure |
| | | } |
| | |
| | | .leaflet-measure-path-measurement {
|
| | | position: absolute;
|
| | | font-size: 10px;
|
| | | color: black;
|
| | | text-shadow: -1px 0 0 white,
|
| | | -1px -1px 0 white,
|
| | | 0 -1px 0 white,
|
| | | 1px -1px 0 white,
|
| | | 1px 0 0 white,
|
| | | 1px 1px 0 white,
|
| | | 0 1px 0 white,
|
| | | -1px 1px 0 white;
|
| | | white-space: nowrap;
|
| | | transform-origin: 0;
|
| | | pointer-events: none;
|
| | | }
|
| | |
|
| | | .leaflet-measure-path-measurement > div {
|
| | | position: relative;
|
| | | margin-top: -25%;
|
| | | left: -50%;
|
| | | }
|
| | | .leaflet-measure-path-measurement { |
| | | position: absolute; |
| | | font-size: 10px; |
| | | color: black; |
| | | text-shadow: -1px 0 0 white, |
| | | -1px -1px 0 white, |
| | | 0 -1px 0 white, |
| | | 1px -1px 0 white, |
| | | 1px 0 0 white, |
| | | 1px 1px 0 white, |
| | | 0 1px 0 white, |
| | | -1px 1px 0 white; |
| | | white-space: nowrap; |
| | | transform-origin: 0; |
| | | pointer-events: none; |
| | | } |
| | | |
| | | .leaflet-measure-path-measurement > div { |
| | | position: relative; |
| | | margin-top: -25%; |
| | | left: -50%; |
| | | } |
| | |
| | | /* eslint-disable */
|
| | | !(function() {
|
| | | 'use strict'
|
| | |
|
| | | L.Marker.Measurement = L[L.Layer ? 'Layer' : 'Class'].extend({
|
| | | options: {
|
| | | pane: 'markerPane'
|
| | | },
|
| | |
|
| | | initialize: function(latlng, measurement, title, rotation, options) {
|
| | | L.setOptions(this, options)
|
| | |
|
| | | this._latlng = latlng
|
| | | this._measurement = measurement
|
| | | this._title = title
|
| | | this._rotation = rotation
|
| | | },
|
| | |
|
| | | addTo: function(map) {
|
| | | map.addLayer(this)
|
| | | return this
|
| | | },
|
| | |
|
| | | onAdd: function(map) {
|
| | | this._map = map
|
| | | var pane = this.getPane ? this.getPane() : map.getPanes().markerPane
|
| | | var el = this._element = L.DomUtil.create('div', 'leaflet-zoom-animated leaflet-measure-path-measurement', pane)
|
| | | var inner = L.DomUtil.create('div', '', el)
|
| | | inner.title = this._title
|
| | | inner.innerHTML = this._measurement
|
| | |
|
| | | map.on('zoomanim', this._animateZoom, this)
|
| | |
|
| | | this._setPosition()
|
| | | },
|
| | |
|
| | | onRemove: function(map) {
|
| | | map.off('zoomanim', this._animateZoom, this)
|
| | | var pane = this.getPane ? this.getPane() : map.getPanes().markerPane
|
| | | pane.removeChild(this._element)
|
| | | this._map = null
|
| | | },
|
| | |
|
| | | _setPosition: function() {
|
| | | L.DomUtil.setPosition(this._element, this._map.latLngToLayerPoint(this._latlng))
|
| | | this._element.style.transform += ' rotate(' + this._rotation + 'rad)'
|
| | | },
|
| | |
|
| | | _animateZoom: function(opt) {
|
| | | var pos = this._map._latLngToNewLayerPoint(this._latlng, opt.zoom, opt.center).round()
|
| | | L.DomUtil.setPosition(this._element, pos)
|
| | | this._element.style.transform += ' rotate(' + this._rotation + 'rad)'
|
| | | }
|
| | | })
|
| | |
|
| | | L.marker.measurement = function(latLng, measurement, title, rotation, options) {
|
| | | return new L.Marker.Measurement(latLng, measurement, title, rotation, options)
|
| | | }
|
| | |
|
| | | var formatDistance = function(d) {
|
| | | var unit,
|
| | | feet
|
| | |
|
| | | if (this._measurementOptions.imperial) {
|
| | | feet = d / 0.3048
|
| | | if (feet > 3000) {
|
| | | d = d / 1609.344
|
| | | unit = 'mi'
|
| | | } else {
|
| | | d = feet
|
| | | unit = 'ft'
|
| | | }
|
| | | } else {
|
| | | if (d > 1000) {
|
| | | d = d / 1000
|
| | | unit = 'km'
|
| | | } else {
|
| | | unit = 'm'
|
| | | }
|
| | | }
|
| | |
|
| | | if (d < 100) {
|
| | | return d.toFixed(1) + ' ' + unit
|
| | | } else {
|
| | | return Math.round(d) + ' ' + unit
|
| | | }
|
| | | }
|
| | |
|
| | | var formatArea = function(a) {
|
| | | var unit,
|
| | | sqfeet
|
| | |
|
| | | if (this._measurementOptions.imperial) {
|
| | | if (a > 404.685642) {
|
| | | a = a / 4046.85642
|
| | | unit = 'ac'
|
| | | } else {
|
| | | a = a / 0.09290304
|
| | | unit = 'ft²'
|
| | | }
|
| | | } else {
|
| | | if (a > 1000000) {
|
| | | a = a / 1000000
|
| | | unit = 'km²'
|
| | | } else {
|
| | | unit = 'm²'
|
| | | }
|
| | | }
|
| | |
|
| | | if (a < 100) {
|
| | | return a.toFixed(1) + ' ' + unit
|
| | | } else {
|
| | | return Math.round(a) + ' ' + unit
|
| | | }
|
| | | }
|
| | |
|
| | | var RADIUS = 6378137
|
| | | // ringArea function copied from geojson-area
|
| | | // (https://github.com/mapbox/geojson-area)
|
| | | // This function is distributed under a separate license,
|
| | | // see LICENSE.md.
|
| | | var ringArea = function ringArea(coords) {
|
| | | var rad = function rad(_) {
|
| | | return _ * Math.PI / 180
|
| | | }
|
| | | var p1, p2, p3, lowerIndex, middleIndex, upperIndex,
|
| | | area = 0,
|
| | | coordsLength = coords.length
|
| | |
|
| | | if (coordsLength > 2) {
|
| | | for (var i = 0; i < coordsLength; i++) {
|
| | | if (i === coordsLength - 2) {// i = N-2
|
| | | lowerIndex = coordsLength - 2
|
| | | middleIndex = coordsLength -1
|
| | | upperIndex = 0
|
| | | } else if (i === coordsLength - 1) {// i = N-1
|
| | | lowerIndex = coordsLength - 1
|
| | | middleIndex = 0
|
| | | upperIndex = 1
|
| | | } else { // i = 0 to N-3
|
| | | lowerIndex = i
|
| | | middleIndex = i+1
|
| | | upperIndex = i+2
|
| | | }
|
| | | p1 = coords[lowerIndex]
|
| | | p2 = coords[middleIndex]
|
| | | p3 = coords[upperIndex]
|
| | | area += ( rad(p3.lng) - rad(p1.lng) ) * Math.sin( rad(p2.lat))
|
| | | }
|
| | |
|
| | | area = area * RADIUS * RADIUS / 2
|
| | | }
|
| | |
|
| | | return Math.abs(area)
|
| | | }
|
| | | /**
|
| | | * Handles the init hook for polylines and circles.
|
| | | * Implements the showOnHover functionality if called for.
|
| | | */
|
| | | var addInitHook = function() {
|
| | | var showOnHover = this.options.measurementOptions && this.options.measurementOptions.showOnHover
|
| | | if (this.options.showMeasurements && !showOnHover) {
|
| | | this.showMeasurements()
|
| | | }
|
| | | if (this.options.showMeasurements && showOnHover) {
|
| | | this.on('mouseover', function() {
|
| | | this.showMeasurements()
|
| | | })
|
| | | this.on('mouseout', function() {
|
| | | this.hideMeasurements()
|
| | | })
|
| | | }
|
| | | }
|
| | |
|
| | | var circleArea = function circleArea(d) {
|
| | | var rho = d / RADIUS
|
| | | return 2 * Math.PI * RADIUS * RADIUS * (1 - Math.cos(rho))
|
| | | }
|
| | |
|
| | | var override = function(method, fn, hookAfter) {
|
| | | if (!hookAfter) {
|
| | | return function() {
|
| | | var originalReturnValue = method.apply(this, arguments)
|
| | | var args = Array.prototype.slice.call(arguments)
|
| | | args.push(originalReturnValue)
|
| | | return fn.apply(this, args)
|
| | | }
|
| | | } else {
|
| | | return function() {
|
| | | fn.apply(this, arguments)
|
| | | return method.apply(this, arguments)
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | L.Polyline.include({
|
| | | showMeasurements: function(options) {
|
| | | if (!this._map || this._measurementLayer) return this
|
| | |
|
| | | this._measurementOptions = L.extend({
|
| | | showOnHover: (options && options.showOnHover) || false,
|
| | | minPixelDistance: 30,
|
| | | showDistances: true,
|
| | | showArea: true,
|
| | | showTotalDistance: true,
|
| | | lang: {
|
| | | totalLength: 'Total length',
|
| | | totalArea: 'Total area',
|
| | | segmentLength: 'Segment length'
|
| | | }
|
| | | }, options || {})
|
| | |
|
| | | this._measurementLayer = L.layerGroup().addTo(this._map)
|
| | | this.updateMeasurements()
|
| | |
|
| | | this._map.on('zoomend', this.updateMeasurements, this)
|
| | |
|
| | | return this
|
| | | },
|
| | |
|
| | | hideMeasurements: function() {
|
| | | if (!this._map) return this
|
| | |
|
| | | this._map.off('zoomend', this.updateMeasurements, this)
|
| | |
|
| | | if (!this._measurementLayer) return this
|
| | | this._map.removeLayer(this._measurementLayer)
|
| | | this._measurementLayer = null
|
| | |
|
| | | return this
|
| | | },
|
| | |
|
| | | onAdd: override(L.Polyline.prototype.onAdd, function(originalReturnValue) {
|
| | | var showOnHover = this.options.measurementOptions && this.options.measurementOptions.showOnHover
|
| | | if (this.options.showMeasurements && !showOnHover) {
|
| | | this.showMeasurements(this.options.measurementOptions)
|
| | | }
|
| | |
|
| | | return originalReturnValue
|
| | | }),
|
| | |
|
| | | onRemove: override(L.Polyline.prototype.onRemove, function(originalReturnValue) {
|
| | | this.hideMeasurements()
|
| | |
|
| | | return originalReturnValue
|
| | | }, true),
|
| | |
|
| | | setLatLngs: override(L.Polyline.prototype.setLatLngs, function(originalReturnValue) {
|
| | | this.updateMeasurements()
|
| | |
|
| | | return originalReturnValue
|
| | | }),
|
| | |
|
| | | spliceLatLngs: override(L.Polyline.prototype.spliceLatLngs, function(originalReturnValue) {
|
| | | this.updateMeasurements()
|
| | |
|
| | | return originalReturnValue
|
| | | }),
|
| | |
|
| | | formatDistance: formatDistance,
|
| | | formatArea: formatArea,
|
| | |
|
| | | updateMeasurements: function() {
|
| | | if (!this._measurementLayer) return this
|
| | |
|
| | | var latLngs = this.getLatLngs(),
|
| | | isPolygon = this instanceof L.Polygon,
|
| | | options = this._measurementOptions,
|
| | | totalDist = 0,
|
| | | formatter,
|
| | | ll1,
|
| | | ll2,
|
| | | p1,
|
| | | p2,
|
| | | pixelDist,
|
| | | dist
|
| | |
|
| | | if (latLngs && latLngs.length && L.Util.isArray(latLngs[0])) {
|
| | | // Outer ring is stored as an array in the first element,
|
| | | // use that instead.
|
| | | latLngs = latLngs[0]
|
| | | }
|
| | |
|
| | | this._measurementLayer.clearLayers()
|
| | |
|
| | | if (this._measurementOptions.showDistances && latLngs.length > 1) {
|
| | | formatter = this._measurementOptions.formatDistance || L.bind(this.formatDistance, this)
|
| | |
|
| | | for (var i = 1, len = latLngs.length; (isPolygon && i <= len) || i < len; i++) {
|
| | | ll1 = latLngs[i - 1]
|
| | | ll2 = latLngs[i % len]
|
| | | dist = ll1.distanceTo(ll2)
|
| | | totalDist += dist
|
| | |
|
| | | p1 = this._map.latLngToLayerPoint(ll1)
|
| | | p2 = this._map.latLngToLayerPoint(ll2)
|
| | |
|
| | | pixelDist = p1.distanceTo(p2)
|
| | |
|
| | | if (pixelDist >= options.minPixelDistance) {
|
| | | L.marker.measurement(
|
| | | this._map.layerPointToLatLng([(p1.x + p2.x) / 2, (p1.y + p2.y) / 2]),
|
| | | formatter(dist), options.lang.segmentLength, this._getRotation(ll1, ll2), options)
|
| | | .addTo(this._measurementLayer)
|
| | | }
|
| | | }
|
| | |
|
| | | // Show total length for polylines
|
| | | if (!isPolygon && this._measurementOptions.showTotalDistance) {
|
| | | L.marker.measurement(ll2, formatter(totalDist), options.lang.totalLength, 0, options)
|
| | | .addTo(this._measurementLayer)
|
| | | }
|
| | | }
|
| | |
|
| | | if (isPolygon && options.showArea && latLngs.length > 2) {
|
| | | formatter = options.formatArea || L.bind(this.formatArea, this)
|
| | | var area = ringArea(latLngs)
|
| | | L.marker.measurement(this.getBounds().getCenter(),
|
| | | formatter(area), options.lang.totalArea, 0, options)
|
| | | .addTo(this._measurementLayer)
|
| | | }
|
| | |
|
| | | return this
|
| | | },
|
| | |
|
| | | _getRotation: function(ll1, ll2) {
|
| | | var p1 = this._map.project(ll1),
|
| | | p2 = this._map.project(ll2)
|
| | |
|
| | | return Math.atan((p2.y - p1.y) / (p2.x - p1.x))
|
| | | }
|
| | | })
|
| | |
|
| | | L.Polyline.addInitHook(function() {
|
| | | addInitHook.call(this)
|
| | | })
|
| | |
|
| | | L.Circle.include({
|
| | | showMeasurements: function(options) {
|
| | | if (!this._map || this._measurementLayer) return this
|
| | |
|
| | | this._measurementOptions = L.extend({
|
| | | showOnHover: false,
|
| | | showArea: true,
|
| | | lang: {
|
| | | totalArea: 'Total area',
|
| | | }
|
| | | }, options || {})
|
| | |
|
| | | this._measurementLayer = L.layerGroup().addTo(this._map)
|
| | | this.updateMeasurements()
|
| | |
|
| | | this._map.on('zoomend', this.updateMeasurements, this)
|
| | |
|
| | | return this
|
| | | },
|
| | |
|
| | | hideMeasurements: function() {
|
| | | if (!this._map) return this
|
| | |
|
| | | this._map.on('zoomend', this.updateMeasurements, this)
|
| | |
|
| | | if (!this._measurementLayer) return this
|
| | | this._map.removeLayer(this._measurementLayer)
|
| | | this._measurementLayer = null
|
| | |
|
| | | return this
|
| | | },
|
| | |
|
| | | onAdd: override(L.Circle.prototype.onAdd, function(originalReturnValue) {
|
| | | var showOnHover = this.options.measurementOptions && this.options.measurementOptions.showOnHover
|
| | | if (this.options.showMeasurements && !showOnHover) {
|
| | | this.showMeasurements(this.options.measurementOptions)
|
| | | }
|
| | |
|
| | | return originalReturnValue
|
| | | }),
|
| | |
|
| | | onRemove: override(L.Circle.prototype.onRemove, function(originalReturnValue) {
|
| | | this.hideMeasurements()
|
| | |
|
| | | return originalReturnValue
|
| | | }, true),
|
| | |
|
| | | setLatLng: override(L.Circle.prototype.setLatLng, function(originalReturnValue) {
|
| | | this.updateMeasurements()
|
| | |
|
| | | return originalReturnValue
|
| | | }),
|
| | |
|
| | | setRadius: override(L.Circle.prototype.setRadius, function(originalReturnValue) {
|
| | | this.updateMeasurements()
|
| | |
|
| | | return originalReturnValue
|
| | | }),
|
| | |
|
| | | formatArea: formatArea,
|
| | |
|
| | | updateMeasurements: function() {
|
| | | if (!this._measurementLayer) return
|
| | |
|
| | | var latLng = this.getLatLng(),
|
| | | options = this._measurementOptions,
|
| | | formatter = options.formatArea || L.bind(this.formatArea, this)
|
| | |
|
| | | this._measurementLayer.clearLayers()
|
| | |
|
| | | if (options.showArea) {
|
| | | formatter = options.formatArea || L.bind(this.formatArea, this)
|
| | | var area = circleArea(this.getRadius())
|
| | | L.marker.measurement(latLng,
|
| | | formatter(area), options.lang.totalArea, 0, options)
|
| | | .addTo(this._measurementLayer)
|
| | | }
|
| | | }
|
| | | })
|
| | |
|
| | | L.Circle.addInitHook(function() {
|
| | | addInitHook.call(this)
|
| | | })
|
| | | /* eslint-disable */ |
| | | !(function() { |
| | | 'use strict' |
| | | |
| | | L.Marker.Measurement = L[L.Layer ? 'Layer' : 'Class'].extend({ |
| | | options: { |
| | | pane: 'markerPane' |
| | | }, |
| | | |
| | | initialize: function(latlng, measurement, title, rotation, options) { |
| | | L.setOptions(this, options) |
| | | |
| | | this._latlng = latlng |
| | | this._measurement = measurement |
| | | this._title = title |
| | | this._rotation = rotation |
| | | }, |
| | | |
| | | addTo: function(map) { |
| | | map.addLayer(this) |
| | | return this |
| | | }, |
| | | |
| | | onAdd: function(map) { |
| | | this._map = map |
| | | var pane = this.getPane ? this.getPane() : map.getPanes().markerPane |
| | | var el = this._element = L.DomUtil.create('div', 'leaflet-zoom-animated leaflet-measure-path-measurement', pane) |
| | | var inner = L.DomUtil.create('div', '', el) |
| | | inner.title = this._title |
| | | inner.innerHTML = this._measurement |
| | | |
| | | map.on('zoomanim', this._animateZoom, this) |
| | | |
| | | this._setPosition() |
| | | }, |
| | | |
| | | onRemove: function(map) { |
| | | map.off('zoomanim', this._animateZoom, this) |
| | | var pane = this.getPane ? this.getPane() : map.getPanes().markerPane |
| | | pane.removeChild(this._element) |
| | | this._map = null |
| | | }, |
| | | |
| | | _setPosition: function() { |
| | | L.DomUtil.setPosition(this._element, this._map.latLngToLayerPoint(this._latlng)) |
| | | this._element.style.transform += ' rotate(' + this._rotation + 'rad)' |
| | | }, |
| | | |
| | | _animateZoom: function(opt) { |
| | | var pos = this._map._latLngToNewLayerPoint(this._latlng, opt.zoom, opt.center).round() |
| | | L.DomUtil.setPosition(this._element, pos) |
| | | this._element.style.transform += ' rotate(' + this._rotation + 'rad)' |
| | | } |
| | | }) |
| | | |
| | | L.marker.measurement = function(latLng, measurement, title, rotation, options) { |
| | | return new L.Marker.Measurement(latLng, measurement, title, rotation, options) |
| | | } |
| | | |
| | | var formatDistance = function(d) { |
| | | var unit, |
| | | feet |
| | | |
| | | if (this._measurementOptions.imperial) { |
| | | feet = d / 0.3048 |
| | | if (feet > 3000) { |
| | | d = d / 1609.344 |
| | | unit = 'mi' |
| | | } else { |
| | | d = feet |
| | | unit = 'ft' |
| | | } |
| | | } else { |
| | | if (d > 1000) { |
| | | d = d / 1000 |
| | | unit = 'km' |
| | | } else { |
| | | unit = 'm' |
| | | } |
| | | } |
| | | |
| | | if (d < 100) { |
| | | return d.toFixed(1) + ' ' + unit |
| | | } else { |
| | | return Math.round(d) + ' ' + unit |
| | | } |
| | | } |
| | | |
| | | var formatArea = function(a) { |
| | | var unit, |
| | | sqfeet |
| | | |
| | | if (this._measurementOptions.imperial) { |
| | | if (a > 404.685642) { |
| | | a = a / 4046.85642 |
| | | unit = 'ac' |
| | | } else { |
| | | a = a / 0.09290304 |
| | | unit = 'ft²' |
| | | } |
| | | } else { |
| | | if (a > 1000000) { |
| | | a = a / 1000000 |
| | | unit = 'km²' |
| | | } else { |
| | | unit = 'm²' |
| | | } |
| | | } |
| | | |
| | | if (a < 100) { |
| | | return a.toFixed(1) + ' ' + unit |
| | | } else { |
| | | return Math.round(a) + ' ' + unit |
| | | } |
| | | } |
| | | |
| | | var RADIUS = 6378137 |
| | | // ringArea function copied from geojson-area |
| | | // (https://github.com/mapbox/geojson-area) |
| | | // This function is distributed under a separate license, |
| | | // see LICENSE.md. |
| | | var ringArea = function ringArea(coords) { |
| | | var rad = function rad(_) { |
| | | return _ * Math.PI / 180 |
| | | } |
| | | var p1, p2, p3, lowerIndex, middleIndex, upperIndex, |
| | | area = 0, |
| | | coordsLength = coords.length |
| | | |
| | | if (coordsLength > 2) { |
| | | for (var i = 0; i < coordsLength; i++) { |
| | | if (i === coordsLength - 2) {// i = N-2 |
| | | lowerIndex = coordsLength - 2 |
| | | middleIndex = coordsLength -1 |
| | | upperIndex = 0 |
| | | } else if (i === coordsLength - 1) {// i = N-1 |
| | | lowerIndex = coordsLength - 1 |
| | | middleIndex = 0 |
| | | upperIndex = 1 |
| | | } else { // i = 0 to N-3 |
| | | lowerIndex = i |
| | | middleIndex = i+1 |
| | | upperIndex = i+2 |
| | | } |
| | | p1 = coords[lowerIndex] |
| | | p2 = coords[middleIndex] |
| | | p3 = coords[upperIndex] |
| | | area += ( rad(p3.lng) - rad(p1.lng) ) * Math.sin( rad(p2.lat)) |
| | | } |
| | | |
| | | area = area * RADIUS * RADIUS / 2 |
| | | } |
| | | |
| | | return Math.abs(area) |
| | | } |
| | | /** |
| | | * Handles the init hook for polylines and circles. |
| | | * Implements the showOnHover functionality if called for. |
| | | */ |
| | | var addInitHook = function() { |
| | | var showOnHover = this.options.measurementOptions && this.options.measurementOptions.showOnHover |
| | | if (this.options.showMeasurements && !showOnHover) { |
| | | this.showMeasurements() |
| | | } |
| | | if (this.options.showMeasurements && showOnHover) { |
| | | this.on('mouseover', function() { |
| | | this.showMeasurements() |
| | | }) |
| | | this.on('mouseout', function() { |
| | | this.hideMeasurements() |
| | | }) |
| | | } |
| | | } |
| | | |
| | | var circleArea = function circleArea(d) { |
| | | var rho = d / RADIUS |
| | | return 2 * Math.PI * RADIUS * RADIUS * (1 - Math.cos(rho)) |
| | | } |
| | | |
| | | var override = function(method, fn, hookAfter) { |
| | | if (!hookAfter) { |
| | | return function() { |
| | | var originalReturnValue = method.apply(this, arguments) |
| | | var args = Array.prototype.slice.call(arguments) |
| | | args.push(originalReturnValue) |
| | | return fn.apply(this, args) |
| | | } |
| | | } else { |
| | | return function() { |
| | | fn.apply(this, arguments) |
| | | return method.apply(this, arguments) |
| | | } |
| | | } |
| | | } |
| | | |
| | | L.Polyline.include({ |
| | | showMeasurements: function(options) { |
| | | if (!this._map || this._measurementLayer) return this |
| | | |
| | | this._measurementOptions = L.extend({ |
| | | showOnHover: (options && options.showOnHover) || false, |
| | | minPixelDistance: 30, |
| | | showDistances: true, |
| | | showArea: true, |
| | | showTotalDistance: true, |
| | | lang: { |
| | | totalLength: 'Total length', |
| | | totalArea: 'Total area', |
| | | segmentLength: 'Segment length' |
| | | } |
| | | }, options || {}) |
| | | |
| | | this._measurementLayer = L.layerGroup().addTo(this._map) |
| | | this.updateMeasurements() |
| | | |
| | | this._map.on('zoomend', this.updateMeasurements, this) |
| | | |
| | | return this |
| | | }, |
| | | |
| | | hideMeasurements: function() { |
| | | if (!this._map) return this |
| | | |
| | | this._map.off('zoomend', this.updateMeasurements, this) |
| | | |
| | | if (!this._measurementLayer) return this |
| | | this._map.removeLayer(this._measurementLayer) |
| | | this._measurementLayer = null |
| | | |
| | | return this |
| | | }, |
| | | |
| | | onAdd: override(L.Polyline.prototype.onAdd, function(originalReturnValue) { |
| | | var showOnHover = this.options.measurementOptions && this.options.measurementOptions.showOnHover |
| | | if (this.options.showMeasurements && !showOnHover) { |
| | | this.showMeasurements(this.options.measurementOptions) |
| | | } |
| | | |
| | | return originalReturnValue |
| | | }), |
| | | |
| | | onRemove: override(L.Polyline.prototype.onRemove, function(originalReturnValue) { |
| | | this.hideMeasurements() |
| | | |
| | | return originalReturnValue |
| | | }, true), |
| | | |
| | | setLatLngs: override(L.Polyline.prototype.setLatLngs, function(originalReturnValue) { |
| | | this.updateMeasurements() |
| | | |
| | | return originalReturnValue |
| | | }), |
| | | |
| | | spliceLatLngs: override(L.Polyline.prototype.spliceLatLngs, function(originalReturnValue) { |
| | | this.updateMeasurements() |
| | | |
| | | return originalReturnValue |
| | | }), |
| | | |
| | | formatDistance: formatDistance, |
| | | formatArea: formatArea, |
| | | |
| | | updateMeasurements: function() { |
| | | if (!this._measurementLayer) return this |
| | | |
| | | var latLngs = this.getLatLngs(), |
| | | isPolygon = this instanceof L.Polygon, |
| | | options = this._measurementOptions, |
| | | totalDist = 0, |
| | | formatter, |
| | | ll1, |
| | | ll2, |
| | | p1, |
| | | p2, |
| | | pixelDist, |
| | | dist |
| | | |
| | | if (latLngs && latLngs.length && L.Util.isArray(latLngs[0])) { |
| | | // Outer ring is stored as an array in the first element, |
| | | // use that instead. |
| | | latLngs = latLngs[0] |
| | | } |
| | | |
| | | this._measurementLayer.clearLayers() |
| | | |
| | | if (this._measurementOptions.showDistances && latLngs.length > 1) { |
| | | formatter = this._measurementOptions.formatDistance || L.bind(this.formatDistance, this) |
| | | |
| | | for (var i = 1, len = latLngs.length; (isPolygon && i <= len) || i < len; i++) { |
| | | ll1 = latLngs[i - 1] |
| | | ll2 = latLngs[i % len] |
| | | dist = ll1.distanceTo(ll2) |
| | | totalDist += dist |
| | | |
| | | p1 = this._map.latLngToLayerPoint(ll1) |
| | | p2 = this._map.latLngToLayerPoint(ll2) |
| | | |
| | | pixelDist = p1.distanceTo(p2) |
| | | |
| | | if (pixelDist >= options.minPixelDistance) { |
| | | L.marker.measurement( |
| | | this._map.layerPointToLatLng([(p1.x + p2.x) / 2, (p1.y + p2.y) / 2]), |
| | | formatter(dist), options.lang.segmentLength, this._getRotation(ll1, ll2), options) |
| | | .addTo(this._measurementLayer) |
| | | } |
| | | } |
| | | |
| | | // Show total length for polylines |
| | | if (!isPolygon && this._measurementOptions.showTotalDistance) { |
| | | L.marker.measurement(ll2, formatter(totalDist), options.lang.totalLength, 0, options) |
| | | .addTo(this._measurementLayer) |
| | | } |
| | | } |
| | | |
| | | if (isPolygon && options.showArea && latLngs.length > 2) { |
| | | formatter = options.formatArea || L.bind(this.formatArea, this) |
| | | var area = ringArea(latLngs) |
| | | L.marker.measurement(this.getBounds().getCenter(), |
| | | formatter(area), options.lang.totalArea, 0, options) |
| | | .addTo(this._measurementLayer) |
| | | } |
| | | |
| | | return this |
| | | }, |
| | | |
| | | _getRotation: function(ll1, ll2) { |
| | | var p1 = this._map.project(ll1), |
| | | p2 = this._map.project(ll2) |
| | | |
| | | return Math.atan((p2.y - p1.y) / (p2.x - p1.x)) |
| | | } |
| | | }) |
| | | |
| | | L.Polyline.addInitHook(function() { |
| | | addInitHook.call(this) |
| | | }) |
| | | |
| | | L.Circle.include({ |
| | | showMeasurements: function(options) { |
| | | if (!this._map || this._measurementLayer) return this |
| | | |
| | | this._measurementOptions = L.extend({ |
| | | showOnHover: false, |
| | | showArea: true, |
| | | lang: { |
| | | totalArea: 'Total area', |
| | | } |
| | | }, options || {}) |
| | | |
| | | this._measurementLayer = L.layerGroup().addTo(this._map) |
| | | this.updateMeasurements() |
| | | |
| | | this._map.on('zoomend', this.updateMeasurements, this) |
| | | |
| | | return this |
| | | }, |
| | | |
| | | hideMeasurements: function() { |
| | | if (!this._map) return this |
| | | |
| | | this._map.on('zoomend', this.updateMeasurements, this) |
| | | |
| | | if (!this._measurementLayer) return this |
| | | this._map.removeLayer(this._measurementLayer) |
| | | this._measurementLayer = null |
| | | |
| | | return this |
| | | }, |
| | | |
| | | onAdd: override(L.Circle.prototype.onAdd, function(originalReturnValue) { |
| | | var showOnHover = this.options.measurementOptions && this.options.measurementOptions.showOnHover |
| | | if (this.options.showMeasurements && !showOnHover) { |
| | | this.showMeasurements(this.options.measurementOptions) |
| | | } |
| | | |
| | | return originalReturnValue |
| | | }), |
| | | |
| | | onRemove: override(L.Circle.prototype.onRemove, function(originalReturnValue) { |
| | | this.hideMeasurements() |
| | | |
| | | return originalReturnValue |
| | | }, true), |
| | | |
| | | setLatLng: override(L.Circle.prototype.setLatLng, function(originalReturnValue) { |
| | | this.updateMeasurements() |
| | | |
| | | return originalReturnValue |
| | | }), |
| | | |
| | | setRadius: override(L.Circle.prototype.setRadius, function(originalReturnValue) { |
| | | this.updateMeasurements() |
| | | |
| | | return originalReturnValue |
| | | }), |
| | | |
| | | formatArea: formatArea, |
| | | |
| | | updateMeasurements: function() { |
| | | if (!this._measurementLayer) return |
| | | |
| | | var latLng = this.getLatLng(), |
| | | options = this._measurementOptions, |
| | | formatter = options.formatArea || L.bind(this.formatArea, this) |
| | | |
| | | this._measurementLayer.clearLayers() |
| | | |
| | | if (options.showArea) { |
| | | formatter = options.formatArea || L.bind(this.formatArea, this) |
| | | var area = circleArea(this.getRadius()) |
| | | L.marker.measurement(latLng, |
| | | formatter(area), options.lang.totalArea, 0, options) |
| | | .addTo(this._measurementLayer) |
| | | } |
| | | } |
| | | }) |
| | | |
| | | L.Circle.addInitHook(function() { |
| | | addInitHook.call(this) |
| | | }) |
| | | })() |
| | |
| | | <template> |
| | | <div class="summary-sheets"> |
| | | <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="统计表" placement="left"> |
| | | <div :class='["iconBtn",summaryVisible ? "active-button" : ""]' @click="closeBtn"> |
| | | <img src="@assets/images/map-pages/icon/toolbox/table.png" alt="" class="icon"> |
| | | <!--<span class="icon-name">统计表</span>--> |
| | | <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="报表" placement="left"> |
| | | <div :class='["iconBtn",subtopic ? "active-button" : ""]' @click="subtopicBtn" > |
| | | <i class="el-icon-tickets icon"></i> |
| | | </div> |
| | | </el-tooltip> |
| | | <!-- <Dialog ref="summarySheets" title="企业指标分类统计">--> |
| | | <!-- <tab-handover></tab-handover>--> |
| | | <!-- </Dialog >--> |
| | | <div class="dialog" v-drag v-show="dialogShow"> |
| | | <transition name="animationChange"> |
| | | <div class="subtopic" v-if="subtopic"> |
| | | <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="统计表" placement="bottom"> |
| | | <div :class='["iconBtn",summaryVisible ? "active-button" : ""]' @click="closeBtn"> |
| | | <img src="@assets/images/map-pages/icon/toolbox/table.png" alt="" class="icon"> |
| | | <!--<span class="icon-name">统计表</span>--> |
| | | </div> |
| | | </el-tooltip> |
| | | <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="指标" placement="bottom"> |
| | | <div :class='["iconBtn",companyVisible ? "active-button" : ""]' @click="showStatisDialog()" > |
| | | <!-- <img src="@/assets/images/map-pages/icon/map/company.png" alt="" class="icon"> --> |
| | | <i class="el-icon-office-building icon"></i> |
| | | </div> |
| | | </el-tooltip> |
| | | <el-tooltip :popper-class="'map-tooltip'" effect="dark" content="预报警" placement="bottom"> |
| | | <div :class='["iconBtn",warnVisible ? "active-button" : ""]' @click="showWarnDialog()" > |
| | | <img src="@/assets/images/map-pages/icon/map/warn.png" alt="" class="icon"> |
| | | <!--<span class="icon-name">预报警</span>--> |
| | | </div> |
| | | </el-tooltip> |
| | | </div> |
| | | </transition> |
| | | <Dialog ref="summarySheets" title="企业预警报警分类统计" > |
| | | <tab-handover></tab-handover> |
| | | </div> |
| | | </Dialog> |
| | | <Dialog ref="warnDialog" title="企业预警报警分类统计" > |
| | | <warn></warn> |
| | | </Dialog> |
| | | <Dialog ref="indexStatisticsDialog" title="企业指标分类统计"> |
| | | <index-statistics></index-statistics> |
| | | </Dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import tabHandover from '@components/table/components/tabHandover' |
| | | // import Dialog from '@views/popup/Dialog' |
| | | import Dialog from '../../views/popup/Dialog' |
| | | import Warn from './components/Warn' |
| | | import IndexStatistics from './components/IndexStatistics' |
| | | |
| | | import '@/components/BaseNav/SolidWaste/directive/dir' |
| | | |
| | | export default { |
| | | name: 'summary-sheet.vue', |
| | | components: { |
| | | tabHandover |
| | | tabHandover, |
| | | Dialog, |
| | | Warn, |
| | | IndexStatistics |
| | | // Dialog |
| | | }, |
| | | data () { |
| | | return { |
| | | summaryVisible: false, |
| | | dialogShow: false |
| | | dialogShow: false, |
| | | comp: Warn, |
| | | warnVisible: false, |
| | | companyVisible: false, |
| | | subtopic: false |
| | | } |
| | | }, |
| | | methods: { |
| | | closeBtn () { |
| | | this.dialogShow = !this.dialogShow |
| | | // const summary = document.getElementById('summary') |
| | | // summary.style.display = 'none' |
| | | this.$refs.summarySheets.show() |
| | | this.summaryVisible = true |
| | | }, |
| | | showWarnDialog () { |
| | | this.$refs.warnDialog.show() |
| | | this.warnVisible = true |
| | | }, |
| | | showStatisDialog () { |
| | | this.$refs.indexStatisticsDialog.show() |
| | | this.companyVisible = true |
| | | }, |
| | | subtopicBtn () { |
| | | this.subtopic = !this.subtopic |
| | | } |
| | | }, |
| | | mounted () { |
| | |
| | | this.$refs.summarySheets.$on('closeDialog', () => { |
| | | that.summaryVisible = false |
| | | }) |
| | | this.$refs.warnDialog.$on('closeDialog', () => { |
| | | that.warnVisible = false |
| | | }) |
| | | this.$refs.indexStatisticsDialog.$on('closeDialog', () => { |
| | | that.companyVisible = false |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .animationChange-enter-active, .animationChange-leave-active { |
| | | transition: all 0.5s; |
| | | } |
| | | |
| | | .animationChange-enter, .animationChange-leave-to { |
| | | opacity: 0; |
| | | transform: translateX(-100px); |
| | | } |
| | | |
| | | .summary-sheets { |
| | | position: absolute; |
| | | display: inline-flex; |
| | | overflow: hidden; |
| | | top: 0.42979rem; |
| | | left: 0.14583rem; |
| | | /*width: 850px;*/ |
| | | /*height: 265px;*/ |
| | | z-index: 500; |
| | | .subtopic{ |
| | | display: inline-flex; |
| | | .iconBtn{ |
| | | margin-left: 0.03rem; |
| | | border-color:#DCDFE6; |
| | | color:#fff; |
| | | } |
| | | .iconBtn.active-button{ |
| | | border-color:#00fff6 !important; |
| | | color:#00fff6 !important; |
| | | } |
| | | } |
| | | |
| | | .dialog { |
| | | //width: 800px; |
| | |
| | | OPACITY: 1, |
| | | DASH_ARRAY: '4,4', |
| | | DASH_SPPED: -5, |
| | | ICON_SIZE: [20, 20] |
| | | ICON_SIZE: [10, 10] |
| | | } |
| | | |
| | | export const props = { |
| | |
| | | code: 'sewersPipeLine', |
| | | name: '管线数据', |
| | | checked: true, |
| | | isShow: true, |
| | | layers: [LayerPipeLines, LayerPk, LayerArea] |
| | | } |
| | |
| | | code: 'sewersTopic', |
| | | name: '专题图层', |
| | | checked: true, |
| | | isShow: true, |
| | | layers: [LayerPollutionSources, LayerWasteWater, LayerWasteGas, LayerWasteSolid, LayerAirQuality, LayerEnvRisk, LayerSoilGroundWater] |
| | | } |
| | |
| | | code: 'sewersBasin', |
| | | name: '区域图层', |
| | | checked: true, |
| | | isShow: true, |
| | | layers: [ |
| | | { |
| | | code: 'basinCj', |
| | |
| | | sname: '风险统计图', // 表名 |
| | | checked: true, // 默认选中状态 |
| | | url: WFS_URL + '?TYPENAME=公司', |
| | | minZoom: 10 |
| | | minZoom: 10, |
| | | color: '' |
| | | }, |
| | | { |
| | | code: 'envRiskMaterial', |
| | |
| | | sname: '物资库', |
| | | checked: true, // 默认选中状态 |
| | | wfs: WFS_URL + '?TYPENAME=码头', |
| | | minZoom: 10 |
| | | minZoom: 10, |
| | | color: '' |
| | | }, |
| | | { |
| | | code: 'envRiskMajor', |
| | |
| | | sname: '重大风险', |
| | | checked: true, // 默认选中状态 |
| | | wfs: WFS_URL + '?TYPENAME=装置区', |
| | | minZoom: 10 |
| | | minZoom: 10, |
| | | color: 'red' |
| | | }, |
| | | { |
| | | code: 'envRiskFirst', |
| | |
| | | sname: '一级风险', |
| | | checked: true, // 默认选中状态 |
| | | wfs: WFS_URL + '?TYPENAME=装置区', |
| | | minZoom: 10 |
| | | minZoom: 10, |
| | | color: 'sandybrown' |
| | | }, |
| | | { |
| | | code: 'envRiskSecond', |
| | |
| | | sname: '二级风险', |
| | | checked: true, // 默认选中状态 |
| | | wfs: WFS_URL + '?TYPENAME=装置区', |
| | | minZoom: 10 |
| | | minZoom: 10, |
| | | color: 'yellow' |
| | | } |
| | | ] |
| | | } |
| | |
| | | <!-- <menu-special></menu-special>--> |
| | | <legend-panel></legend-panel> |
| | | <summary-sheets></summary-sheets> |
| | | <enterprise></enterprise> |
| | | <!-- <enterprise></enterprise> --> |
| | | <!-- <el-button id="map-btn" el-icon-c-scale-to-original icon="el-icon-c-scale-to-original" circle @click="isShowHidden"></el-button>--> |
| | | <!-- <el-button type="primary" @click="ChangeState" class="solid-waste">固废</el-button>--> |
| | | <!-- <el-button type="primary" @click="ChangeWaterState" class="Waste-water">废水</el-button>--> |
| | |
| | | import Popup from '@views/popup/Popup' |
| | | // import MenuSpecial from '@components/panel/MenuTopic' |
| | | import LegendPanel from '@components/panel/LegendPanel' |
| | | import Enterprise from '../components/table/enterprise' |
| | | // import Enterprise from '../components/table/enterprise' |
| | | // // 公共展示数据 |
| | | import PublicBounced from '@components/BaseNav/PublicBounced/PublicBounced' |
| | | import LayerFactory from '@components/LayerController/service/LayerFactory' |
| | |
| | | export default { |
| | | name: 'MapTemplate', |
| | | components: { |
| | | Enterprise, |
| | | // Enterprise, |
| | | LegendPanel, |
| | | // MenuSpecial, |
| | | ToolBoxPanel, |