标签: tippecanoe

Tippecanoe 生成的 pbf 存储在 s3 上并在 mapbox-gl 上可视化

我正在开发这个项目,我需要使用tippecanoe生成protobuf文件,将它们存储在s3存储桶上并使用mapbox-gl将其可视化。
我使用 -e 选项生成矢量切片以写入我选择的文件夹,并--no-tile-size-limit避免--no-tile-compression数据预期方式出现任何差异。然后我将所有这些文件上传到 s3 存储桶。然后,我尝试通过修改https://docs.mapbox.com/mapbox-gl-js/example/third-party/
上的代码来可视化这一点。我的代码是:

var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/light-v10',
    zoom: 12,
    center: [-77,38]
});
map.on('load', function() {
    map.addLayer({
        "id": "test",
        "type": "circle",
        "source": {
            "type": "vector",
            "tiles": ["<link_to_my_cloudfront>/{z}/{x}/{y}.pbf"],
            "maxzoom": 11
        },
        "source-layer": "trees",
        "paint": {
            "circle-radius": 3,
            "circle-color": "#000000",
            "circle-stroke-width": 1
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我可以从 Tippecanoe 生成的元数据文件中确认该 ID 与我这里的 ID 匹配。
问题是当我加载地图时。对 pbf 文件的请求的响应是 200,content-typeapplication/x-protobuf这些点没有显示在地图上。我是否使用了一些不正确的选项,或者只是不兼容。我很难相信是后者,因为 Tippecanoe 和 Mapbox-gl 都是由 Mapbox 开发的,并且众所周知它们非常强大。

mapbox-gl mapbox-gl-js tippecanoe

5
推荐指数
1
解决办法
1459
查看次数

使用 Tippecanoe 生成的 mbtile 中的坐标不正确

mbtiles使用 Tippecanoe 生成了一个文件,仅使用-zg--drop-densest-as-needed作为额外参数。我将文件上传到 Mapbox Studio,无论是在 Studio 中还是通过移动应用程序加载图块时,一切都运行良好。

然后我尝试使用 Go 中的一个非常基本的 HTTP 服务器来自托管这些图块。图块从 SQLite 转移到 PostgreSQL 数据库(原因是 Go + PSQL 是应用程序的现有堆栈)。

由于某种原因,这些功能会根据缩放级别而变化。在级别 1 上,本应位于美国的数据位于南极洲,在缩放级别 2 上,数据位于智利海岸附近,等等。唯一正常工作的是级别 0,因为只有一个图块。

我检查了在旧金山缩放级别 11 时 Mapbox 请求的图块:第 327 列,第 791 行。文件中不存在此行/列组合的图块,.mbtiles尽管那里有数据。

除了使用 z/x/y 在数据库中查找 mbtile 之外,还需要对它们执行其他操作吗?或者也许需要在应用程序端配置一些东西?

服务器代码:

row := db.QueryRow(`
    SELECT tile_data FROM tiles
    WHERE
        zoom_level = $1
        AND tile_column = $2
        AND tile_row = $3
    `,
    z, x, y,
)
Run Code Online (Sandbox Code Playgroud)

在安卓上:

map.addSource(
        VectorSource(
                "tiles",
                TileSet("2.2.0", "http://my.local.server:4000/tiles/{z}/{x}/{y}.mvt?key=2448A697EACDDC41432AAD9A1833E")
        ) …
Run Code Online (Sandbox Code Playgroud)

mapbox mbtiles tippecanoe

1
推荐指数
1
解决办法
1462
查看次数

标签 统计

tippecanoe ×2

mapbox ×1

mapbox-gl ×1

mapbox-gl-js ×1

mbtiles ×1