添加降雨服务器配置
This commit is contained in:
@@ -55,6 +55,9 @@ import type { XianSchool } from '@/types/base/XianSchool';
|
||||
import type { XianBridge } from '@/types/base/XianBridge.ts';
|
||||
import type { XianReservoirList } from '@/types/base/XianReservoirList';
|
||||
import type { XianSubwayStations } from '@/types/base/XianSubwayStations';
|
||||
import type { RainfallGridRequest } from '@/types/rainstorm/RainfallGridRequest';
|
||||
import type { RainfallGridResponse } from '@/types/rainstorm/RainfallGridResponse';
|
||||
import { getRainfallGrid } from './meteorology';
|
||||
|
||||
/**
|
||||
* API接口统一导出对象
|
||||
@@ -277,4 +280,16 @@ export const $api = {
|
||||
): Promise<ApiResponse<XianSubwayStations>> =>
|
||||
getSubwayStationsPointDetailById(id),
|
||||
},
|
||||
|
||||
// 气象信息
|
||||
meteorology: {
|
||||
/**
|
||||
* 获取网格天气信息
|
||||
* @param request - 请求参数
|
||||
* @returns 网格天气信息
|
||||
*/
|
||||
getRainfallGrid: (
|
||||
request: RainfallGridRequest
|
||||
): Promise<ApiResponse<RainfallGridResponse>> => getRainfallGrid(request),
|
||||
},
|
||||
};
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
import type { ApiResponse } from '@/types/ApiResponse';
|
||||
import type { RainfallGridRequest } from '@/types/rainstorm/RainfallGridRequest';
|
||||
import type { RainfallGridResponse } from '@/types/rainstorm/RainfallGridResponse';
|
||||
import httpInstance from '@/utils/request/http';
|
||||
|
||||
/**
|
||||
* 获取降雨栅格数据
|
||||
* @returns 降雨栅格数据
|
||||
*/
|
||||
export const getRainfallGrid = (
|
||||
request: RainfallGridRequest
|
||||
): Promise<ApiResponse<RainfallGridResponse>> => {
|
||||
return httpInstance.post('/algorithm-api/rainfall/grid', request);
|
||||
};
|
||||
@@ -47,7 +47,7 @@
|
||||
// 如果找到了选中的按钮,设置选中状态,同时执行回调函数
|
||||
if (lastSelectedIndex !== -1) {
|
||||
useButtonSelectedIdStore().rightButtonSelectedId = lastSelectedIndex;
|
||||
props.buttonList[lastSelectedIndex].callback();
|
||||
props.buttonList[lastSelectedIndex].callback(true);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
"backendBaseUrl": "__BACKEND_BASE_URL__",
|
||||
"apiBaseUrl": "/api",
|
||||
"noEncryptUrls": [
|
||||
"/crypto/sm2/public-key"
|
||||
"/crypto/sm2/public-key",
|
||||
"/algorithm-api/rainfall/grid"
|
||||
],
|
||||
"tdMapToken": [
|
||||
"fc6cb1139b8eed4f79439130eb34eb00",
|
||||
|
||||
@@ -2,8 +2,27 @@ import { useStatusStore } from '@/stores/useStatusStore.ts';
|
||||
import { CesiumUtilsSingleton } from '@/utils/cesium/CesiumUtils.ts';
|
||||
import config from '@/config/config.json';
|
||||
import { useButtonSelectedIdStore } from '@/stores/useButtonSelectedIdStore';
|
||||
import { $api } from '@/api/api';
|
||||
|
||||
export const useRightHandle = () => {
|
||||
/**
|
||||
* 暴雨模拟
|
||||
* @param status - 状态
|
||||
*/
|
||||
const rainstormSimulation = (status: unknown) => {
|
||||
if (status as boolean) {
|
||||
// 获取降雨栅格
|
||||
$api.meteorology
|
||||
.getRainfallGrid({
|
||||
startTime: '2025-08-20T00:00:00',
|
||||
endTime: '2025-08-20T00:00:00',
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 重置场景
|
||||
*/
|
||||
@@ -22,5 +41,5 @@ export const useRightHandle = () => {
|
||||
);
|
||||
};
|
||||
|
||||
return { resetScene, resetView };
|
||||
return { rainstormSimulation, resetScene, resetView };
|
||||
};
|
||||
|
||||
@@ -166,9 +166,8 @@ export const useRainDisasterChain = () => {
|
||||
const rightButtonInfo = [
|
||||
{
|
||||
name: '暴雨模拟',
|
||||
callback: () => {
|
||||
console.log('暴雨模拟');
|
||||
},
|
||||
callback: (status: unknown) =>
|
||||
useRightHandle().rainstormSimulation(status),
|
||||
selected: true,
|
||||
},
|
||||
{
|
||||
@@ -222,7 +221,10 @@ export const useRainDisasterChain = () => {
|
||||
callback: layerControl.clickLandslideHiddenPoint,
|
||||
link: landslideIcon,
|
||||
category: ControlPanelCategory.DISASTER_HAZARD,
|
||||
count: () => resourceStore.getResourceCount(LoadingResource.LANDSLIDE_HIDDEN_POINT),
|
||||
count: () =>
|
||||
resourceStore.getResourceCount(
|
||||
LoadingResource.LANDSLIDE_HIDDEN_POINT
|
||||
),
|
||||
},
|
||||
{
|
||||
name: '泥石流隐患点',
|
||||
@@ -231,7 +233,10 @@ export const useRainDisasterChain = () => {
|
||||
callback: layerControl.clickDebrisFlowHiddenPoint,
|
||||
link: debrisFlowIcon,
|
||||
category: ControlPanelCategory.DISASTER_HAZARD,
|
||||
count: () => resourceStore.getResourceCount(LoadingResource.DEBRIS_FLOW_HIDDEN_POINT),
|
||||
count: () =>
|
||||
resourceStore.getResourceCount(
|
||||
LoadingResource.DEBRIS_FLOW_HIDDEN_POINT
|
||||
),
|
||||
},
|
||||
{
|
||||
name: '内涝隐患点',
|
||||
@@ -240,7 +245,10 @@ export const useRainDisasterChain = () => {
|
||||
callback: layerControl.clickWaterLoggingHiddenPoint,
|
||||
link: waterLoggingIcon,
|
||||
category: ControlPanelCategory.DISASTER_HAZARD,
|
||||
count: () => resourceStore.getResourceCount(LoadingResource.WATER_LOGGING_HIDDEN_POINT),
|
||||
count: () =>
|
||||
resourceStore.getResourceCount(
|
||||
LoadingResource.WATER_LOGGING_HIDDEN_POINT
|
||||
),
|
||||
},
|
||||
{
|
||||
name: '山洪隐患点',
|
||||
@@ -249,7 +257,10 @@ export const useRainDisasterChain = () => {
|
||||
callback: layerControl.clickFlashFloodHiddenPoint,
|
||||
link: flashFloodIcon,
|
||||
category: ControlPanelCategory.DISASTER_HAZARD,
|
||||
count: () => resourceStore.getResourceCount(LoadingResource.FLASH_FLOOD_HIDDEN_POINT),
|
||||
count: () =>
|
||||
resourceStore.getResourceCount(
|
||||
LoadingResource.FLASH_FLOOD_HIDDEN_POINT
|
||||
),
|
||||
},
|
||||
{
|
||||
name: '风险点',
|
||||
@@ -277,7 +288,8 @@ export const useRainDisasterChain = () => {
|
||||
callback: layerControl.clickDangerousSource,
|
||||
link: dangerousSourceIcon,
|
||||
category: ControlPanelCategory.INFRASTRUCTURE,
|
||||
count: () => resourceStore.getResourceCount(LoadingResource.DANGEROUS_SOURCE),
|
||||
count: () =>
|
||||
resourceStore.getResourceCount(LoadingResource.DANGEROUS_SOURCE),
|
||||
},
|
||||
{
|
||||
name: '避难所',
|
||||
@@ -286,7 +298,8 @@ export const useRainDisasterChain = () => {
|
||||
callback: layerControl.clickEmergencyShelter,
|
||||
link: emergencyShelterIcon,
|
||||
category: ControlPanelCategory.INFRASTRUCTURE,
|
||||
count: () => resourceStore.getResourceCount(LoadingResource.EMERGENCY_SHELTER),
|
||||
count: () =>
|
||||
resourceStore.getResourceCount(LoadingResource.EMERGENCY_SHELTER),
|
||||
},
|
||||
{
|
||||
name: '消防站',
|
||||
@@ -295,7 +308,8 @@ export const useRainDisasterChain = () => {
|
||||
callback: layerControl.clickFireStation,
|
||||
link: firefighterIcon,
|
||||
category: ControlPanelCategory.INFRASTRUCTURE,
|
||||
count: () => resourceStore.getResourceCount(LoadingResource.FIRE_STATION),
|
||||
count: () =>
|
||||
resourceStore.getResourceCount(LoadingResource.FIRE_STATION),
|
||||
},
|
||||
{
|
||||
name: '储备点',
|
||||
@@ -304,7 +318,8 @@ export const useRainDisasterChain = () => {
|
||||
callback: layerControl.clickStorePoints,
|
||||
link: storePointsIcon,
|
||||
category: ControlPanelCategory.INFRASTRUCTURE,
|
||||
count: () => resourceStore.getResourceCount(LoadingResource.STORE_POINTS),
|
||||
count: () =>
|
||||
resourceStore.getResourceCount(LoadingResource.STORE_POINTS),
|
||||
},
|
||||
{
|
||||
name: '学校',
|
||||
@@ -340,7 +355,8 @@ export const useRainDisasterChain = () => {
|
||||
callback: layerControl.clickSubwayStation,
|
||||
link: subwayIcon,
|
||||
category: ControlPanelCategory.INFRASTRUCTURE,
|
||||
count: () => resourceStore.getResourceCount(LoadingResource.SUBWAY_STATION),
|
||||
count: () =>
|
||||
resourceStore.getResourceCount(LoadingResource.SUBWAY_STATION),
|
||||
},
|
||||
{
|
||||
name: '人口网格',
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
export interface RainfallGridRequest {
|
||||
// 开始时间,默认为当前时间
|
||||
startTime?: string;
|
||||
// 结束时间,默认为当前时间
|
||||
endTime?: string;
|
||||
// 区域id,默认为1
|
||||
districtId?: number;
|
||||
// 分辨率,默认为0.01,最小为0,最大为1
|
||||
resolution?: number;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
interface RainfallFeature {
|
||||
type: 'Feature';
|
||||
geometry: {
|
||||
type: 'Polygon';
|
||||
coordinates: number[][][];
|
||||
};
|
||||
properties: {
|
||||
rainfall: number;
|
||||
color: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface RainfallGridResponse {
|
||||
code: number;
|
||||
message: string;
|
||||
data: {
|
||||
type: 'FeatureCollection';
|
||||
features: RainfallFeature[];
|
||||
metadata: {
|
||||
resolution: number;
|
||||
grid_size: number[];
|
||||
bounds: {
|
||||
min_lon: number;
|
||||
max_lon: number;
|
||||
min_lat: number;
|
||||
max_lat: number;
|
||||
};
|
||||
};
|
||||
} | null;
|
||||
}
|
||||
Reference in New Issue
Block a user