diff --git a/config/index.js b/config/index.js
index cef61d9..4b3fb14 100644
--- a/config/index.js
+++ b/config/index.js
@@ -14,7 +14,7 @@
proxyTable: {},
// Various Dev Server settings
- host: '0.0.0.0', // can be overwritten by process.env.HOST
+ // host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8085, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
//是否自动打开浏览器
autoOpenBrowser: true,
diff --git a/config/index.js b/config/index.js
index cef61d9..4b3fb14 100644
--- a/config/index.js
+++ b/config/index.js
@@ -14,7 +14,7 @@
proxyTable: {},
// Various Dev Server settings
- host: '0.0.0.0', // can be overwritten by process.env.HOST
+ // host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8085, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
//是否自动打开浏览器
autoOpenBrowser: true,
diff --git a/package.json b/package.json
index d56b435..c8730cd 100644
--- a/package.json
+++ b/package.json
@@ -22,10 +22,14 @@
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
+ "leaflet": "^1.9.3",
+ "leaflet-canvas-marker": "^0.2.0",
+ "leaflet-canvas-marker-xrr2021": "^1.0.2",
"mockjs": "1.0.1-beta3",
"normalize.css": "7.0.0",
"npm": "^6.11.3",
"nprogress": "0.2.0",
+ "proj4leaflet": "^1.0.2",
"v-charts": "^1.19.0",
"vue": "2.5.17",
"vue-amap": "^0.5.9",
diff --git a/config/index.js b/config/index.js
index cef61d9..4b3fb14 100644
--- a/config/index.js
+++ b/config/index.js
@@ -14,7 +14,7 @@
proxyTable: {},
// Various Dev Server settings
- host: '0.0.0.0', // can be overwritten by process.env.HOST
+ // host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8085, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
//是否自动打开浏览器
autoOpenBrowser: true,
diff --git a/package.json b/package.json
index d56b435..c8730cd 100644
--- a/package.json
+++ b/package.json
@@ -22,10 +22,14 @@
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
+ "leaflet": "^1.9.3",
+ "leaflet-canvas-marker": "^0.2.0",
+ "leaflet-canvas-marker-xrr2021": "^1.0.2",
"mockjs": "1.0.1-beta3",
"normalize.css": "7.0.0",
"npm": "^6.11.3",
"nprogress": "0.2.0",
+ "proj4leaflet": "^1.0.2",
"v-charts": "^1.19.0",
"vue": "2.5.17",
"vue-amap": "^0.5.9",
diff --git a/src/components/CMap/components/cmap.vue b/src/components/CMap/components/cmap.vue
index 808ada3..9be1788 100644
--- a/src/components/CMap/components/cmap.vue
+++ b/src/components/CMap/components/cmap.vue
@@ -326,6 +326,7 @@
}
// 有layerid
if (layerInfoManager[layerId].layerid) {
+
opts.params.layerid = CEncode(layerInfoManager[layerId].layerid)
} else {
const tableinfo = {
@@ -342,6 +343,7 @@
attrfds: layerInfoManager[layerId].attrfds }
const tableinfostr = CEncodeSpecialChar(CJsonToStringify(tableinfo))
opts.params.tableinfo = tableinfostr
+
}
opts.params.morecon = this.queryString
this.overlay = new CCustomOverlay(opts)
@@ -363,7 +365,7 @@
const { mapLayers, layerId, overlayManager } = this
// 有图层,先移除
if (overlayManager[layerId]) {
- mapLayers.removeLayer(overlayManager[layerId])
+ mapLayers.removeLayer(overlayManager[layerId]) // 移除一次标记
delete overlayManager[layerId]
}
mapLayers.closePopup()
@@ -422,6 +424,7 @@
if (callback) callback(id, data, bounds)
})
},
+ // 无用
drawFeature(id, list, bounds) {
console.log('drawFeature')
const { mapLayers, featureLayerManager, layerId } = this
@@ -481,6 +484,7 @@
if (callback) callback(id, data)
})
},
+ // 无用
addMarker(id, data, icons) {
const { layerInfoManager, featureLayerManager } = this
var style = ''
diff --git a/config/index.js b/config/index.js
index cef61d9..4b3fb14 100644
--- a/config/index.js
+++ b/config/index.js
@@ -14,7 +14,7 @@
proxyTable: {},
// Various Dev Server settings
- host: '0.0.0.0', // can be overwritten by process.env.HOST
+ // host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8085, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
//是否自动打开浏览器
autoOpenBrowser: true,
diff --git a/package.json b/package.json
index d56b435..c8730cd 100644
--- a/package.json
+++ b/package.json
@@ -22,10 +22,14 @@
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
+ "leaflet": "^1.9.3",
+ "leaflet-canvas-marker": "^0.2.0",
+ "leaflet-canvas-marker-xrr2021": "^1.0.2",
"mockjs": "1.0.1-beta3",
"normalize.css": "7.0.0",
"npm": "^6.11.3",
"nprogress": "0.2.0",
+ "proj4leaflet": "^1.0.2",
"v-charts": "^1.19.0",
"vue": "2.5.17",
"vue-amap": "^0.5.9",
diff --git a/src/components/CMap/components/cmap.vue b/src/components/CMap/components/cmap.vue
index 808ada3..9be1788 100644
--- a/src/components/CMap/components/cmap.vue
+++ b/src/components/CMap/components/cmap.vue
@@ -326,6 +326,7 @@
}
// 有layerid
if (layerInfoManager[layerId].layerid) {
+
opts.params.layerid = CEncode(layerInfoManager[layerId].layerid)
} else {
const tableinfo = {
@@ -342,6 +343,7 @@
attrfds: layerInfoManager[layerId].attrfds }
const tableinfostr = CEncodeSpecialChar(CJsonToStringify(tableinfo))
opts.params.tableinfo = tableinfostr
+
}
opts.params.morecon = this.queryString
this.overlay = new CCustomOverlay(opts)
@@ -363,7 +365,7 @@
const { mapLayers, layerId, overlayManager } = this
// 有图层,先移除
if (overlayManager[layerId]) {
- mapLayers.removeLayer(overlayManager[layerId])
+ mapLayers.removeLayer(overlayManager[layerId]) // 移除一次标记
delete overlayManager[layerId]
}
mapLayers.closePopup()
@@ -422,6 +424,7 @@
if (callback) callback(id, data, bounds)
})
},
+ // 无用
drawFeature(id, list, bounds) {
console.log('drawFeature')
const { mapLayers, featureLayerManager, layerId } = this
@@ -481,6 +484,7 @@
if (callback) callback(id, data)
})
},
+ // 无用
addMarker(id, data, icons) {
const { layerInfoManager, featureLayerManager } = this
var style = ''
diff --git a/src/components/leaftletMap/base/crsUtils.js b/src/components/leaftletMap/base/crsUtils.js
new file mode 100644
index 0000000..ce18b37
--- /dev/null
+++ b/src/components/leaftletMap/base/crsUtils.js
@@ -0,0 +1,36 @@
+import L from 'leaflet'
+/*eslint-disable*/
+import proj4leaflet from 'proj4leaflet'
+/*eslint -enable*/
+// 定义2000坐标系CRS
+const CRS_4490 = new L.Proj.CRS('EPSG:4490', '+proj=longlat +ellps=GRS80 +no_defs', {
+ resolutions: [
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
+ 0.0439453125,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
+ 0.00274658203125,
+ 0.001373291015625,
+ 6.866455078125E-4,
+ 3.4332275390625E-4,
+ 1.71661376953125E-4,
+ 8.58306884765625E-5,
+ 4.291534423828125E-5,
+ 2.1457672119140625E-5,
+ 1.0728836059570312E-5,
+ 5.364418029785156E-6,
+ 2.682209064925356E-6,
+ 1.3411045324626732E-6
+ ],
+ origin: [-180, 90]
+})
+export const crsDict = {
+ '4326': L.CRS.EPSG4326, // WGS84坐标系
+ '3857': L.CRS.EPSG3857, // web墨卡托投影
+ '4490': CRS_4490 // CGCS2000坐标系
+}
diff --git a/config/index.js b/config/index.js
index cef61d9..4b3fb14 100644
--- a/config/index.js
+++ b/config/index.js
@@ -14,7 +14,7 @@
proxyTable: {},
// Various Dev Server settings
- host: '0.0.0.0', // can be overwritten by process.env.HOST
+ // host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8085, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
//是否自动打开浏览器
autoOpenBrowser: true,
diff --git a/package.json b/package.json
index d56b435..c8730cd 100644
--- a/package.json
+++ b/package.json
@@ -22,10 +22,14 @@
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
+ "leaflet": "^1.9.3",
+ "leaflet-canvas-marker": "^0.2.0",
+ "leaflet-canvas-marker-xrr2021": "^1.0.2",
"mockjs": "1.0.1-beta3",
"normalize.css": "7.0.0",
"npm": "^6.11.3",
"nprogress": "0.2.0",
+ "proj4leaflet": "^1.0.2",
"v-charts": "^1.19.0",
"vue": "2.5.17",
"vue-amap": "^0.5.9",
diff --git a/src/components/CMap/components/cmap.vue b/src/components/CMap/components/cmap.vue
index 808ada3..9be1788 100644
--- a/src/components/CMap/components/cmap.vue
+++ b/src/components/CMap/components/cmap.vue
@@ -326,6 +326,7 @@
}
// 有layerid
if (layerInfoManager[layerId].layerid) {
+
opts.params.layerid = CEncode(layerInfoManager[layerId].layerid)
} else {
const tableinfo = {
@@ -342,6 +343,7 @@
attrfds: layerInfoManager[layerId].attrfds }
const tableinfostr = CEncodeSpecialChar(CJsonToStringify(tableinfo))
opts.params.tableinfo = tableinfostr
+
}
opts.params.morecon = this.queryString
this.overlay = new CCustomOverlay(opts)
@@ -363,7 +365,7 @@
const { mapLayers, layerId, overlayManager } = this
// 有图层,先移除
if (overlayManager[layerId]) {
- mapLayers.removeLayer(overlayManager[layerId])
+ mapLayers.removeLayer(overlayManager[layerId]) // 移除一次标记
delete overlayManager[layerId]
}
mapLayers.closePopup()
@@ -422,6 +424,7 @@
if (callback) callback(id, data, bounds)
})
},
+ // 无用
drawFeature(id, list, bounds) {
console.log('drawFeature')
const { mapLayers, featureLayerManager, layerId } = this
@@ -481,6 +484,7 @@
if (callback) callback(id, data)
})
},
+ // 无用
addMarker(id, data, icons) {
const { layerInfoManager, featureLayerManager } = this
var style = ''
diff --git a/src/components/leaftletMap/base/crsUtils.js b/src/components/leaftletMap/base/crsUtils.js
new file mode 100644
index 0000000..ce18b37
--- /dev/null
+++ b/src/components/leaftletMap/base/crsUtils.js
@@ -0,0 +1,36 @@
+import L from 'leaflet'
+/*eslint-disable*/
+import proj4leaflet from 'proj4leaflet'
+/*eslint -enable*/
+// 定义2000坐标系CRS
+const CRS_4490 = new L.Proj.CRS('EPSG:4490', '+proj=longlat +ellps=GRS80 +no_defs', {
+ resolutions: [
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
+ 0.0439453125,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
+ 0.00274658203125,
+ 0.001373291015625,
+ 6.866455078125E-4,
+ 3.4332275390625E-4,
+ 1.71661376953125E-4,
+ 8.58306884765625E-5,
+ 4.291534423828125E-5,
+ 2.1457672119140625E-5,
+ 1.0728836059570312E-5,
+ 5.364418029785156E-6,
+ 2.682209064925356E-6,
+ 1.3411045324626732E-6
+ ],
+ origin: [-180, 90]
+})
+export const crsDict = {
+ '4326': L.CRS.EPSG4326, // WGS84坐标系
+ '3857': L.CRS.EPSG3857, // web墨卡托投影
+ '4490': CRS_4490 // CGCS2000坐标系
+}
diff --git a/src/components/leaftletMap/leafletMap.vue b/src/components/leaftletMap/leafletMap.vue
new file mode 100644
index 0000000..1df7067
--- /dev/null
+++ b/src/components/leaftletMap/leafletMap.vue
@@ -0,0 +1,424 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/config/index.js b/config/index.js
index cef61d9..4b3fb14 100644
--- a/config/index.js
+++ b/config/index.js
@@ -14,7 +14,7 @@
proxyTable: {},
// Various Dev Server settings
- host: '0.0.0.0', // can be overwritten by process.env.HOST
+ // host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8085, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
//是否自动打开浏览器
autoOpenBrowser: true,
diff --git a/package.json b/package.json
index d56b435..c8730cd 100644
--- a/package.json
+++ b/package.json
@@ -22,10 +22,14 @@
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
+ "leaflet": "^1.9.3",
+ "leaflet-canvas-marker": "^0.2.0",
+ "leaflet-canvas-marker-xrr2021": "^1.0.2",
"mockjs": "1.0.1-beta3",
"normalize.css": "7.0.0",
"npm": "^6.11.3",
"nprogress": "0.2.0",
+ "proj4leaflet": "^1.0.2",
"v-charts": "^1.19.0",
"vue": "2.5.17",
"vue-amap": "^0.5.9",
diff --git a/src/components/CMap/components/cmap.vue b/src/components/CMap/components/cmap.vue
index 808ada3..9be1788 100644
--- a/src/components/CMap/components/cmap.vue
+++ b/src/components/CMap/components/cmap.vue
@@ -326,6 +326,7 @@
}
// 有layerid
if (layerInfoManager[layerId].layerid) {
+
opts.params.layerid = CEncode(layerInfoManager[layerId].layerid)
} else {
const tableinfo = {
@@ -342,6 +343,7 @@
attrfds: layerInfoManager[layerId].attrfds }
const tableinfostr = CEncodeSpecialChar(CJsonToStringify(tableinfo))
opts.params.tableinfo = tableinfostr
+
}
opts.params.morecon = this.queryString
this.overlay = new CCustomOverlay(opts)
@@ -363,7 +365,7 @@
const { mapLayers, layerId, overlayManager } = this
// 有图层,先移除
if (overlayManager[layerId]) {
- mapLayers.removeLayer(overlayManager[layerId])
+ mapLayers.removeLayer(overlayManager[layerId]) // 移除一次标记
delete overlayManager[layerId]
}
mapLayers.closePopup()
@@ -422,6 +424,7 @@
if (callback) callback(id, data, bounds)
})
},
+ // 无用
drawFeature(id, list, bounds) {
console.log('drawFeature')
const { mapLayers, featureLayerManager, layerId } = this
@@ -481,6 +484,7 @@
if (callback) callback(id, data)
})
},
+ // 无用
addMarker(id, data, icons) {
const { layerInfoManager, featureLayerManager } = this
var style = ''
diff --git a/src/components/leaftletMap/base/crsUtils.js b/src/components/leaftletMap/base/crsUtils.js
new file mode 100644
index 0000000..ce18b37
--- /dev/null
+++ b/src/components/leaftletMap/base/crsUtils.js
@@ -0,0 +1,36 @@
+import L from 'leaflet'
+/*eslint-disable*/
+import proj4leaflet from 'proj4leaflet'
+/*eslint -enable*/
+// 定义2000坐标系CRS
+const CRS_4490 = new L.Proj.CRS('EPSG:4490', '+proj=longlat +ellps=GRS80 +no_defs', {
+ resolutions: [
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
+ 0.0439453125,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
+ 0.00274658203125,
+ 0.001373291015625,
+ 6.866455078125E-4,
+ 3.4332275390625E-4,
+ 1.71661376953125E-4,
+ 8.58306884765625E-5,
+ 4.291534423828125E-5,
+ 2.1457672119140625E-5,
+ 1.0728836059570312E-5,
+ 5.364418029785156E-6,
+ 2.682209064925356E-6,
+ 1.3411045324626732E-6
+ ],
+ origin: [-180, 90]
+})
+export const crsDict = {
+ '4326': L.CRS.EPSG4326, // WGS84坐标系
+ '3857': L.CRS.EPSG3857, // web墨卡托投影
+ '4490': CRS_4490 // CGCS2000坐标系
+}
diff --git a/src/components/leaftletMap/leafletMap.vue b/src/components/leaftletMap/leafletMap.vue
new file mode 100644
index 0000000..1df7067
--- /dev/null
+++ b/src/components/leaftletMap/leafletMap.vue
@@ -0,0 +1,424 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
index 5b3d3ac..44228ae 100644
--- a/src/main.js
+++ b/src/main.js
@@ -14,7 +14,7 @@
import '@/icons' // icon
import '@/permission' // permission control
-
+// import 'leaflet-canvas-marker'
/**
* This project originally used easy-mock to simulate data,
* but its official service is very unstable,
diff --git a/config/index.js b/config/index.js
index cef61d9..4b3fb14 100644
--- a/config/index.js
+++ b/config/index.js
@@ -14,7 +14,7 @@
proxyTable: {},
// Various Dev Server settings
- host: '0.0.0.0', // can be overwritten by process.env.HOST
+ // host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8085, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
//是否自动打开浏览器
autoOpenBrowser: true,
diff --git a/package.json b/package.json
index d56b435..c8730cd 100644
--- a/package.json
+++ b/package.json
@@ -22,10 +22,14 @@
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
+ "leaflet": "^1.9.3",
+ "leaflet-canvas-marker": "^0.2.0",
+ "leaflet-canvas-marker-xrr2021": "^1.0.2",
"mockjs": "1.0.1-beta3",
"normalize.css": "7.0.0",
"npm": "^6.11.3",
"nprogress": "0.2.0",
+ "proj4leaflet": "^1.0.2",
"v-charts": "^1.19.0",
"vue": "2.5.17",
"vue-amap": "^0.5.9",
diff --git a/src/components/CMap/components/cmap.vue b/src/components/CMap/components/cmap.vue
index 808ada3..9be1788 100644
--- a/src/components/CMap/components/cmap.vue
+++ b/src/components/CMap/components/cmap.vue
@@ -326,6 +326,7 @@
}
// 有layerid
if (layerInfoManager[layerId].layerid) {
+
opts.params.layerid = CEncode(layerInfoManager[layerId].layerid)
} else {
const tableinfo = {
@@ -342,6 +343,7 @@
attrfds: layerInfoManager[layerId].attrfds }
const tableinfostr = CEncodeSpecialChar(CJsonToStringify(tableinfo))
opts.params.tableinfo = tableinfostr
+
}
opts.params.morecon = this.queryString
this.overlay = new CCustomOverlay(opts)
@@ -363,7 +365,7 @@
const { mapLayers, layerId, overlayManager } = this
// 有图层,先移除
if (overlayManager[layerId]) {
- mapLayers.removeLayer(overlayManager[layerId])
+ mapLayers.removeLayer(overlayManager[layerId]) // 移除一次标记
delete overlayManager[layerId]
}
mapLayers.closePopup()
@@ -422,6 +424,7 @@
if (callback) callback(id, data, bounds)
})
},
+ // 无用
drawFeature(id, list, bounds) {
console.log('drawFeature')
const { mapLayers, featureLayerManager, layerId } = this
@@ -481,6 +484,7 @@
if (callback) callback(id, data)
})
},
+ // 无用
addMarker(id, data, icons) {
const { layerInfoManager, featureLayerManager } = this
var style = ''
diff --git a/src/components/leaftletMap/base/crsUtils.js b/src/components/leaftletMap/base/crsUtils.js
new file mode 100644
index 0000000..ce18b37
--- /dev/null
+++ b/src/components/leaftletMap/base/crsUtils.js
@@ -0,0 +1,36 @@
+import L from 'leaflet'
+/*eslint-disable*/
+import proj4leaflet from 'proj4leaflet'
+/*eslint -enable*/
+// 定义2000坐标系CRS
+const CRS_4490 = new L.Proj.CRS('EPSG:4490', '+proj=longlat +ellps=GRS80 +no_defs', {
+ resolutions: [
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
+ 0.0439453125,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
+ 0.00274658203125,
+ 0.001373291015625,
+ 6.866455078125E-4,
+ 3.4332275390625E-4,
+ 1.71661376953125E-4,
+ 8.58306884765625E-5,
+ 4.291534423828125E-5,
+ 2.1457672119140625E-5,
+ 1.0728836059570312E-5,
+ 5.364418029785156E-6,
+ 2.682209064925356E-6,
+ 1.3411045324626732E-6
+ ],
+ origin: [-180, 90]
+})
+export const crsDict = {
+ '4326': L.CRS.EPSG4326, // WGS84坐标系
+ '3857': L.CRS.EPSG3857, // web墨卡托投影
+ '4490': CRS_4490 // CGCS2000坐标系
+}
diff --git a/src/components/leaftletMap/leafletMap.vue b/src/components/leaftletMap/leafletMap.vue
new file mode 100644
index 0000000..1df7067
--- /dev/null
+++ b/src/components/leaftletMap/leafletMap.vue
@@ -0,0 +1,424 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
index 5b3d3ac..44228ae 100644
--- a/src/main.js
+++ b/src/main.js
@@ -14,7 +14,7 @@
import '@/icons' // icon
import '@/permission' // permission control
-
+// import 'leaflet-canvas-marker'
/**
* This project originally used easy-mock to simulate data,
* but its official service is very unstable,
diff --git a/src/utils/index.js b/src/utils/index.js
index f607910..375dd2b 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -296,3 +296,34 @@
export function uniqueArr(arr) {
return Array.from(new Set(arr))
}
+
+const isType = function(type) {
+ return function(arg) {
+ return Object.prototype.toString.call(arg) === `[object ${type}]`
+ }
+}
+
+export const isFunction = isType('Function')
+
+export const isObject = isType('Object')
+
+export const isString = isType('String')
+
+export const isArray = isType('Array')
+
+export const isDate = isType('Date')
+
+// 深拷贝
+export function deepCopy(data) {
+ if (!Array.isArray(data) && !isObject(data)) {
+ return data
+ } else if (Array.isArray(data)) {
+ return data.map(item => deepCopy(item))
+ } else if (isObject(data)) {
+ let ret = {}
+ Object.keys(data).forEach(key => {
+ ret[key] = deepCopy(data[key])
+ })
+ return ret
+ }
+}
diff --git a/config/index.js b/config/index.js
index cef61d9..4b3fb14 100644
--- a/config/index.js
+++ b/config/index.js
@@ -14,7 +14,7 @@
proxyTable: {},
// Various Dev Server settings
- host: '0.0.0.0', // can be overwritten by process.env.HOST
+ // host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8085, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
//是否自动打开浏览器
autoOpenBrowser: true,
diff --git a/package.json b/package.json
index d56b435..c8730cd 100644
--- a/package.json
+++ b/package.json
@@ -22,10 +22,14 @@
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
+ "leaflet": "^1.9.3",
+ "leaflet-canvas-marker": "^0.2.0",
+ "leaflet-canvas-marker-xrr2021": "^1.0.2",
"mockjs": "1.0.1-beta3",
"normalize.css": "7.0.0",
"npm": "^6.11.3",
"nprogress": "0.2.0",
+ "proj4leaflet": "^1.0.2",
"v-charts": "^1.19.0",
"vue": "2.5.17",
"vue-amap": "^0.5.9",
diff --git a/src/components/CMap/components/cmap.vue b/src/components/CMap/components/cmap.vue
index 808ada3..9be1788 100644
--- a/src/components/CMap/components/cmap.vue
+++ b/src/components/CMap/components/cmap.vue
@@ -326,6 +326,7 @@
}
// 有layerid
if (layerInfoManager[layerId].layerid) {
+
opts.params.layerid = CEncode(layerInfoManager[layerId].layerid)
} else {
const tableinfo = {
@@ -342,6 +343,7 @@
attrfds: layerInfoManager[layerId].attrfds }
const tableinfostr = CEncodeSpecialChar(CJsonToStringify(tableinfo))
opts.params.tableinfo = tableinfostr
+
}
opts.params.morecon = this.queryString
this.overlay = new CCustomOverlay(opts)
@@ -363,7 +365,7 @@
const { mapLayers, layerId, overlayManager } = this
// 有图层,先移除
if (overlayManager[layerId]) {
- mapLayers.removeLayer(overlayManager[layerId])
+ mapLayers.removeLayer(overlayManager[layerId]) // 移除一次标记
delete overlayManager[layerId]
}
mapLayers.closePopup()
@@ -422,6 +424,7 @@
if (callback) callback(id, data, bounds)
})
},
+ // 无用
drawFeature(id, list, bounds) {
console.log('drawFeature')
const { mapLayers, featureLayerManager, layerId } = this
@@ -481,6 +484,7 @@
if (callback) callback(id, data)
})
},
+ // 无用
addMarker(id, data, icons) {
const { layerInfoManager, featureLayerManager } = this
var style = ''
diff --git a/src/components/leaftletMap/base/crsUtils.js b/src/components/leaftletMap/base/crsUtils.js
new file mode 100644
index 0000000..ce18b37
--- /dev/null
+++ b/src/components/leaftletMap/base/crsUtils.js
@@ -0,0 +1,36 @@
+import L from 'leaflet'
+/*eslint-disable*/
+import proj4leaflet from 'proj4leaflet'
+/*eslint -enable*/
+// 定义2000坐标系CRS
+const CRS_4490 = new L.Proj.CRS('EPSG:4490', '+proj=longlat +ellps=GRS80 +no_defs', {
+ resolutions: [
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
+ 0.0439453125,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
+ 0.00274658203125,
+ 0.001373291015625,
+ 6.866455078125E-4,
+ 3.4332275390625E-4,
+ 1.71661376953125E-4,
+ 8.58306884765625E-5,
+ 4.291534423828125E-5,
+ 2.1457672119140625E-5,
+ 1.0728836059570312E-5,
+ 5.364418029785156E-6,
+ 2.682209064925356E-6,
+ 1.3411045324626732E-6
+ ],
+ origin: [-180, 90]
+})
+export const crsDict = {
+ '4326': L.CRS.EPSG4326, // WGS84坐标系
+ '3857': L.CRS.EPSG3857, // web墨卡托投影
+ '4490': CRS_4490 // CGCS2000坐标系
+}
diff --git a/src/components/leaftletMap/leafletMap.vue b/src/components/leaftletMap/leafletMap.vue
new file mode 100644
index 0000000..1df7067
--- /dev/null
+++ b/src/components/leaftletMap/leafletMap.vue
@@ -0,0 +1,424 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
index 5b3d3ac..44228ae 100644
--- a/src/main.js
+++ b/src/main.js
@@ -14,7 +14,7 @@
import '@/icons' // icon
import '@/permission' // permission control
-
+// import 'leaflet-canvas-marker'
/**
* This project originally used easy-mock to simulate data,
* but its official service is very unstable,
diff --git a/src/utils/index.js b/src/utils/index.js
index f607910..375dd2b 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -296,3 +296,34 @@
export function uniqueArr(arr) {
return Array.from(new Set(arr))
}
+
+const isType = function(type) {
+ return function(arg) {
+ return Object.prototype.toString.call(arg) === `[object ${type}]`
+ }
+}
+
+export const isFunction = isType('Function')
+
+export const isObject = isType('Object')
+
+export const isString = isType('String')
+
+export const isArray = isType('Array')
+
+export const isDate = isType('Date')
+
+// 深拷贝
+export function deepCopy(data) {
+ if (!Array.isArray(data) && !isObject(data)) {
+ return data
+ } else if (Array.isArray(data)) {
+ return data.map(item => deepCopy(item))
+ } else if (isObject(data)) {
+ let ret = {}
+ Object.keys(data).forEach(key => {
+ ret[key] = deepCopy(data[key])
+ })
+ return ret
+ }
+}
diff --git a/src/views/overview/overview_cmap.vue b/src/views/overview/overview_cmap.vue
index c30bcaf..dadc1c0 100644
--- a/src/views/overview/overview_cmap.vue
+++ b/src/views/overview/overview_cmap.vue
@@ -66,23 +66,62 @@
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
index 5b3d3ac..44228ae 100644
--- a/src/main.js
+++ b/src/main.js
@@ -14,7 +14,7 @@
import '@/icons' // icon
import '@/permission' // permission control
-
+// import 'leaflet-canvas-marker'
/**
* This project originally used easy-mock to simulate data,
* but its official service is very unstable,
diff --git a/src/utils/index.js b/src/utils/index.js
index f607910..375dd2b 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -296,3 +296,34 @@
export function uniqueArr(arr) {
return Array.from(new Set(arr))
}
+
+const isType = function(type) {
+ return function(arg) {
+ return Object.prototype.toString.call(arg) === `[object ${type}]`
+ }
+}
+
+export const isFunction = isType('Function')
+
+export const isObject = isType('Object')
+
+export const isString = isType('String')
+
+export const isArray = isType('Array')
+
+export const isDate = isType('Date')
+
+// 深拷贝
+export function deepCopy(data) {
+ if (!Array.isArray(data) && !isObject(data)) {
+ return data
+ } else if (Array.isArray(data)) {
+ return data.map(item => deepCopy(item))
+ } else if (isObject(data)) {
+ let ret = {}
+ Object.keys(data).forEach(key => {
+ ret[key] = deepCopy(data[key])
+ })
+ return ret
+ }
+}
diff --git a/src/views/overview/overview_cmap.vue b/src/views/overview/overview_cmap.vue
index c30bcaf..dadc1c0 100644
--- a/src/views/overview/overview_cmap.vue
+++ b/src/views/overview/overview_cmap.vue
@@ -66,23 +66,62 @@
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
index 5b3d3ac..44228ae 100644
--- a/src/main.js
+++ b/src/main.js
@@ -14,7 +14,7 @@
import '@/icons' // icon
import '@/permission' // permission control
-
+// import 'leaflet-canvas-marker'
/**
* This project originally used easy-mock to simulate data,
* but its official service is very unstable,
diff --git a/src/utils/index.js b/src/utils/index.js
index f607910..375dd2b 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -296,3 +296,34 @@
export function uniqueArr(arr) {
return Array.from(new Set(arr))
}
+
+const isType = function(type) {
+ return function(arg) {
+ return Object.prototype.toString.call(arg) === `[object ${type}]`
+ }
+}
+
+export const isFunction = isType('Function')
+
+export const isObject = isType('Object')
+
+export const isString = isType('String')
+
+export const isArray = isType('Array')
+
+export const isDate = isType('Date')
+
+// 深拷贝
+export function deepCopy(data) {
+ if (!Array.isArray(data) && !isObject(data)) {
+ return data
+ } else if (Array.isArray(data)) {
+ return data.map(item => deepCopy(item))
+ } else if (isObject(data)) {
+ let ret = {}
+ Object.keys(data).forEach(key => {
+ ret[key] = deepCopy(data[key])
+ })
+ return ret
+ }
+}
diff --git a/src/views/overview/overview_cmap.vue b/src/views/overview/overview_cmap.vue
index c30bcaf..dadc1c0 100644
--- a/src/views/overview/overview_cmap.vue
+++ b/src/views/overview/overview_cmap.vue
@@ -66,23 +66,62 @@
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
index 5b3d3ac..44228ae 100644
--- a/src/main.js
+++ b/src/main.js
@@ -14,7 +14,7 @@
import '@/icons' // icon
import '@/permission' // permission control
-
+// import 'leaflet-canvas-marker'
/**
* This project originally used easy-mock to simulate data,
* but its official service is very unstable,
diff --git a/src/utils/index.js b/src/utils/index.js
index f607910..375dd2b 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -296,3 +296,34 @@
export function uniqueArr(arr) {
return Array.from(new Set(arr))
}
+
+const isType = function(type) {
+ return function(arg) {
+ return Object.prototype.toString.call(arg) === `[object ${type}]`
+ }
+}
+
+export const isFunction = isType('Function')
+
+export const isObject = isType('Object')
+
+export const isString = isType('String')
+
+export const isArray = isType('Array')
+
+export const isDate = isType('Date')
+
+// 深拷贝
+export function deepCopy(data) {
+ if (!Array.isArray(data) && !isObject(data)) {
+ return data
+ } else if (Array.isArray(data)) {
+ return data.map(item => deepCopy(item))
+ } else if (isObject(data)) {
+ let ret = {}
+ Object.keys(data).forEach(key => {
+ ret[key] = deepCopy(data[key])
+ })
+ return ret
+ }
+}
diff --git a/src/views/overview/overview_cmap.vue b/src/views/overview/overview_cmap.vue
index c30bcaf..dadc1c0 100644
--- a/src/views/overview/overview_cmap.vue
+++ b/src/views/overview/overview_cmap.vue
@@ -66,23 +66,62 @@
-
+
+
+
+
+
+
+
+