|
@@ -2,7 +2,7 @@
|
|
|
<div id="globalMap">
|
|
|
<div class="global-map">
|
|
|
<Map
|
|
|
- v-if="AMapType.includes(mapStore.activeMap)"
|
|
|
+ v-if="mapStore.isAMap"
|
|
|
ref="mapRef"
|
|
|
@handle-show-video="handleShowVideo"
|
|
|
@handle-show-warehouse="handleShowWarehouse"
|
|
@@ -66,6 +66,7 @@ import { getVehicleTrajectory } from '@/api/globalMap/KeyVehicles';
|
|
|
import { iconList } from './data/mapData';
|
|
|
import { deepClone } from '@/utils';
|
|
|
import { parseTime } from '@/utils/ruoyi';
|
|
|
+import { getLocationVideos } from '@/api/videoMonitor';
|
|
|
|
|
|
//dom元素
|
|
|
const rightMenuRef = ref(null);
|
|
@@ -79,7 +80,6 @@ let map: any = {};
|
|
|
// 地图类
|
|
|
let mapUtils: any = {};
|
|
|
const mapStore = useMapStore();
|
|
|
-const AMapType = mapStore.AMapType;
|
|
|
// 附近视频菜单数据
|
|
|
let tempMenu = ref({
|
|
|
name: '',
|
|
@@ -93,7 +93,7 @@ let markerList = ref([]);
|
|
|
let addMarkersTimer;
|
|
|
// 添加打点
|
|
|
const addMarkers = (item) => {
|
|
|
- const dom = AMapType.includes(mapStore.activeMap) ? mapRef.value : map2Ref.value;
|
|
|
+ const dom = mapStore.isAMap ? mapRef.value : map2Ref.value;
|
|
|
if (dom) {
|
|
|
if (!item.checked) {
|
|
|
let index = mapStore.pointType.findIndex((item2) => item.component === item2.component);
|
|
@@ -138,7 +138,7 @@ const adjustPoint = (data) => {
|
|
|
};
|
|
|
|
|
|
const addMarkersMethod = () => {
|
|
|
- const dom = AMapType.includes(mapStore.activeMap) ? mapRef.value : map2Ref.value;
|
|
|
+ const dom = mapStore.isAMap ? mapRef.value : map2Ref.value;
|
|
|
const path = [];
|
|
|
mapStore.pointType.forEach((item) => {
|
|
|
path.push(item.component);
|
|
@@ -236,7 +236,7 @@ const findChecked = (dataList, name) => {
|
|
|
};
|
|
|
// 点击搜索结果,添加标注
|
|
|
const selectSearchMarker = (item) => {
|
|
|
- const dom = AMapType.includes(mapStore.activeMap) ? mapRef.value : map2Ref.value;
|
|
|
+ const dom = mapStore.isAMap ? mapRef.value : map2Ref.value;
|
|
|
let item2 = deepClone(item);
|
|
|
// 获取图标
|
|
|
if (iconList[item2.dataType]) {
|
|
@@ -257,31 +257,31 @@ const handleAnalysisData = (data) => {
|
|
|
rightMenuRef.value.handleMenu('空间分析', data);
|
|
|
};
|
|
|
const getMapUtils = () => {
|
|
|
- const domRef = AMapType.includes(mapStore.activeMap) ? mapRef.value : map2Ref.value;
|
|
|
+ const domRef = mapStore.isAMap ? mapRef.value : map2Ref.value;
|
|
|
return !!domRef ? domRef.getMapUtils() : {};
|
|
|
};
|
|
|
// 获取地图元素操作
|
|
|
const getMap = () => {
|
|
|
- const domRef = AMapType.includes(mapStore.activeMap) ? mapRef.value : map2Ref.value;
|
|
|
+ const domRef = mapStore.isAMap ? mapRef.value : map2Ref.value;
|
|
|
return !!domRef ? domRef.getMap() : {};
|
|
|
};
|
|
|
const showDetail = (data, dataType) => {
|
|
|
- const domRef = AMapType.includes(mapStore.activeMap) ? mapRef.value : map2Ref.value;
|
|
|
+ const domRef = mapStore.isAMap ? mapRef.value : map2Ref.value;
|
|
|
if (!!domRef) {
|
|
|
domRef.handleHover(data, dataType);
|
|
|
}
|
|
|
};
|
|
|
const getDrawTool = () => {
|
|
|
- return AMapType.includes(mapStore.activeMap) ? mapRef.value.drawTool : mapUtils;
|
|
|
+ return mapStore.isAMap ? mapRef.value.drawTool : mapUtils;
|
|
|
};
|
|
|
const getPlaceSearch = () => {
|
|
|
- const domRef = AMapType.includes(mapStore.activeMap) ? mapRef.value : map2Ref.value;
|
|
|
+ const domRef = mapStore.isAMap ? mapRef.value : map2Ref.value;
|
|
|
if (!!domRef) {
|
|
|
domRef.getPlaceSearch();
|
|
|
}
|
|
|
};
|
|
|
const trackPlayback = (data) => {
|
|
|
- const domRef = AMapType.includes(mapStore.activeMap) ? mapRef.value : mapUtils;
|
|
|
+ const domRef = mapStore.isAMap ? mapRef.value : mapUtils;
|
|
|
if (!!domRef) {
|
|
|
domRef.trackPlayback(data);
|
|
|
}
|
|
@@ -314,7 +314,7 @@ const clearData = () => {
|
|
|
}
|
|
|
};
|
|
|
const closeClickMap = () => {
|
|
|
- if (AMapType.includes(mapStore.activeMap)) {
|
|
|
+ if (mapStore.isAMap) {
|
|
|
map.off('click', handleClickMap);
|
|
|
} else {
|
|
|
map.un('click', handleClickMap);
|
|
@@ -327,7 +327,7 @@ const handleShowVideo = (data) => {
|
|
|
showNearbyVideos.value = true;
|
|
|
};
|
|
|
const handleClickMap = (e) => {
|
|
|
- if (AMapType.includes(mapStore.activeMap)) {
|
|
|
+ if (mapStore.isAMap) {
|
|
|
location.value = [e.lnglat.lng, e.lnglat.lat];
|
|
|
} else {
|
|
|
location.value = e.coordinate;
|
|
@@ -343,7 +343,7 @@ const handleClickMap = (e) => {
|
|
|
name: '',
|
|
|
checked: false
|
|
|
};
|
|
|
- if (AMapType.includes(mapStore.activeMap)) {
|
|
|
+ if (mapStore.isAMap) {
|
|
|
map.off('click', handleClickMap);
|
|
|
} else {
|
|
|
map.un('click', handleClickMap);
|
|
@@ -371,7 +371,7 @@ watch(
|
|
|
() => mapStore.trackState.show,
|
|
|
(show) => {
|
|
|
if (!!show) {
|
|
|
- const dom = AMapType.includes(mapStore.activeMap) ? mapRef.value : map2Ref.value;
|
|
|
+ const dom = mapStore.isAMap ? mapRef.value : map2Ref.value;
|
|
|
dom?.addMarker(adjustPoint(mapStore.trackState.data));
|
|
|
mapStore.trackState.data = [];
|
|
|
mapStore.trackState.show = false;
|
|
@@ -411,10 +411,44 @@ watch(
|
|
|
immediate: true
|
|
|
}
|
|
|
);
|
|
|
-
|
|
|
+// 监听视频打点
|
|
|
+watch(
|
|
|
+ () => mapStore.videoPointParams,
|
|
|
+ () => {
|
|
|
+ if (!mapStore.videoPointParams.flag) return;
|
|
|
+ const queryParams = {
|
|
|
+ zoom_level: mapStore.mapState.zoom,
|
|
|
+ // zoom_level: 8,
|
|
|
+ latitude_min: '',
|
|
|
+ latitude_max: '',
|
|
|
+ longitude_min: '',
|
|
|
+ longitude_max: '',
|
|
|
+ dict_value: 'slfh'
|
|
|
+ // dict_value: mapStore.videoPointParams.dict_value
|
|
|
+ };
|
|
|
+ if (mapStore.isAMap) {
|
|
|
+ const AMap = mapUtils.getAMap();
|
|
|
+ const pixel = new AMap.Pixel(0, 0);
|
|
|
+ const size = mapRef.value.getMapDomSize();
|
|
|
+ const pixel2 = new AMap.Pixel(size[0], size[1]);
|
|
|
+ const lnglat = map.containerToLngLat(pixel);
|
|
|
+ const lnglat2 = map.containerToLngLat(pixel2);
|
|
|
+ queryParams.longitude_min = lnglat.lng;
|
|
|
+ queryParams.latitude_max = lnglat.lat;
|
|
|
+ queryParams.longitude_max = lnglat2.lng;
|
|
|
+ queryParams.latitude_min = lnglat2.lat;
|
|
|
+ }
|
|
|
+ getLocationVideos(queryParams).then((res) => {
|
|
|
+ mapUtils.addMarker2(res.data);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ {
|
|
|
+ deep: true
|
|
|
+ }
|
|
|
+);
|
|
|
onBeforeUnmount(() => {
|
|
|
if (!!map) {
|
|
|
- if (AMapType.includes(mapStore.activeMap)) {
|
|
|
+ if (mapStore.isAMap) {
|
|
|
map.off('click', handleClickMap);
|
|
|
} else {
|
|
|
map.un('click', handleClickMap);
|