// import L from 'leaflet'
// import 'leaflet-clipper/dist/L.Clipper'
// import * as turf from '@turf/turf'
import config from '@/utils/map/sub/config'
import global from '@/utils/map/sub/global'
import store from '@/store/index'
var toggleFlag = store.state.mapControlRoute
export default {
cpMarkLayerGroup: null, // 检查点标记图层组
cpMemoLayerGroup: null, // 检查点备注图层组
cpPathLayerGroup: null, // 检查点路线图层组
init() {
this.cpMarkLayerGroup = new L.featureGroup()
this.cpMemoLayerGroup = new L.featureGroup()
this.cpPathLayerGroup = new L.featureGroup()
},
// 即将开始地图缩放时触发本方法
onZoomStart(e) {
// this.cpMarkLayerGroup.remove()
this.cpMemoLayerGroup.remove()
this.cpPathLayerGroup.remove()
},
// 地图发生缩放时触发本方法
onZoom(e) {},
// 地图缩放结束时触发本方法
onZoomEnd(e) {
if (toggleFlag) {
this.drawAllPath()
// this.cpMarkLayerGroup.addTo(global.map)
this.cpMemoLayerGroup.addTo(global.map)
this.cpPathLayerGroup.addTo(global.map)
this.cpMarkLayerGroup.bringToBack()
this.cpMemoLayerGroup.bringToBack()
this.cpPathLayerGroup.bringToBack()
}
},
toggle(flag) {
// console.log('toggle:', flag)
if (flag != null) {
toggleFlag = !flag
}
if (toggleFlag) {
this.cpMarkLayerGroup.removeFrom(global.map)
this.cpMemoLayerGroup.removeFrom(global.map)
this.cpPathLayerGroup.removeFrom(global.map)
} else {
this.cpMarkLayerGroup.addTo(global.map)
this.cpMemoLayerGroup.addTo(global.map)
this.cpPathLayerGroup.addTo(global.map)
this.cpMarkLayerGroup.bringToBack()
this.cpMemoLayerGroup.bringToBack()
this.cpPathLayerGroup.bringToBack()
}
toggleFlag = !toggleFlag
// console.log('toggleFlag:', toggleFlag)
store.commit('setMapControlRoute', toggleFlag)
},
drawAllRoutes() {
// console.log("[drawAllRoutes] routes", global.routes)
if (this.cpMarkLayerGroup != null)
this.cpMarkLayerGroup.clearLayers()
if (this.cpMemoLayerGroup != null)
this.cpMemoLayerGroup.clearLayers()
for (let i = 0; i < global.routes.length; i++) {
this.drawOneRoute(global.routes[i].id)
}
},
drawOneRoute(rtId) {
// var that = this
var cpList = global.getRouteById(rtId).control_point_sorted_list
if (cpList == null) {
console.warn('[drawOneRoute] 关键数据为空', cpList)
return
}
// console.warn('[drawOneRoute] cpList', cpList)
for (var i = 0; i < cpList.length; i++) {
let res = this.drawOnePoint(cpList[i])
cpList[i].marker = res.marker
cpList[i].markerMemo = res.markerMemo
}
},
drawOnePoint(data) {
// console.warn('[drawOnePoint] data', data)
if (data == null) {
console.warn('[drawOnePoint] 关键数据为空', data)
return
}
var position = data.ciPosition
var marker = L.circleMarker([position.latitude, position.longitude], config.gStyle.checkPoint.default)
.addTo(this.cpMarkLayerGroup)
// .addTo(global.map)
// .bindPopup("Hello, I'm a Marker!
").openPopup();
// .bindTooltip(`检查点:${route.serial_num}`, config.gStyle.checkPoint.tooltip)
var myIcon = L.divIcon({
html: '