refactor(map): 优化分片加载与数据源管理

- 将文件导入路径由"uploadFile/gwj"调整为"uploadFile"
- 升级zy-react-library依赖版本至2.1.0
- 使用更合理的默认chunkSize 50替代原来的10,提升加载效率
- 在添加实体集合时,将entityCollection添加到viewer.dataSources中,确保数据源正确管理
- 统一代码风格,移除重复添加entityCollection的操作,提高代码可读性和性能
master
LiuJiaNan 2026-08-01 10:34:13 +08:00
parent 6c279d6ba6
commit 477509877c
6 changed files with 17 additions and 21 deletions

View File

@ -40,7 +40,7 @@
"react-transition-group": "^4.4.5",
"sass": "^1.97.0",
"sass-loader": "^16.0.6",
"zy-react-library": "^2.0.15"
"zy-react-library": "^2.1.0"
},
"devDependencies": {
"@antfu/eslint-config": "^5.4.1",

View File

@ -3,7 +3,7 @@ import { Descriptions, Divider } from "antd";
import { useEffect, useState } from "react";
import PreviewImg from "zy-react-library/components/PreviewImg";
import Table from "zy-react-library/components/Table";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile";
import useDictionary from "zy-react-library/hooks/useDictionary";
import useGetFile from "zy-react-library/hooks/useGetFile";
import { getLabelName } from "zy-react-library/utils";

View File

@ -3,7 +3,7 @@ import { Descriptions, Divider } from "antd";
import { useEffect, useState } from "react";
import PreviewImg from "zy-react-library/components/PreviewImg";
import Table from "zy-react-library/components/Table";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile";
import useDictionary from "zy-react-library/hooks/useDictionary";
import useGetFile from "zy-react-library/hooks/useGetFile";
import { getLabelName } from "zy-react-library/utils";

View File

@ -5,7 +5,7 @@ import PreviewImg from "zy-react-library/components/PreviewImg";
import PreviewPdf from "zy-react-library/components/PreviewPdf";
import PreviewWord from "zy-react-library/components/PreviewWord";
import Table from "zy-react-library/components/Table";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile";
import useGetFile from "zy-react-library/hooks/useGetFile";
import { getFileSuffix, getLabelName, isEmptyToWhether } from "zy-react-library/utils";
import { NS_BI_MARK_INFO } from "~/enumerate/namespace";

View File

@ -125,8 +125,9 @@ export default function useMapMethods(viewerRef, request) {
// 添加港口点
const addPortPoint = async () => {
const viewer = getViewer();
await chunkedLoad(portPoint, 10, async (item) => {
const entityCollection = createEntityCollection("portEntityCollection");
viewer.dataSources.add(entityCollection);
await chunkedLoad(portPoint, 50, async (item) => {
entityCollection.entities.add(
new Cesium.Entity({
id: item.id,
@ -136,7 +137,6 @@ export default function useMapMethods(viewerRef, request) {
monitorItems: { data: { ...item, markType: "港口" } },
}),
);
viewer.dataSources.add(entityCollection);
});
await addMergedEntityCollection(viewer, "portEntityCollection");
};
@ -162,8 +162,9 @@ export default function useMapMethods(viewerRef, request) {
else {
branchOfficePoint = filterNull([pointInfo]);
}
await chunkedLoad(branchOfficePoint, 10, async (item) => {
const entityCollection = createEntityCollection("branchOfficeEntityCollection");
viewer.dataSources.add(entityCollection);
await chunkedLoad(branchOfficePoint, 50, async (item) => {
entityCollection.entities.add(
new Cesium.Entity({
id: item.id,
@ -175,7 +176,6 @@ export default function useMapMethods(viewerRef, request) {
},
}),
);
viewer.dataSources.add(entityCollection);
});
await addMergedEntityCollection(viewer, "branchOfficeEntityCollection");
mitt.emit(changeCoverMaskVisibleMittKey, false);
@ -199,9 +199,8 @@ export default function useMapMethods(viewerRef, request) {
return;
mitt.emit(changeCoverMaskVisibleMittKey, true);
const currentEdge = edgeMap[id]();
const entityCollection = createEntityCollection(
"fourColorDiagramEntityCollection",
);
const entityCollection = createEntityCollection("fourColorDiagramEntityCollection");
getViewer().dataSources.add(entityCollection);
// 先收集需要渲染的数据
const itemsToRender = [];
@ -240,7 +239,6 @@ export default function useMapMethods(viewerRef, request) {
);
});
getViewer().dataSources.add(entityCollection);
mitt.emit(changeCoverMaskVisibleMittKey, false);
};
@ -263,6 +261,7 @@ export default function useMapMethods(viewerRef, request) {
mitt.emit(changeCoverMaskVisibleMittKey, true);
const currentEdge = edgeMap[id]();
const entityCollection = createEntityCollection("wallEntityCollection");
viewer.dataSources.add(entityCollection);
const wallList = currentEdge.wallList;
if (!Array.isArray(wallList))
return;
@ -290,7 +289,6 @@ export default function useMapMethods(viewerRef, request) {
);
});
viewer.dataSources.add(entityCollection);
mitt.emit(changeCoverMaskVisibleMittKey, false);
};
@ -381,10 +379,9 @@ export default function useMapMethods(viewerRef, request) {
throw new Error("请传入markIcon扎点图标");
const viewer = getViewer();
mitt.emit(changeCoverMaskVisibleMittKey, true);
await chunkedLoad(filterNull(pointList), 10, async (item) => {
const entityCollection = createEntityCollection(
`markEntityCollection_${options.markType}`,
);
const entityCollection = createEntityCollection(`markEntityCollection_${options.markType}`);
viewer.dataSources.add(entityCollection);
await chunkedLoad(filterNull(pointList), 50, async (item) => {
const name = item[options.titleKey] || "";
entityCollection.entities.add(
new Cesium.Entity({
@ -397,7 +394,6 @@ export default function useMapMethods(viewerRef, request) {
},
}),
);
viewer.dataSources.add(entityCollection);
});
const dataSource = await addMergedEntityCollection(
viewer,

View File

@ -14,7 +14,7 @@ export const formatPolygon = (item) => {
};
// 分片加载方法
export const chunkedLoad = async (dataArray, chunkSize = 10, processItem) => {
export const chunkedLoad = async (dataArray, chunkSize = 50, processItem) => {
const results = [];
for (let i = 0; i < dataArray.length; i += chunkSize) {
const chunk = dataArray.slice(i, i + chunkSize);