|
|
|
|
@ -133,6 +133,12 @@
|
|
|
|
|
maxzoom: 13,
|
|
|
|
|
minzoom: 10,
|
|
|
|
|
});
|
|
|
|
|
map.loadImage('/homepage/nong.png', (error, image) => {
|
|
|
|
|
if (error) throw error;
|
|
|
|
|
if (!map.hasImage('nongji-marker')) {
|
|
|
|
|
map.addImage('nongji-marker', image);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
// map.setTerrain({ source: 'mapbox-dem', exaggeration: 1 });
|
|
|
|
|
|
|
|
|
|
// 设置2D地图
|
|
|
|
|
@ -240,26 +246,28 @@
|
|
|
|
|
const handlerGetDetails = (e) => {
|
|
|
|
|
emits('handlerGetDetails', e.features[0].properties);
|
|
|
|
|
}
|
|
|
|
|
function handlerLoadPolygon(code = '', filter = '', type = '', level = '', urlFilter='&filter="RelationType" IN (-1)') {
|
|
|
|
|
function handlerLoadPolygon(code = '', filter = '', type = '', level = '', filterList:any[]=[]) {
|
|
|
|
|
let map_filter;
|
|
|
|
|
let table_filter = 'idle_shp';
|
|
|
|
|
let field_filter = '&field="RelationId","RelationType","Id",';
|
|
|
|
|
let table_filter = 'view_shp_idle';
|
|
|
|
|
let field_filter = '&field="SerialNumber","Type","Id",';
|
|
|
|
|
let color_filter: any = [];
|
|
|
|
|
let url_filter = urlFilter;
|
|
|
|
|
let nongji_url_filter = `&filter="Type" IN (${filterList.includes(4)? '4': '-1'})`
|
|
|
|
|
filterList = filterList.filter(item => item != 4)
|
|
|
|
|
let url_filter = `&filter="Type" IN (${filterList.length > 0? filterList.join(','): -1})`
|
|
|
|
|
if (filter && filter != '全部') {
|
|
|
|
|
map_filter = ['all', ['==', ['get', 'RelationType'], filter]];
|
|
|
|
|
map_filter = ['all', ['==', ['get', 'Type'], filter]];
|
|
|
|
|
} else {
|
|
|
|
|
map_filter = ['!=', ['get', 'Id'], 0];
|
|
|
|
|
}
|
|
|
|
|
color_filter = [
|
|
|
|
|
"case",
|
|
|
|
|
['all', ['==', ['get', 'RelationType'], 0]],
|
|
|
|
|
['all', ['==', ['get', 'Type'], 3]],
|
|
|
|
|
"#0AF703",
|
|
|
|
|
['all', ['==', ['get', 'RelationType'], 1]],
|
|
|
|
|
['all', ['==', ['get', 'Type'], 2]],
|
|
|
|
|
"#F70303",
|
|
|
|
|
['all', ['==', ['get', 'RelationType'], 2]],
|
|
|
|
|
['all', ['==', ['get', 'Type'], 1]],
|
|
|
|
|
"#F4E004",
|
|
|
|
|
['all', ['==', ['get', 'RelationType'], 3]],
|
|
|
|
|
['all', ['==', ['get', 'Type'], 5]],
|
|
|
|
|
"#0382F7",
|
|
|
|
|
"#FFFFFF"
|
|
|
|
|
]
|
|
|
|
|
@ -267,8 +275,10 @@
|
|
|
|
|
if (map.getLayer('historyLayerLine')) {
|
|
|
|
|
map.removeLayer('historyLayerLine');
|
|
|
|
|
map.removeLayer('historyLayerFill');
|
|
|
|
|
map.removeLayer('historyLayerSymbol');
|
|
|
|
|
map.removeSource('historyLayerLine');
|
|
|
|
|
map.removeSource('historyLayerFill');
|
|
|
|
|
map.removeSource('historyLayerSymbol');
|
|
|
|
|
}
|
|
|
|
|
map.addLayer({
|
|
|
|
|
id: 'historyLayerLine',
|
|
|
|
|
@ -277,7 +287,7 @@
|
|
|
|
|
type: 'vector',
|
|
|
|
|
tiles: [
|
|
|
|
|
VITE_GLOB_API_URL_VAR.value +
|
|
|
|
|
'/api/IdleShp/QueryVectorTileByTable?z={z}&x={x}&y={y}&table=' +
|
|
|
|
|
'/api/IdleLand/QueryVectorTileByTable?z={z}&x={x}&y={y}&table=' +
|
|
|
|
|
table_filter +
|
|
|
|
|
field_filter +
|
|
|
|
|
url_filter,
|
|
|
|
|
@ -307,7 +317,7 @@
|
|
|
|
|
type: 'vector',
|
|
|
|
|
tiles: [
|
|
|
|
|
VITE_GLOB_API_URL_VAR.value +
|
|
|
|
|
'/api/IdleShp/QueryVectorTileByTable?z={z}&x={x}&y={y}&table=' +
|
|
|
|
|
'/api/IdleLand/QueryVectorTileByTable?z={z}&x={x}&y={y}&table=' +
|
|
|
|
|
table_filter +
|
|
|
|
|
field_filter +
|
|
|
|
|
url_filter,
|
|
|
|
|
@ -326,6 +336,29 @@
|
|
|
|
|
'fill-opacity': 0.5,
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
map.addLayer({
|
|
|
|
|
id: 'historyLayerSymbol',
|
|
|
|
|
type: 'symbol',
|
|
|
|
|
source: {
|
|
|
|
|
type: 'vector',
|
|
|
|
|
tiles: [
|
|
|
|
|
VITE_GLOB_API_URL_VAR.value +
|
|
|
|
|
'/api/IdleLand/QueryVectorTileByTable?z={z}&x={x}&y={y}&table=' +
|
|
|
|
|
table_filter +
|
|
|
|
|
field_filter +
|
|
|
|
|
nongji_url_filter,
|
|
|
|
|
],
|
|
|
|
|
minzoom: 1,
|
|
|
|
|
maxzoom: 20,
|
|
|
|
|
},
|
|
|
|
|
'source-layer': table_filter,
|
|
|
|
|
layout: {
|
|
|
|
|
'icon-image': 'nongji-marker',
|
|
|
|
|
'icon-size': 0.8,
|
|
|
|
|
'icon-allow-overlap': true,
|
|
|
|
|
'icon-anchor': 'bottom',
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
emits('onload');
|
|
|
|
|
map.off('click', 'historyLayerFill', handlerGetDetails)
|
|
|
|
|
map.on('click', 'historyLayerFill', handlerGetDetails);
|
|
|
|
|
@ -536,8 +569,8 @@
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
const handlerChangeLayer = (list) => {
|
|
|
|
|
let filterJosn = `&filter="RelationType" IN (${list.length > 0? list.join(','): -1})`
|
|
|
|
|
handlerLoadPolygon("","","","",filterJosn)
|
|
|
|
|
let filterJosn = `&filter="Type" IN (${list.length > 0? list.join(','): -1})`
|
|
|
|
|
handlerLoadPolygon("","","","",list)
|
|
|
|
|
}
|
|
|
|
|
// 抛出函数
|
|
|
|
|
defineExpose({
|
|
|
|
|
|