#openstreetmap #map #drawing

bin+lib mapvas

具有绘图功能的地图查看器

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地理空间

Download history 9/week @ 2024-07-01 125/week @ 2024-07-08 18/week @ 2024-07-15 154/week @ 2024-07-29 235/week @ 2024-08-05

480 每月下载量

MIT/Apache

265KB
2K SLoC

MapVas

一个可以显示带有绘图功能的 OSM 瓦片地图的程序。仓库包含两个二进制文件,

  • mapvas:地图窗口
  • mapcat:一个在地图上绘制多边形的命令行工具,相当于 cat

设置

确保您已安装了 Rust 夜间构建工具链。

手动安装

  • 克隆此仓库。
  • cdmapvas ; cargoinstall --path . --locked

通过 cargo 从 crates.io

  • cargo安装 mapvas --locked

用法

mapvas

启动 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