25次发布
0.0.25 | 2023年1月11日 |
---|---|
0.0.24 | 2022年12月23日 |
0.0.22 | 2022年2月17日 |
0.0.20 | 2021年11月22日 |
0.0.4 | 2018年7月17日 |
#96 in 地理空间
56 每月下载量
195KB
4.5K SLoC
geoq
Geoq 是一个用于处理地理空间数据的命令行工具。
它将常见的 GIS 序列化格式与用于在地图上操作和可视化数据的实用程序结合起来。
例如
# Print the geometry and the set of level 2 geohashes which covers the given geometry
$ echo '{"type":"Polygon","coordinates":[[[-34,38],[-37,32],[-23,33],[-34,38]]]}' | geoq gh covering 2 -o
{"type":"Polygon","coordinates":[[[30,10],[40,40],[20,40],[10,20],[30,10]]]}
eq
en
em
ej
# Feed that output into a map on geojson.io
$ echo '{"type":"Polygon","coordinates":[[[-34,38],[-37,32],[-23,33],[-34,38]]]}' | geoq gh covering 2 -o | geoq map
请参阅 手册 获取更多示例和可用命令。
安装
Geoq 通过 cargo
(Rust 包管理器)安装,并需要 nightly
rust。
如果您已设置好所有这些,只需运行 cargo install geoq
即可。
安装 Rust 和 Cargo 工具链
curl https://sh.rustup.rs -sSf | sh
rustup toolchain install nightly
rustup default nightly
cargo install geoq
您还需要将 Cargo 的 bin
目录添加到您的路径
# e.g. in your ~/.bash_profile or other shell profile
export PATH="$HOME/.cargo/bin:$PATH"
更新现有安装
要从 crates.io 拉取并安装新版本,请运行
cargo install geoq --force
支持输入格式
Geoq 将自动检测以下 GIS 输入格式
- 逗号分隔的经纬度:
34.0,-118.0
- Geohashes(32进制):
9q5
- WKT:
POINT (-118.0, 34.0)
- GeoJSON:
{"type": "Point", "coordinates": [-118.0, 34.0]}
- 十六进制格式的H3单元:
8c274996e1683ff
每行一个要素,每行一个要素
Geoq按行处理文本输入,并期望输入不要跨越多行。
这有时会导致问题,尤其是在处理GeoJSON时,因为许多JSON处理工具都喜欢以多行格式输出格式化的JSON。
解决格式化GeoJSON问题的方法之一是使用jq工具
echo '{
"type": "Point",
"coordinates": [30, 10]
}
' | jq -c . | geoq map
命令
使用geoq --help
或geoq <subcommand> --help
查看有关这些命令的详细信息
bbox
- 为几何体或几何体流提供边界框centroid
- 获取几何体的质心filter
- 空间谓词过滤intersects
- 选择与给定查询几何体相交的要素contains
- 选择被给定查询几何体包含的要素
gh
- 地理哈希子命令children
- 获取地理哈希的子项covering
- 输出“覆盖”几何体的地理哈希neighbors
- 获取地理哈希的邻居point
- 输出给定经纬度的32进制地理哈希
gj
- GeoJSON子命令f
- 将几何体输出为GeoJSON要素geom
- 将几何体输出为GeoJSON几何体fc
- 将所有输入几何体收集到GeoJSON要素集中
json
- JSON -> GeoJSON强制转换munge
- 尝试将任意JSON转换为GeoJSON要素。
map
- 使用geojson.io进行可视化measure
- 测量子命令distance
- 测量要素之间的距离coord-count
- 给出几何体中的顶点数
read
- 调试/格式验证shp
- 将shapefile转换为GeoJSONsimplify
- 简化几何体,可以是固定阈值或迭代到目标顶点数whereami
- 输出基于IP地理位置的当前经纬度作为GeoJSONwkt
- 将几何体输出为WKTfgb
- 使用flatgeobufwrite
- 将GeoJSON行写入STDIN生成flatgeobuf文件read
- 读取flatgeobuf文件到GeoJSON,可选的边界框过滤器
h3
- 使用H3空间网格系统children
- 获取h3单元格的子项covering
- 为几何体生成一组H3单元格。from-str
- 将h3十六进制字符串ID转换为64位数字IDgrid-disk
- 获取给定半径范围内的磁盘hierarchy
- 对于给定点输出所有 h3 单元,从 res 0 到 15parent
- 获取单元的父单元(或祖先单元)point
- 获取点的 H3 单元resolution
- 获取 H3 单元的分辨率to-str
- 将 64 位数值 h3 索引转换为十六进制字符串表示形式
请参阅 手册 获取更多示例和可用命令。
开发
运行测试
cargo test
构建 / 发布
cargo publish
git tag release/<VERSION>
git push origin release/<VERSION>
依赖项
~29–42MB
~733K SLoC