|
|
@@ -25,32 +25,32 @@ export function getShanxiGeoJSON() {
|
|
|
}
|
|
|
|
|
|
export function getGeoJSON(params: any) {
|
|
|
- const getFeatColor = (gb) => {
|
|
|
- const colorMap = {
|
|
|
- // 邮编前7位:颜色
|
|
|
- // '1566101': '#14baff',
|
|
|
- // '1566102': '#14baff',
|
|
|
- // '1566103': '#ffff12',
|
|
|
- // '1566104': '#ffff12',
|
|
|
- // '1566105': '#ffab12',
|
|
|
- // '1566106': '#ffab12',
|
|
|
- // '1566107': '#fe1414',
|
|
|
- // '1566108': '#fe1414',
|
|
|
- // '1566109': '#fe1414',
|
|
|
- // '1566111': '#fe1414',
|
|
|
- '1566101': StatusColorEnum.blue,
|
|
|
- '1566102': StatusColorEnum.blue,
|
|
|
- '1566103': StatusColorEnum.yellow,
|
|
|
- '1566104': StatusColorEnum.yellow,
|
|
|
- '1566105': StatusColorEnum.gold,
|
|
|
- '1566106': StatusColorEnum.gold,
|
|
|
- '1566107': StatusColorEnum.red,
|
|
|
- '1566108': StatusColorEnum.red,
|
|
|
- '1566109': StatusColorEnum.green,
|
|
|
- '1566110': StatusColorEnum.green,
|
|
|
- };
|
|
|
- return get(colorMap, gb.slice(0, -2), StatusColorEnum.blue);
|
|
|
- };
|
|
|
+ // const getFeatColor = (gb) => {
|
|
|
+ // const colorMap = {
|
|
|
+ // // 邮编前7位:颜色
|
|
|
+ // // '1566101': '#14baff',
|
|
|
+ // // '1566102': '#14baff',
|
|
|
+ // // '1566103': '#ffff12',
|
|
|
+ // // '1566104': '#ffff12',
|
|
|
+ // // '1566105': '#ffab12',
|
|
|
+ // // '1566106': '#ffab12',
|
|
|
+ // // '1566107': '#fe1414',
|
|
|
+ // // '1566108': '#fe1414',
|
|
|
+ // // '1566109': '#fe1414',
|
|
|
+ // // '1566111': '#fe1414',
|
|
|
+ // '1566101': StatusColorEnum.blue,
|
|
|
+ // '1566102': StatusColorEnum.yellow,
|
|
|
+ // '1566103': StatusColorEnum.gold,
|
|
|
+ // '1566104': StatusColorEnum.red,
|
|
|
+ // '1566105': StatusColorEnum.green,
|
|
|
+ // '1566106': StatusColorEnum.gray,
|
|
|
+ // '1566107': StatusColorEnum.orange,
|
|
|
+ // '1566108': StatusColorEnum.purple,
|
|
|
+ // '1566109': StatusColorEnum.black,
|
|
|
+ // '1566110': StatusColorEnum.blue,
|
|
|
+ // };
|
|
|
+ // return get(colorMap, gb.slice(0, -2), StatusColorEnum.blue);
|
|
|
+ // };
|
|
|
const getAlarmColor = (lv) => {
|
|
|
const colorMap = {
|
|
|
4: StatusColorEnum.red,
|
|
|
@@ -63,6 +63,41 @@ export function getGeoJSON(params: any) {
|
|
|
return get(colorMap, lv, StatusColorEnum.blue);
|
|
|
};
|
|
|
|
|
|
+ // const pointInPolygon = (point, polygon) => {
|
|
|
+ // const x = point[0],
|
|
|
+ // y = point[1];
|
|
|
+ // let inside = false;
|
|
|
+ // for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
|
|
|
+ // const xi = polygon[i][0],
|
|
|
+ // yi = polygon[i][1];
|
|
|
+ // const xj = polygon[j][0],
|
|
|
+ // yj = polygon[j][1];
|
|
|
+ // const intersect = yi > y !== yj > y && x < ((xj - xi) * (y - yi)) / (yj - yi) + xi;
|
|
|
+ // if (intersect) inside = !inside;
|
|
|
+ // }
|
|
|
+ // return inside;
|
|
|
+ // };
|
|
|
+
|
|
|
+ // const pointInMultiPolygon = (point, multiPolygon) => {
|
|
|
+ // for (const polygon of multiPolygon.coordinates) {
|
|
|
+ // // 外环
|
|
|
+ // const outerRing = polygon[0];
|
|
|
+ // if (pointInPolygon(point, outerRing)) {
|
|
|
+ // // 检查内环(洞),如果点在任意一个内环内,则不算内部
|
|
|
+ // let insideHole = false;
|
|
|
+ // for (let i = 1; i < polygon.length; i++) {
|
|
|
+ // const hole = polygon[i];
|
|
|
+ // if (pointInPolygon(point, hole)) {
|
|
|
+ // insideHole = true;
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // if (!insideHole) return true;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // return false;
|
|
|
+ // };
|
|
|
+
|
|
|
return Promise.all([getShanxiGeoJSON(), getMarkers(params)]).then(([geojson, { records }]) => {
|
|
|
const mineStore = useMineDepartmentStore();
|
|
|
|
|
|
@@ -118,9 +153,24 @@ export function getGeoJSON(params: any) {
|
|
|
|
|
|
map.clear();
|
|
|
|
|
|
- geojson.features.forEach(({ properties }) => {
|
|
|
- properties.fillColor = getFeatColor(properties.gb);
|
|
|
- });
|
|
|
+ // geojson.features.forEach(({ properties, geometry }) => {
|
|
|
+ // properties.fillColor = getFeatColor(properties.gb);
|
|
|
+ // // const temp = records.filter((item) => pointInMultiPolygon([item.longitude, item.latitude], geometry));
|
|
|
+ // const temp = reduceRight(
|
|
|
+ // records,
|
|
|
+ // (acc, item) => {
|
|
|
+ // acc.add(mineStore.getRootId!);
|
|
|
+ // // 从右边开始,因为父节点都在最后面
|
|
|
+ // if (pointInMultiPolygon([item.longitude, item.latitude], geometry)) {
|
|
|
+ // acc.add(item.id);
|
|
|
+ // acc.add(item.parentId);
|
|
|
+ // }
|
|
|
+ // return acc;
|
|
|
+ // },
|
|
|
+ // new Set()
|
|
|
+ // );
|
|
|
+ // properties.children = [...temp];
|
|
|
+ // });
|
|
|
|
|
|
const markers = {
|
|
|
type: 'FeatureCollection',
|