欢迎光临
我们一直在努力

用 Grok Bot 在腾讯云装 GeoServer,并把公开样例发成 WFS,秒发100个服务

用 Grok Bot 在腾讯云装 GeoServer,并把公开样例发成 WFS

实操记录。文中图层来自 Natural Earth 公开数据(世界国家边界 110m),不是任何项目或客户数据。
环境:腾讯云 Ubuntu + Docker;GeoServer 映射宿主机 8082。
结果:工作区 demo,图层 demo:countries,WFS 可查询约 177 个面要素。

⚠️ 写进博客、发到公网 GeoServer 的数据,等于对外可见。签过保密协议的行政区、项目红线、内部台账,不要用来演示;用公开样例即可把流程讲清楚。


一、这件事为什么适合交给 Grok Bot

装 GeoServer、建工作区、上传 Shapefile、验 WFS,步骤多但模式固定。Grok Bot 适合:

  • 在云主机起容器(选镜像、避开端口冲突、限内存)
  • 用 REST API 发服务(比只点后台可复现)
  • 把样例数据打成 zip 上传并做 GetFeature 验收
  • 你负责:服务器、安全组、选「能公开」的数据、改默认密码。


    二、先把 GeoServer 装起来(Docker)

    1. 摸底

    free -h
    docker ps
    ss -lntp | grep -E '8080|8082'

    若 8080 已被占用,把 GeoServer 映射到 8082,并在云厂商安全组放行 TCP 8082。

    约 4G 内存的机器上,GeoServer(Java)和其他容器抢内存时,可能出现 SSH 假死、外网端口间歇不通。做法:临时停掉不急用的容器,并给 GeoServer 加 -m 1536m。

    2. 镜像与启动

    国内拉官方镜像经常超时,可用:

    kartoza/geoserver:2.24.2

    docker rm -f geoserver

    docker run -d –name geoserver \\
    –restart unless-stopped \\
    -p 8082:8080 \\
    -e GEOSERVER_ADMIN_USER=admin \\
    -e GEOSERVER_ADMIN_PASSWORD=请改成强密码 \\
    -v geoserver_data:/opt/geoserver/data_dir \\
    -m 1536m \\
    kartoza/geoserver:2.24.2

    检查:

    docker ps –filter name=geoserver
    curl -I http://127.0.0.1:8082/geoserver/web/

    浏览器:http://你的公网IP:8082/geoserver/
    默认管理员务必尽快改密,公网裸奔只适合试验。

    3. 常见坑

    现象处理
    8080 冲突 改映射 8082 + 安全组放行
    整机假死 停多余容器,限 -m 1536m
    官方镜像拉不动 换 kartoza/geoserver

    三、用公开样例发一层 WFS

    1. 数据从哪来

    这次用的是 Natural Earth 的 ne_110m_admin_0_countries(世界国家,约 177 个面,WGS84 / EPSG:4326)。下载页或 CDN 均可,例如:

    Home

    把 .shp/.shx/.dbf/.prj 打成 zip,图层在 GeoServer 里命名为 countries,工作区用 demo,标题写成 World Countries (Natural Earth demo),和任何客户项目脱钩。

    2. REST 发布(Grok Bot 实际路径)

    # 建工作区
    curl -u admin:**** -H "Content-type: application/json" \\
    -d '{"workspace":{"name":"demo"}}' \\
    http://你的IP:8082/geoserver/rest/workspaces

    # 上传 shapefile zip
    curl -u admin:**** -XPUT \\
    -H "Content-type: application/zip" \\
    –data-binary @countries.zip \\
    "http://你的IP:8082/geoserver/rest/workspaces/demo/datastores/countries/file.shp?configure=all"

    验收页应看到工作区 demo、图层 countries:

    WMS 预览(世界国家面):

    3. WFS 怎么验

    http://你的IP:8082/geoserver/demo/wfs?service=WFS&version=2.0.0&request=GetCapabilities

    命中数(约 177):

    …/demo/wfs?service=WFS&version=2.0.0&request=GetFeature&typeNames=demo:countries&resultType=hits

    拉一条 GeoJSON:

    …/demo/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=demo:countries&outputFormat=application/json&maxFeatures=1

    4. QGIS

    数据源管理 → WFS → URL:http://你的IP:8082/geoserver/demo/wfs → 勾选 demo:countries → 添加。


    四、保密协议场景下怎么发教程

    可以进博客 / 公网 GeoServer不要用
    Natural Earth、OSM 导出的公开边界、自造假数据 行政区红线、项目红线、内部台账、未公开规划
    脱敏后的示意图层 带真实地名+编码的客户库直出

    哪怕只是「演示一下流程」,把内部 Shapefile 推到公网 IP,也等于多了一个可被 GetFeature 拉全量的出口。教程用公开数据,流程一点不少。

    若服务器上曾经发过敏感图层:在后台删除工作区/图层,并确认 REST 与 WFS Capabilities 里已无对应名称;需要更稳可轮换管理员密码、限制安全组来源 IP。


    五、验收清单

    • geoserver 容器 Up,:8082/geoserver/web/ 可开
    • 工作区 demo,图层 countries
    • WFS hits 约为 177
    • QGIS / 浏览器能出图
    • 默认管理员密码已改
    • 博客与截图中无客户地名、文号、内部路径

    六、收束

    装 GeoServer 是运维题,发 WFS 是数据题。Grok Bot 适合把「起容器 → 打包公开样例 → REST 发布 → GetFeature 验收」串成一次对话;写文章时用公开数据,既讲清步骤,也不踩保密红线。

    下一步常见:PostGIS 动态库、Nginx + HTTPS、WMS 样式。需要可再开一篇。

    赞(0)
    未经允许不得转载:171主机测评 » 用 Grok Bot 在腾讯云装 GeoServer,并把公开样例发成 WFS,秒发100个服务
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址