#瓦片 #地图 #栅格 #地理

app map-engine-server

一个HTTP地图瓦片服务器

1个不稳定版本

0.1.0 2022年1月12日

768HTTP服务器

MIT 许可证

7.5MB
3K SLoC

map-engine-server

Gitlab pipeline status Gitlab code coverage Crates.io Documentation

一个HTTP地图瓦片服务器。

它按照XYZ方案提供瓦片(例如 http://{host}/{map_name}/{z}/{x}/{y}.{ext})。

源文件应在如下的json配置文件中定义

[
    {
        "name": "chile_optimised",
        "path": "/path/to/file.tif",
        "style": {
            "name": "viridis"
            "vmin": 0.0,
            "vmax": 27412.0
            "bands": [1],
        },
    }
]

应在运行服务器时作为参数传递

map-engine-server --config config_file.json

支持的样式

您可以根据要可视化的内容以及需要多少自定义来定义不同的样式。

RGBA颜色可以以多种方式指定。以下是一些黑色示例

  • 作为范围0.0..=1.0的组件:[0.0, 0.0, 0.0, 1.0]
  • 作为范围0..=255的组件:[0, 0, 0, 255]
  • 作为十六进制三元组 + 不透明度,多种格式
    • "#000000ff". # 是可选的。
    • "000000". 由于缺少不透明度,我们假设 ff
    • "000000FF". 我们在这里明确设置了不透明度。
    • "000000ff". 小写字母也是有效的。

使用命名调色板

可用选项是map_engine::cmap模块中提供的函数名称

目前,此选项只能用于可视化单个连续波段。最终我们将添加更多调色板,包括连续和离散的。

"style": {
    "name": "viridis"
    "vmin": 0.0,
    "vmax": 100.0
    "bands": [1]
}

使用自定义等间隔颜色为单个连续波段着色

将0.0到100.0之间的像素映射到红到蓝的渐变

"style": {
    "colours": [
        "FF0000",
        [0, 0, 255, 255]
    ],
    "vmin": 0.0,
    "vmax": 100.0
    "bands": [1]
}

使用自定义断点为单个连续波段着色

将0.0到100.0之间的像素映射到红到蓝的渐变,但紫色偏向红色

"style": {
    "colours": [
        [0.0, "FF0000"],
        [25.0, [127, 0, 127, 255]],
        [100.0, "0000FF"]
    ],
    "bands": [1]
}

单个离散波段的颜色

将1到5之间的像素映射到不同的颜色。未定义的像素值将完全透明

"style": {
    "colours": [
        [1, "#AA0000"],
        [2, "0000ff"],
        [3, [0.0, 0.5, 0.0, 1.0]],
        [4, [255, 255, 0, 255]],
        [5, "0000ff66"]
    ],
    "bands": [1]
}

多个连续波段的颜色复合

假彩色 Landsat-8 复合

"style": {
      "colours": [
          [0.0261112, 0.035925, 0.035925],
          [0.312009, 0.125154, 0.121313]
      ],
      "bands": [5, 4, 3]
}

预览瓦片

当您启动瓦片服务器时,您应该可以使用类似这样的URL请求单个瓦片: https://127.0.0.1:8080/{map_name}/{z}/{x}/{y}.png。我们还提供一张可以在其中预览瓦片的网络地图。您可以通过 https://127.0.0.1:8080/{map_name} 访问预览器。

A screenshot of the map previewer generated with MapEngine

依赖项

~26–41MB
~694K SLoC