1

I'm currently working on a project that involves the creation of vector tiles from geojson files. These vector tiles are then displayed using Mapbox GL JS.

Recently, we've ran into an issue where some features appears to be dropped in some of the tiles and not in others.

You can see the clipping ocurring here:

You can see the clipping occurring here

Compared to on-the-fly geojson slicing:

enter image description here

To generate the tiles, we're using:

https://github.com/mapbox/mapbox-tile-copy

Which generates and syncs them directly to an s3 bucket.

I'm curious if anyone has run into a similar issue and might be able to point me in the right direction.

Here is an example script I've used to reproduce the issue:

var mbTileCopy = require('mapbox-tile-copy');
var file = './6528b73b07ea6ddd2709e279c0f72ca8';
var uri = 's3://test/test_tiles_4/{z}/{x}/{y}.pbf?timeout=10000';

mbTileCopy(file, uri, {
  minzoom: 8,
  maxzoom: 18,
  retry: 3
}, function(err) {
  console.log(err);
});

And a copy of one of the geojson files that it is occurring with:

https://www.dropbox.com/s/4icn8n6cgljgeu3/6528b73b07ea6ddd2709e279c0f72ca8-test?dl=0

I've tried rendering the tiles using a couple different solutions, and it definitely appears to be related to how the tiles are being generated.

1 Answer 1

2

For anyone running into a similar issue with Mapnik Vector Tile, I managed to figure out what the problem was. There appears to be a bug in the support of GeometryCollection feature types that causes features to not render across tile boundaries.

A work around is to flatten any GeometryCollection types in your geojson. To confirm, I used https://github.com/node-geojson/geojson-flatten to flatten the data before processing and the clipping stopped:

no clipping

I'll be submitting a test case to get the bug looked at.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.