New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vector Tile Support #5376

Merged
merged 37 commits into from Mar 27, 2018

Conversation

Projects
None yet
6 participants
@sdlime
Member

sdlime commented Jan 24, 2017

Based on Thomas' vector-tiles branch. Fixed an alignment issue, added integration with mode=tile and updated to version 2.1 or the spec - basically switched out the .proto file. Tested against a couple of the Leaflet mvt plugins. --Steve

TODO:

  • Fix buffering issues in tile mode
  • Add autotests
  • Create documentation page
  • Create RFC
mapmvt.c Outdated
VectorTile__Tile mvt_tile = VECTOR_TILE__TILE__INIT;
mvt_tile.layers = msSmallCalloc(map->numlayers,sizeof(VectorTile__Tile__Layer*));

This comment has been minimized.

@tbonfort

tbonfort Jan 24, 2017

Member

@sdlime, I see why you were getting alignment issues. This block of code needs to be kept, however the query.rect should be extended before the query, as is done in the WFS part: 032e5d3#diff-8b3f151aa0bfca8681cd277ced6c85cfR2619 . I know this isn't clean, but the buffering logic (similar to metabuffering when tiling) is essential IIRC for correct rendering.

@sdlime sdlime added this to the 7.2 Release milestone Jul 19, 2017

@sid-kap

This comment has been minimized.

sid-kap commented Jan 2, 2018

Hi! I was looking into MapServer and might be interested in using this feature. Is this still being developed, or has the PR been abandoned?

@sdlime

This comment has been minimized.

Member

sdlime commented Jan 28, 2018

Hi @sid-kap... The pull-request has not been abandoned. Just trying to get it merged. --Steve

@sdlime

This comment has been minimized.

Member

sdlime commented Jan 28, 2018

@rouault, @tbonfort, @jmckenna: the tests are failing because the protobuf output format is now appearing in a bunch of get capabilities output as a supported format (e.g. application/x-protobuf�). I can just fix all those results -- or should would make that an optional format?

@rouault

This comment has been minimized.

Contributor

rouault commented Jan 28, 2018

I don't think there are more reasons to make it optional than the other formats

sdlime added some commits Feb 3, 2018

Updated a few test results to account for vector tiles. Let's see if …
…that works and then we'll take care of the others.
@itbeyond

This comment has been minimized.

itbeyond commented Feb 15, 2018

I am really keen to get this running as soon as possible and have a project just waiting for this functionality. I am not sure if I can help but if there is something I can do to help get this functionality running I am happy to put in some time/effort.

@sdlime

This comment has been minimized.

Member

sdlime commented Feb 21, 2018

@rouault where the integration tests are crapping out doesn't look to be failing because my pull request (it's generating a PNG), is there a way to examine the Travis or AppVeyor output files? --Steve

@rouault

This comment has been minimized.

Contributor

rouault commented Feb 21, 2018

@sdlime I'm not aware of a way of extracting the files from Travis/AppVeyor. I'd just suggest that you run msautotest from Vagrant, which uses the same library version as Travis. That's what I do usually

@sdlime

This comment has been minimized.

Member

sdlime commented Feb 21, 2018

@rouault what version of vagrant and virtual box are you using? Stefan's docs reference versions that are a tad old.

@rouault

This comment has been minimized.

Contributor

rouault commented Feb 21, 2018

The ones of Ubuntu 16.04: vagrant 1.8.1 + virtualbox 5.0.40. But the versions of ubuntu 14.04 also worked

@sdlime

This comment has been minimized.

Member

sdlime commented Feb 21, 2018

@rouault, a local vagrant up dies since it can't find protobufc yet Travis seems to have that installed. Do you know where to affect that? --Steve

@rouault

This comment has been minimized.

Contributor

rouault commented Feb 21, 2018

@sdlime In scripts/vagrant/packages.sh, add libprotobuf-dev or whatever the package is named to the apt-get install final line

@sdlime sdlime merged commit 51416a6 into mapserver:master Mar 27, 2018

1 of 2 checks passed

continuous-integration/appveyor/pr AppVeyor build failed
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

rouault added a commit to rouault/mapserver that referenced this pull request Mar 27, 2018

rouault added a commit that referenced this pull request Mar 27, 2018

Merge pull request #5574 from rouault/fix_win32_build_with_protobuf
Restore CMakeList.txt to its state before #5376 merge, and remerge select protobuf bits

rouault added a commit to rouault/mapserver that referenced this pull request Mar 27, 2018

@itbeyond

This comment has been minimized.

itbeyond commented Mar 29, 2018

Compiled on Windows X64 platform and can confirm it is all working - there are some issues around Windows support for protobuf-c however I found a precompiled Windows binary that seems to work (See details here: protobuf-c/protobuf-c#168 - download provided at the end of the comments).

I have tested it with the mvt-demo published by @sdlime and will now start working on my data and looking at mapscript operation. Thanks guys great work and perfect timing for getting this running.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment