智慧水务管理系统 - 精河县供水工程综合管理平台

design-spec.md 2.2KB

GIS引擎集成设计文档

1.4 GIS引擎集成(GeoServer+PostGIS+Leaflet)

数据库DDL

-- PostGIS空间表
CREATE TABLE gis_base_map (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    type VARCHAR(50) NOT NULL,
    geom GEOMETRY(Polygon, 4326) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 监测点位表
CREATE TABLE iot_device (
    id SERIAL PRIMARY KEY,
    device_code VARCHAR(50) UNIQUE NOT NULL,
    name VARCHAR(100) NOT NULL,
    device_type VARCHAR(50) NOT NULL,
    longitude DECIMAL(10, 6) NOT NULL,
    latitude DECIMAL(10, 6) NOT NULL,
    gis_layer_name VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    location_geom GEOMETRY(Point, 4326)
);

-- 管网数据表
CREATE TABLE water_pipe_network (
    id SERIAL PRIMARY KEY,
    pipe_code VARCHAR(50) UNIQUE NOT NULL,
    pipe_type VARCHAR(50) NOT NULL,
    start_point_geom GEOMETRY(Point, 4326),
    end_point_geom GEOMETRY(Point, 4326),
    diameter DECIMAL(10, 2),
    material VARCHAR(50),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

API端点规范

GET    /api/gis/base-layers     # 获取基础图层列表
POST   /api/gis/base-layers     # 创建基础图层
GET    /api/gis/devices          # 获取监测点位列表
POST   /api/gis/devices          # 添加监测点位
GET    /api/gis/pipes            # 获取管网数据
POST   /api/gis/pipes            # 添加管网数据
GET    /api/gis/map-config       # 获取地图配置

前端组件树

GISMap (主组件)
├── MapControl (地图控制)
│   ├── LayerSwitch (图层切换)
│   ├── BaseMapSwitch (底图切换)
│   └── ZoomControl (缩放控制)
├── DeviceMarker (监测点位标记)
│   ├── DevicePopup (点位弹窗)
│   └── DeviceInfo (点位信息)
├── PipeLayer (管网图层)
├── Trajectory (轨迹回放)
└── Legend (图例)

数据流图

[前端] → [GIS Controller] → [GIS Service] → [PostGIS] → [GeoServer] → [地图服务]