17 个版本
0.1.16 | 2024 年 8 月 7 日 |
---|---|
0.1.15 | 2024 年 8 月 7 日 |
0.1.14 | 2024 年 7 月 13 日 |
0.1.13 | 2024 年 3 月 20 日 |
0.1.1 | 2023 年 8 月 17 日 |
#54 在 地理空间
480 每月下载量
265KB
2K SLoC
MapVas
一个可以显示带有绘图功能的 OSM 瓦片地图的程序。仓库包含两个二进制文件,
- mapvas:地图窗口
- mapcat:一个在地图上绘制多边形的命令行工具,相当于 cat。
设置
确保您已安装了 Rust 夜间构建工具链。
手动安装
- 克隆此仓库。
cdmapvas ; cargoinstall --path . --locked
通过 cargo 从 crates.io
cargo安装 mapvas --locked
用法
mapvas
启动 mapvas
,将出现一个地图窗口。
功能 | 描述 |
---|---|
缩放 | 使用鼠标滚轮或 +/- 键进行缩放 |
聚焦到绘制的元素 | 使用 f 键将绘制的元素居中 |
移动 | 使用鼠标左键拖动或箭头键 |
粘贴 | 按 v 键将剪贴板内容粘贴到 grep 解析器中 |
元素信息 | 在带标签的元素附近右键单击将显示标签。L 将使用当前鼠标位置为 macOS 用户设置。 |
截图 | 按 S 键将当前显示区域截图 |
mapcat
Mapcat 目前仅从 stdin 读取输入,逐行读取并将其通过管道传递。它使用各种 解析器。然后,它在 mapvas 的单个实例上显示解析结果,如果未运行,则启动 mapvas。
Grep(默认)
此解析器在行中搜索纬度和经度的浮点坐标。此外,它支持颜色和多边形的填充。
输入可以来自管道或通过文件读取。
mapcat <file_with_coordinates>
示例
- 在柏林亚历山大广场绘制一个点
echo "52.521853, 13.413015" | mapcat
- 在柏林和科隆之间绘制一条线,并在科隆和阿姆斯特丹之间绘制一条红色线
echo "50.942878, 6.957936 52.521853, 13.413015 green\n 50.942878, 6.957936 52.373520, 4.899766 red" | mapcat
- 绘制一条从科隆到柏林再到阿姆斯特丹的黄色折线
echo "50.942878, 6.957936 random garbage words 52.521853, 13.413015 yellow spaces after the coordinate-comma is not important: 52.373520,4.899766" | mapcat
- 绘制一个蓝色透明填充的多边形科隆-柏林-阿姆斯特丹,注意填充(“透明”或“实心”)
echo "50.942878, 6.957936 52.521853, 13.413015 52.373520,4.899766 blue transparent" | mapcat
填充折线会导致其绘制为闭合的多边形。
- 使用 -i 参数反转纬度和经度的顺序
echo "13.413015, 52.521853" | mapcat -i
- 清除地图上的所有元素。
echo "clear" | mapcat
使用 -r 参数在绘制新元素之前清除地图。
echo "52.5,12.5" | mapcat -r
- --label-pattern (-l) 定义标签模式。当在地图上右键点击时显示近标签。标签通过 c 键复制(显示时)。标签模式需要恰好有一个捕获组。默认模式为
"(.*)"
,它会捕获所有内容。
echo "52.4,12.4" | mapcat -l "(.*)"
-
--focus (-f) 放大并平移以显示地图上的所有元素。
-
--screenshot <file.png>
对地图进行截图。如果 mapvas 还未运行,可能需要与-f
结合使用。
随机(用于性能测试)
绘制给定长度的随机折线。以下命令绘制由 20000 条长度在 1 到 10 之间的随机折线组成的随机漫步。
echo "20000" | mapcat -p random
TTJson
从 TomTom 路由 API 绘制路线或范围。
curl 'https://api.tomtom.com/routing/1...' | mapcat -p ttjson -c green
高级用法
离线使用
为了为未来的运行缓存瓦片图像,请将环境变量 TILECACHE
设置为现有目录。
mkdir ~/.tilecache
export TILECACHE=~/.tilecache
不同的地图瓦片 URL
要使用与 [openstreetmap] 不同的提供商的瓦片,可以设置模板 URL。URL 必须包含 {zoom}
、{x}
和 {y}
。瓦片提供商应返回大小为 512x512 像素的瓦片,并在 伪球面墨卡托投影 中。示例
export MAPVAS_TILE_URL='https://tile.openstreetmap.org/{zoom}/{x}/{y}.png'
export MAPVAS_TILE_URL='https://api.tomtom.com/map/1/tile/basic/main/{zoom}/{x}/{y}.png?tileSize=512&key=***'
export MAPVAS_TILE_URL='https://maps.hereapi.com/v3/background/mc/{zoom}/{x}/{y}/png8?size=512&apiKey=***'
依赖项
~37–56MB
~1M SLoC