Valhalla 是一个开源的 路线规划(Routing Engine)引擎,主要用于基于 OpenStreetMap(OSM)数据进行路径计算,类似商业地图里的“驾车导航算法服务”。

  1. 创建相关目录

    mkdir -p /var/www/html/osm/valhalla && cd /var/www/html/osm/valhalla && mkdir osm tiles config && cp ../china-latest.osm.pbf osm
    
    valhalla 目录结构
    ├── osm
    │ └── china-latest.osm.pbf
    ├── tiles
    └── config
  2. 编辑docker-compose.yml内容如下:

    services:
    
      valhalla:
        image: valhalla/valhalla:run-latest
        container_name: valhalla
    
        ports:
          - "9083:8002"
    
        volumes:
          - ./osm:/osm
          - ./tiles:/tiles
          - ./config:/config
    
        environment:
          - build_elevation=True
          - use_tiles_ignore_pbf=True
    
        command:
          - /bin/bash
          - -c
          - |
            valhalla_build_config \
            --mjolnir-tile-dir /tiles \
            --mjolnir-tile-extract /tiles/valhalla_tiles.tar \
            > /config/valhalla.json
    
            valhalla_build_tiles \
            -c /config/valhalla.json \
            /osm/china-latest.osm.pbf
    
            valhalla_build_extract \
            -c /config/valhalla.json \
            -v
    
            valhalla_service \
            /config/valhalla.json \
            1
    
    
  3. 第一次启动(解析、导入及创建数据等操作下载需要很久)

    docker compose up -d
    
  4. 测试

    http://你的ip:9083/status