Hotdata CLI 地理空间查询完全指南:PostGIS风格SQL玩转WKB几何数据

📅 发布时间:2026/10/11 20:41:37
Hotdata CLI 地理空间查询完全指南:PostGIS风格SQL玩转WKB几何数据
【免费下载链接】hotdata-cliCLI for Hotdata项目地址https://gitcode.com/gh_mirrors/ho/hotdata-cli点击查看免费下载想在命令行里做 GIS 分析却不想自己搭一套 PostGIS 环境️Hotdata CLI让你在熟悉的 SQL 里直接完成地理空间查询点是否在多边形内、两个位置相距多少米、哪些区域落在指定范围内——一条命令就能出结果。本文带你从安装到进阶把 WKB 几何数据玩明白。为什么选择 Hotdata CLI 做地理空间分析传统 GIS 栈QGIS PostGIS Postgres要装一堆组件而 Hotdata 把数据库、SQL 引擎、空间函数打包成一个命令行工具✅开箱即用用 PostgreSQL 方言的 SQL 查询空间数据无需部署数据库✅PostGIS 风格函数ST_Distance、ST_Within、ST_Area等熟悉的ST_*函数直接可用✅零配置搜索与导入从文件、S3、API 拉数据入库随查随用完整背景见 README.md。一分钟安装 Hotdata CLIbrew install hotdata-dev/tap/cli # macOS / LinuxHomebrew没有 Homebrew 也没关系可以直接从源码构建git clone https://gitcode.com/gh_mirrors/ho/hotdata-cli cd hotdata-cli cargo install --path . # 需要 Rust 环境登录后建库、灌数据三步完成准备工作hotdata auth login # 浏览器登录 hotdata databases create --catalog geo hotdata databases load --catalog geo --table places --url https://example.com/places.parquet 表名查询一律写成三段式catalog.schema.table例如geo.public.places。认识 WKB 几何数据两类关键列地理空间表通常携带两个特殊列在 skills/hotdata/subskills/geospatial/SKILL.md 中有完整说明列名类型作用wkb_geometryBinaryWKB 编码的几何体点、多边形等空间计算的原料wkb_geometry_bboxStruct预计算的包围盒xmin/ymin/xmax/ymax经纬度两个使用要点解析任何空间函数之前先用ST_GeomFromWKB(wkb_geometry)把二进制解析成几何对象取包围盒Struct 字段必须用方括号访问wkb_geometry_bbox[xmin]✓点号写法 ✗。用hotdata databases tables show geo.public.places就能确认表里有没有这两列找Binary和Struct类型。ST_* 函数速查表四大类函数搞定一切Hotdata 支持一套 PostGIS 风格函数完整目录见 references/functions.md 构建几何函数说明示例ST_GeomFromWKB(col)解析 WKB 二进制列ST_GeomFromWKB(wkb_geometry)ST_GeomFromText(wkt)用 WKT 文本现场画几何ST_GeomFromText(POLYGON((...)))ST_MakePoint(lon, lat)快速造一个点ST_MakePoint(-122.27, 37.80) 查看几何函数返回ST_GeometryType类型名ST_Point、ST_Polygon…ST_X/ST_Y点的经度 / 纬度ST_Centroid质心点ST_AsText转成 WKT 文本方便导出查看 空间关系返回布尔值ST_Within在内部、ST_Contains包含、ST_Intersects相交、ST_Overlaps重叠、ST_Touches仅边界相接、ST_Disjoint不相交等——判断谁在谁里面、谁挨着谁全靠它们。 测量与加工函数说明ST_Distance(a, b)两几何间距离十进制度ST_Area(geom)面积十进制的平方量级参考ST_Simplify(geom, 容差)Douglas–Peucker 简化容差单位是度ST_OrientedEnvelope(geom)最小旋转包围盒ST_ConvexHull(geom)凸包多边形实战5 个最常用的地理空间查询① 先探路表里都是什么几何类型SELECT ST_GeometryType(ST_GeomFromWKB(wkb_geometry)) AS geom_type, COUNT(*) FROM geo.public.places WHERE wkb_geometry IS NOT NULL GROUP BY 1② 范围过滤只留某个矩形框内的数据没有ST_MakeEnvelope用ST_GeomFromText手画一个闭合矩形首尾顶点要重复WHERE ST_Within( ST_Centroid(ST_GeomFromWKB(wkb_geometry)), ST_GeomFromText(POLYGON((-122.5 37.5, -122.0 37.5, -122.0 38.0, -122.5 38.0, -122.5 37.5))) )大表提速技巧直接过滤预计算包围盒跳过 WKB 解析快得多WHERE wkb_geometry_bbox[xmin] -122.5 AND wkb_geometry_bbox[xmax] -122.0 AND wkb_geometry_bbox[ymin] 37.5 AND wkb_geometry_bbox[ymax] 38.0③ 点在多边形内这个坐标落在哪个区域SELECT * FROM geo.public.regions WHERE ST_Contains(ST_GeomFromWKB(wkb_geometry), ST_MakePoint(-122.27, 37.80))④ 最近邻离某点最近的 10 个设施SELECT id, ST_Distance(ST_Centroid(ST_GeomFromWKB(wkb_geometry)), ST_MakePoint(-122.27, 37.80)) * 111000 AS dist_meters FROM geo.public.places WHERE wkb_geometry IS NOT NULL ORDER BY dist_meters LIMIT 10⑤ 面积与质心导出SELECT id, ST_Area(ST_GeomFromWKB(wkb_geometry)) * 111000 * 111000 AS area_sqm, ST_X(ST_Centroid(ST_GeomFromWKB(wkb_geometry))) AS lon, ST_Y(ST_Centroid(ST_GeomFromWKB(wkb_geometry))) AS lat FROM geo.public.places所有查询都通过同一条命令执行hotdata query 你的SQL -o table⚠️ 重要结果单位是度换算公式请收好Hotdata 没有::geography类型测量结果一律是十进制度约按 37°N 纬度估算向两极误差会增大想要的单位换算米距离度 × 111,000公里度 × 111英里度 × 69.0平方米面积度² × 111,000²英亩面积度² × 111,000² ÷ 4,047 面积结果是量级参考而非精确值误差随纬度平方放大。需要精确面积时请导出 WKT 后在外部投影再算。不支持的函数都有替代方案不支持替代写法ST_Buffer/ST_DWithinST_WithinST_GeomFromText(POLYGON(...))手画范围ST_MakeEnvelope同上POLYGON((minLon minLat, maxLon minLat, maxLon maxLat, minLon maxLat, minLon minLat))ST_AsGeoJSON用ST_AsText拿 WKT客户端再解析ST_EnvelopeST_OrientedEnvelopeST_Transform/ 投影转换客户端导出后处理新表探索工作流4 步上手任何空间表找几何列——hotdata databases tables listtables show定位BinaryWKB/Structbbox列看类型分布—— 跑上面①的查询摸清覆盖范围—— 对 bbox 取MIN/MAX四个角得到整张表的经纬度边界抽样看结构—— 用ST_AsText(...) LIMIT 3看看 WKT 长什么样小结Hotdata CLI 用PostGIS 风格的 SQL把地理空间查询装进了终端ST_GeomFromWKB解析数据、ST_Within/ST_Contains判关系、ST_Distance量距离再乘上 111,000 就是米。配合预计算包围盒wkb_geometry_bbox还能在大表上飞快过滤。更多分析技巧OLAP、全文/向量搜索可继续查看 skills/hotdata/SKILL.md 中捆绑的子技能。现在打开终端跑第一条hotdata query吧赞分享【免费下载链接】hotdata-cliCLI for Hotdata项目地址https://gitcode.com/gh_mirrors/ho/hotdata-cli点击查看免费下载相关推荐DeepSeekMoE快速入门指南如何在单张40GB GPU上部署16B参数模型DeepSeekMoE快速入门指南如何在单张40GB GPU上部署16B参数模型 想要在有限的GPU资源上运行大型语言模型吗DeepSeekMoE 16B模人工智能大模型基础模型微调DeepSeekPostgreSQL地理空间查询PostGIS高级空间分析功能终极指南PostgreSQL地理空间查询PostGIS高级空间分析功能终极指南 PostgreSQL作为功能最强大的开源关系型数据库通过PostGIS扩展提供了专业文档知识库数据库Philoagents-course核心技术揭秘RAG与长期记忆如何塑造智能对话Philoagents course核心技术揭秘RAG与长期记忆如何塑造智能对话 Philoagents course是一个将哲学与AI智能体相结合的创新项目创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考