Coding

geoskill-interactive-webgis

Try it

Configure a lightweight WebGIS with query support as a self-contained HTML app

What it does

Configure a lightweight WebGIS with query support as a self-contained HTML app

The skill document

交互式WebGIS平台 | Interactive WebGIS Platform

Generates a self-contained lightweight WebGIS: Leaflet base map + rendered overlay layers + POI monitoring point layer + click-to-query (embedded downsampled raster JSON, browser-side nearest-neighbor elevation query) + layer toggle panel. No backend required.

The attribute query engine supports six operators — gt/lt/ge/le/eq/contains — and is unit-testable; it also aggregates point features into a density raster.

Core Algorithm / 核心算法

query_value_at bilinear point query + nearest_query nearest-neighbor → build_layer_config layer configuration → point_density_raster aggregation → Leaflet + embedded GRID assembly.

Dependencies / 依赖

pip install numpy rasterio scipy matplotlib geopandas shapely pillow

Usage / 使用方法

Example 1 (synthetic data, offline)

python geoskill-interactive-webgis.py --bbox 116.0 39.0 117.0 40.0 --synthetic --output-dir ./out

Example 2 (attribute query)

python geoskill-interactive-webgis.py --input poi.geojson --query-field value --query-op gt --query-value 50

Example 3 (contains query)

python geoskill-interactive-webgis.py --input poi.geojson --query-field category --query-op contains --query-value school

Example 4 (synthetic 200 POIs)

python geoskill-interactive-webgis.py --bbox 116 39 117 40 --synthetic --n-points 200

Example 5 (custom color and title)

python geoskill-interactive-webgis.py --bbox 116 39 117 40 --synthetic --color "#e6550d" --title "urban facilities"

Output / 输出

FileFormatDescription
webgis.htmlHTMLWebGIS application (primary output)
webgis_data.jsonJSONRaster grid/sites/config (verifiable output)
features.geojsonGeoJSONPoint features
density.tifGeoTIFFPoint density raster

Each run also produces output-manifest.json (run manifest).

Data Source / 数据源 / Source

Local GeoTIFF / vector files; --synthetic mode generates physically consistent simulated data, fully offline.

Privacy / 隐私声明 / Privacy

  • Runs offline by default; --synthetic mode requires no network at all.
  • All processing is done locally; no user data is uploaded.

License / License

MIT



name: geoskill-interactive-webgis description: 'Configure a lightweight WebGIS with query support as a self-contained HTML app'

交互式WebGIS平台 | Interactive WebGIS Platform

生成自包含轻量级 WebGIS:Leaflet 底图 + 渲染叠加层 + POI 监测点图层 + 点击即查(内嵌降采样栅格 JSON,浏览器端最近邻查询高程)+ 图层开关面板。无需后端。

属性查询引擎支持 gt/lt/ge/le/eq/contains 六种运算符,可单测;另把点要素聚合成密度栅格。

核心算法

query_value_at 双线性点查询 + nearest_query 最近邻 → build_layer_config 图层配置 → point_density_raster 聚合 → Leaflet+内嵌 GRID 组装。

依赖

pip install numpy rasterio scipy matplotlib geopandas shapely pillow

使用方法

示例 1(合成数据,离线)

python geoskill-interactive-webgis.py --bbox 116.0 39.0 117.0 40.0 --synthetic --output-dir ./out

示例 2(属性查询)

python geoskill-interactive-webgis.py --input poi.geojson --query-field value --query-op gt --query-value 50

示例 3(contains 查询)

python geoskill-interactive-webgis.py --input poi.geojson --query-field category --query-op contains --query-value school

示例 4(合成 200 个 POI)

python geoskill-interactive-webgis.py --bbox 116 39 117 40 --synthetic --n-points 200

示例 5(自定义颜色与标题)

python geoskill-interactive-webgis.py --bbox 116 39 117 40 --synthetic --color "#e6550d" --title "城市设施"

输出

文件格式说明
webgis.htmlHTMLWebGIS 应用(主产物)
webgis_data.jsonJSON栅格网格/站点/配置(可验证产物)
features.geojsonGeoJSON点要素
density.tifGeoTIFF点密度栅格

每次运行还会产出 output-manifest.json(运行清单)。

数据源 / Source

本地 GeoTIFF / 矢量文件;--synthetic 模式生成物理一致的模拟数据,完全离线。

隐私声明 / Privacy

  • 默认离线运行,--synthetic 模式完全无网络。
  • 所有处理在本地完成,不上传用户数据。

License

MIT

Related skills