From 3bc191973a0a67cbc8c0d77d92ea1a807555aa6a Mon Sep 17 00:00:00 2001 From: zhangshuaibao <15731629597@163.com> Date: 星期四, 08 四月 2021 17:52:39 +0800 Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop --- .gitignore | 2 src/components/panel/BaseNavMenuItem.vue | 118 src/assets/css/map/map-panel-style.less | 82 src/components/panel/ToolBoxPanel.vue | 20 src/api/mapApi.js | 4 src/components/LayerController/logic/Company.js | 23 src/conf/LayerPipeLine.js | 1 public/assets/images/map/company_oil.png | 0 src/components/plugin/MakeTation.js | 250 +- src/conf/layers/LayerBasin.js | 1 src/components/plugin/leaflet-measure-path/leaflet-measure-path.css | 44 src/assets/css/map/_map-variable.less | 1 src/components/LayerController/service/WfsLayerService.js | 6 src/conf/Constants.js | 2 src/conf/layers/LayerEnvRisk.js | 15 public/assets/images/map/company_sales.png | 0 src/components/plugin/FullScreen.js | 350 ++-- src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue | 16 src/components/panel/RightSearchPanel.vue | 133 + src/components/LayerController/logic/WasteGas.js | 14 src/components/plugin/MeaSure.js | 340 ++-- src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue | 2 src/conf/LayerTopic.js | 1 src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue | 237 ++ src/views/MapTemplate.vue | 6 src/api/mapUrl.js | 1 src/components/LayerController/LayerController.vue | 42 src/components/LayerController/modules/LcServiceLayer.vue | 28 src/components/plugin/DownLoad.js | 1410 +++++++++--------- /dev/null | 0 src/components/table/summarySheets.vue | 99 + public/assets/images/map/company_refining.png | 0 src/components/LayerController/logic/WasteWater.js | 4 src/components/plugin/leaflet-measure-path/leaflet-measure-path.js | 840 +++++----- src/components/panel/bounced/TextBounced.vue | 262 +- src/components/LayerController/logic/SolidWaste.js | 4 36 files changed, 2,352 insertions(+), 2,006 deletions(-) diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 85bb87e..0000000 --- a/.DS_Store +++ /dev/null Binary files differ diff --git a/.gitignore b/.gitignore index cc27dc9..3ba1c88 100644 --- a/.gitignore +++ b/.gitignore @@ -29,4 +29,4 @@ .DS_Store package-lock.json .idea -.dist +/dist diff --git a/public/assets/.DS_Store b/public/assets/.DS_Store deleted file mode 100644 index 66f4848..0000000 --- a/public/assets/.DS_Store +++ /dev/null Binary files differ diff --git a/public/assets/images/.DS_Store b/public/assets/images/.DS_Store deleted file mode 100644 index 7554b5e..0000000 --- a/public/assets/images/.DS_Store +++ /dev/null Binary files differ diff --git a/public/assets/images/map-pages/.DS_Store b/public/assets/images/map-pages/.DS_Store deleted file mode 100644 index a039990..0000000 --- a/public/assets/images/map-pages/.DS_Store +++ /dev/null Binary files differ diff --git a/public/assets/images/map-pages/icon/.DS_Store b/public/assets/images/map-pages/icon/.DS_Store deleted file mode 100644 index 4911e55..0000000 --- a/public/assets/images/map-pages/icon/.DS_Store +++ /dev/null Binary files differ diff --git a/public/assets/images/map/company.png b/public/assets/images/map/company.png deleted file mode 100644 index a48d213..0000000 --- a/public/assets/images/map/company.png +++ /dev/null Binary files differ diff --git a/public/assets/images/map/company_oil.png b/public/assets/images/map/company_oil.png new file mode 100644 index 0000000..cec6627 --- /dev/null +++ b/public/assets/images/map/company_oil.png Binary files differ diff --git a/public/assets/images/map/company_refining.png b/public/assets/images/map/company_refining.png new file mode 100644 index 0000000..faa99c1 --- /dev/null +++ b/public/assets/images/map/company_refining.png Binary files differ diff --git a/public/assets/images/map/company_sales.png b/public/assets/images/map/company_sales.png new file mode 100644 index 0000000..28a279a --- /dev/null +++ b/public/assets/images/map/company_sales.png Binary files differ diff --git a/src/.DS_Store b/src/.DS_Store deleted file mode 100644 index c521892..0000000 --- a/src/.DS_Store +++ /dev/null Binary files differ diff --git a/src/api/mapApi.js b/src/api/mapApi.js index e865f9a..bb2c314 100644 --- a/src/api/mapApi.js +++ b/src/api/mapApi.js @@ -36,6 +36,10 @@ getWasteGasDetails (data) { return axios.get(mapUrl.getWasteGasDetails, data) }, + // 搴熸皵鐐瑰皬鏃舵棩鏁版嵁 + getWasteGasMonData (data) { + return axios.get(mapUrl.getWasteGasMonData, data) + }, // 搴熸按鐐� getWasteWater (data) { return axios.get(mapUrl.getWasteWater, data) diff --git a/src/api/mapUrl.js b/src/api/mapUrl.js index 8825e32..4ebfe0a 100644 --- a/src/api/mapUrl.js +++ b/src/api/mapUrl.js @@ -12,6 +12,7 @@ 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' // 搴熸按鐩戞祴鏁版嵁 diff --git a/src/assets/.DS_Store b/src/assets/.DS_Store deleted file mode 100644 index 66f4848..0000000 --- a/src/assets/.DS_Store +++ /dev/null Binary files differ diff --git a/src/assets/css/map/_map-variable.less b/src/assets/css/map/_map-variable.less index 8ef5f52..64c7e30 100644 --- a/src/assets/css/map/_map-variable.less +++ b/src/assets/css/map/_map-variable.less @@ -6,6 +6,7 @@ @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;//宸ュ叿绠� diff --git a/src/assets/css/map/map-panel-style.less b/src/assets/css/map/map-panel-style.less index f91da00..48fc68b 100644 --- a/src/assets/css/map/map-panel-style.less +++ b/src/assets/css/map/map-panel-style.less @@ -1,5 +1,9 @@ @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; @@ -242,19 +246,68 @@ } /***************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 { @@ -268,15 +321,15 @@ 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 琛ㄦ牸鏍峰紡銆�*********************************/ @@ -345,6 +398,7 @@ .icon{ width: 20px; margin: 0 auto; + font-size: 20px; } } diff --git a/src/assets/images/.DS_Store b/src/assets/images/.DS_Store deleted file mode 100644 index 7554b5e..0000000 --- a/src/assets/images/.DS_Store +++ /dev/null Binary files differ diff --git a/src/assets/images/map-pages/.DS_Store b/src/assets/images/map-pages/.DS_Store deleted file mode 100644 index a039990..0000000 --- a/src/assets/images/map-pages/.DS_Store +++ /dev/null Binary files differ diff --git a/src/assets/images/map-pages/icon/.DS_Store b/src/assets/images/map-pages/icon/.DS_Store deleted file mode 100644 index 4911e55..0000000 --- a/src/assets/images/map-pages/icon/.DS_Store +++ /dev/null Binary files differ diff --git a/src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue b/src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue index 27d814e..8370098 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue @@ -2,61 +2,134 @@ <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 { @@ -283,30 +356,68 @@ </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; diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue index 42ad235..09a7134 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue @@ -30,7 +30,7 @@ methods: { tabTaggle (taggleMenu) { this.currentTab = taggleMenu - debugger + // debugger } } } diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue index 3aa7f07..267759a 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue @@ -14,7 +14,7 @@ <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> @@ -36,7 +36,7 @@ <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> @@ -77,7 +77,7 @@ margin-bottom: 10px; background-color: rgba(33, 41, 69, 0.9); //width: 6rem; - height: 0.5rem; + //height: 0.5rem; } .main { @@ -87,13 +87,19 @@ .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; diff --git a/src/components/LayerController/LayerController.vue b/src/components/LayerController/LayerController.vue index ce4d496..fe80364 100644 --- a/src/components/LayerController/LayerController.vue +++ b/src/components/LayerController/LayerController.vue @@ -7,7 +7,7 @@ <!-- <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> @@ -74,14 +74,27 @@ </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; } @@ -234,17 +247,26 @@ 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; diff --git a/src/components/LayerController/logic/Company.js b/src/components/LayerController/logic/Company.js index ae08aa5..6c68380 100644 --- a/src/components/LayerController/logic/Company.js +++ b/src/components/LayerController/logic/Company.js @@ -2,7 +2,7 @@ * 鍥哄簾 */ // 鍖哄垎涓嶅悓绫诲瀷 浣跨敤涓嶅悓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 @@ -28,20 +28,29 @@ 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) } } diff --git a/src/components/LayerController/logic/SolidWaste.js b/src/components/LayerController/logic/SolidWaste.js index ea995ac..91a6455 100644 --- a/src/components/LayerController/logic/SolidWaste.js +++ b/src/components/LayerController/logic/SolidWaste.js @@ -39,8 +39,8 @@ totransferData: getSolidWasteData[i], icon: L.icon({ iconUrl: iconUrl, - iconSize: [20, 20], - iconAnchor: [10, 10] + iconSize: [30, 30], + iconAnchor: [15, 15] }) }) layer.addLayer(marker) diff --git a/src/components/LayerController/logic/WasteGas.js b/src/components/LayerController/logic/WasteGas.js index 2ac1651..7db2156 100644 --- a/src/components/LayerController/logic/WasteGas.js +++ b/src/components/LayerController/logic/WasteGas.js @@ -40,8 +40,8 @@ test: data[i], icon: L.icon({ iconUrl: iconUrl, - iconSize: [20, 20], - iconAnchor: [10, 10] + iconSize: [30, 38], + iconAnchor: [15, 19] }) }) layer.addLayer(marker) @@ -59,6 +59,16 @@ 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) diff --git a/src/components/LayerController/logic/WasteWater.js b/src/components/LayerController/logic/WasteWater.js index ea29aeb..ec1ebf8 100644 --- a/src/components/LayerController/logic/WasteWater.js +++ b/src/components/LayerController/logic/WasteWater.js @@ -37,8 +37,8 @@ test: data[i], icon: L.icon({ iconUrl: iconUrl, - iconSize: [20, 20], - iconAnchor: [10, 10] + iconSize: [35, 35], + iconAnchor: [18, 18] }) }) layer.addLayer(marker) diff --git a/src/components/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue index 3308d0e..b404bc8 100644 --- a/src/components/LayerController/modules/LcServiceLayer.vue +++ b/src/components/LayerController/modules/LcServiceLayer.vue @@ -4,12 +4,12 @@ <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" @@ -24,7 +24,8 @@ :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> @@ -117,6 +118,23 @@ } .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; diff --git a/src/components/LayerController/service/WfsLayerService.js b/src/components/LayerController/service/WfsLayerService.js index 3aae541..b263e46 100644 --- a/src/components/LayerController/service/WfsLayerService.js +++ b/src/components/LayerController/service/WfsLayerService.js @@ -45,9 +45,9 @@ 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) => { diff --git a/src/components/panel/BaseNavMenuItem.vue b/src/components/panel/BaseNavMenuItem.vue index 9b497ae..a525ec4 100644 --- a/src/components/panel/BaseNavMenuItem.vue +++ b/src/components/panel/BaseNavMenuItem.vue @@ -1,59 +1,59 @@ -<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> diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue index 30af0e3..28910bb 100644 --- a/src/components/panel/RightSearchPanel.vue +++ b/src/components/panel/RightSearchPanel.vue @@ -1,49 +1,47 @@ <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> @@ -75,7 +73,8 @@ toggleMonitorStyle: 'right:0px', title: '姹¢洦姘寸缃�', - isCollapse: true + isCollapse: true, + selectGroup: true } }, computed: {}, @@ -98,9 +97,18 @@ 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 }) @@ -180,7 +188,14 @@ </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; @@ -247,16 +262,28 @@ // 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; diff --git a/src/components/panel/ToolBoxPanel.vue b/src/components/panel/ToolBoxPanel.vue index 850d54c..9733c83 100644 --- a/src/components/panel/ToolBoxPanel.vue +++ b/src/components/panel/ToolBoxPanel.vue @@ -41,9 +41,9 @@ <!-- </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> @@ -382,12 +382,15 @@ }, 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 + } } } } @@ -489,8 +492,9 @@ .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; diff --git a/src/components/panel/bounced/TextBounced.vue b/src/components/panel/bounced/TextBounced.vue index 6ccfe85..654f138 100644 --- a/src/components/panel/bounced/TextBounced.vue +++ b/src/components/panel/bounced/TextBounced.vue @@ -1,131 +1,131 @@ -<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> diff --git a/src/components/plugin/DownLoad.js b/src/components/plugin/DownLoad.js index b02ee30..ea0a919 100644 --- a/src/components/plugin/DownLoad.js +++ b/src/components/plugin/DownLoad.js @@ -1,705 +1,705 @@ -/* 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 +} diff --git a/src/components/plugin/FullScreen.js b/src/components/plugin/FullScreen.js index f96831e..9ef7d5a 100644 --- a/src/components/plugin/FullScreen.js +++ b/src/components/plugin/FullScreen.js @@ -1,175 +1,175 @@ -/* 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 +} diff --git a/src/components/plugin/MakeTation.js b/src/components/plugin/MakeTation.js index 311f7c9..9ad3996 100644 --- a/src/components/plugin/MakeTation.js +++ b/src/components/plugin/MakeTation.js @@ -1,125 +1,125 @@ -/* 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 +} diff --git a/src/components/plugin/MeaSure.js b/src/components/plugin/MeaSure.js index ce67a00..a540743 100644 --- a/src/components/plugin/MeaSure.js +++ b/src/components/plugin/MeaSure.js @@ -1,170 +1,170 @@ -/* 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 +} diff --git a/src/components/plugin/leaflet-measure-path/leaflet-measure-path.css b/src/components/plugin/leaflet-measure-path/leaflet-measure-path.css index b583261..35e46d5 100644 --- a/src/components/plugin/leaflet-measure-path/leaflet-measure-path.css +++ b/src/components/plugin/leaflet-measure-path/leaflet-measure-path.css @@ -1,22 +1,22 @@ -.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%; +} diff --git a/src/components/plugin/leaflet-measure-path/leaflet-measure-path.js b/src/components/plugin/leaflet-measure-path/leaflet-measure-path.js index 2f8a696..88338eb 100644 --- a/src/components/plugin/leaflet-measure-path/leaflet-measure-path.js +++ b/src/components/plugin/leaflet-measure-path/leaflet-measure-path.js @@ -1,421 +1,421 @@ -/* 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) + }) })() \ No newline at end of file diff --git a/src/components/table/summarySheets.vue b/src/components/table/summarySheets.vue index 6592090..41239cf 100644 --- a/src/components/table/summarySheets.vue +++ b/src/components/table/summarySheets.vue @@ -1,45 +1,87 @@ <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 () { @@ -48,19 +90,48 @@ 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; diff --git a/src/conf/Constants.js b/src/conf/Constants.js index 6784be5..848d666 100644 --- a/src/conf/Constants.js +++ b/src/conf/Constants.js @@ -20,7 +20,7 @@ OPACITY: 1, DASH_ARRAY: '4,4', DASH_SPPED: -5, - ICON_SIZE: [20, 20] + ICON_SIZE: [10, 10] } export const props = { diff --git a/src/conf/LayerPipeLine.js b/src/conf/LayerPipeLine.js index 46807c3..289a7fe 100644 --- a/src/conf/LayerPipeLine.js +++ b/src/conf/LayerPipeLine.js @@ -9,5 +9,6 @@ code: 'sewersPipeLine', name: '绠$嚎鏁版嵁', checked: true, + isShow: true, layers: [LayerPipeLines, LayerPk, LayerArea] } diff --git a/src/conf/LayerTopic.js b/src/conf/LayerTopic.js index 1e1fe7d..5c8f956 100644 --- a/src/conf/LayerTopic.js +++ b/src/conf/LayerTopic.js @@ -13,5 +13,6 @@ code: 'sewersTopic', name: '涓撻鍥惧眰', checked: true, + isShow: true, layers: [LayerPollutionSources, LayerWasteWater, LayerWasteGas, LayerWasteSolid, LayerAirQuality, LayerEnvRisk, LayerSoilGroundWater] } diff --git a/src/conf/layers/LayerBasin.js b/src/conf/layers/LayerBasin.js index 1476068..af3dae6 100644 --- a/src/conf/layers/LayerBasin.js +++ b/src/conf/layers/LayerBasin.js @@ -7,6 +7,7 @@ code: 'sewersBasin', name: '鍖哄煙鍥惧眰', checked: true, + isShow: true, layers: [ { code: 'basinCj', diff --git a/src/conf/layers/LayerEnvRisk.js b/src/conf/layers/LayerEnvRisk.js index 5e24a1f..eef22d8 100644 --- a/src/conf/layers/LayerEnvRisk.js +++ b/src/conf/layers/LayerEnvRisk.js @@ -14,7 +14,8 @@ sname: '椋庨櫓缁熻鍥�', // 琛ㄥ悕 checked: true, // 榛樿閫変腑鐘舵�� url: WFS_URL + '?TYPENAME=鍏徃', - minZoom: 10 + minZoom: 10, + color: '' }, { code: 'envRiskMaterial', @@ -22,7 +23,8 @@ sname: '鐗╄祫搴�', checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=鐮佸ご', - minZoom: 10 + minZoom: 10, + color: '' }, { code: 'envRiskMajor', @@ -30,7 +32,8 @@ sname: '閲嶅ぇ椋庨櫓', checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', - minZoom: 10 + minZoom: 10, + color: 'red' }, { code: 'envRiskFirst', @@ -38,7 +41,8 @@ sname: '涓�绾ч闄�', checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', - minZoom: 10 + minZoom: 10, + color: 'sandybrown' }, { code: 'envRiskSecond', @@ -46,7 +50,8 @@ sname: '浜岀骇椋庨櫓', checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', - minZoom: 10 + minZoom: 10, + color: 'yellow' } ] } diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue index e19b47f..1b70723 100644 --- a/src/views/MapTemplate.vue +++ b/src/views/MapTemplate.vue @@ -10,7 +10,7 @@ <!-- <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>--> @@ -31,7 +31,7 @@ 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' @@ -39,7 +39,7 @@ export default { name: 'MapTemplate', components: { - Enterprise, + // Enterprise, LegendPanel, // MenuSpecial, ToolBoxPanel, -- Gitblit v1.8.0