systemapic / pile

PostGIS tile server
0 stars 2 forks source link

tiled rasters not rendered properly #31

Closed knutole closed 8 years ago

knutole commented 8 years ago

Rasters are tiled on import with raster2pgsql -t $TILESIZE ..., but are not rendered properly.

This is likely due to a Mapnik bug: https://github.com/mapnik/mapnik/issues/2375.

Raster displays properly if tiles are concatted in PostGIS, ie. likely not a problem with the raster2pgsql tiling.

Screendumps

Setting $TILESIZE to "auto" yields this result: screen shot 2016-02-26 at 3 12 10 pm

Setting $TILESIZE to "128x128" yields this: screen shot 2016-02-26 at 3 16 04 pm

knutole commented 8 years ago

Red lines are slippy tile boundaries. screen shot 2016-02-26 at 5 30 13 pm

knutole commented 8 years ago

With $TILESIZE of "64x64". Interesting how the patterns are different. screen shot 2016-02-26 at 5 49 10 pm

knutole commented 8 years ago

screen shot 2016-02-26 at 5 51 07 pm screen shot 2016-02-26 at 5 50 31 pm screen shot 2016-02-26 at 5 50 22 pm screen shot 2016-02-26 at 5 50 17 pm

knutole commented 8 years ago

@strk Whenever you have a moment: I can't seem to find the build changes for mapnik "preunion_raster" branch. Should I just download from https://github.com/strk/mapnik/tree/preunion_rasters with download-mapnik.sh script? (Did you change it back after building?) Want to build on my own server.

screen shot 2016-02-26 at 11 32 33 pm

knutole commented 8 years ago

Nevermind, found the mapnik-fork branch.

strk commented 8 years ago

This morning I'd look for a proper fix for mapnik, if there isn't any other urgency

knutole commented 8 years ago

@strk That's great, thanks. More moving today, unfortunately, so will be a bit offline.

strk commented 8 years ago

Forcing raster alignment with ST_Resample seems to fix the visible tile boundary for me. The upstream PR is here: https://github.com/mapnik/mapnik/pull/3348 It only works with "prescale_rasters" is on, which we want on anyway.. The mapnik-fork branch of dockers was updated to download mapnik from the pgraster-resample branch of my fork and its now building on mx and on my machine (where it wasn't yet tested with multiple raster kind).

knutole commented 8 years ago

Sorry to say I haven't been able to get this to work today. Have successfully built gis and pile images with your strk/mapnik fork (with ST_Resample). Also using pile with clip_raster and prescale_raster.

I'm indeed seeing ST_Resize in logs, however. Could this be because node-mapnik is using a different mapnik build?

pile_1        | PPSTIOGSZETTINGS! { user: 'systemapic',
pile_1        |   password: 'docker',
pile_1        |   host: 'postgis',
pile_1        |   srid: 3857,
pile_1        |   dbname: 'vkztdvcqkm',
pile_1        |   extent: undefined,
pile_1        |   geometry_field: 'rast',
pile_1        |   asynchronous_request: true,
pile_1        |   max_async_connection: 10,
pile_1        |   type: 'pgraster',
pile_1        |   clip_rasters: 'true',
pile_1        |   prescale_rasters: 'true',
pile_1        |   table: 'file_ywojcllfzvoswyyktqfq' }
postgis_1     | 2016-03-10 14:09:59 UTC  [11-229] DEBUG:  forked new backend, pid=188 socket=9
postgis_1     | 2016-03-10 14:09:59 UTC  [11-230] DEBUG:  server process (PID 188) exited with exit code 0
postgis_1     | 2016-03-10 14:09:59 UTC  [11-231] DEBUG:  forked new backend, pid=189 socket=9
postgis_1     | 2016-03-10 14:09:59 UTC [unknown] [189-1] systemapic@vkztdvcqkm DEBUG:  parse <unnamed>: SELECT ST_AsBinary(ST_Resize(ST_Clip("rast", ST_Expand(ST_SetSRID('BOX3D(1056665.479014276 8414188.073632199,1213208.512942318 8570731.107560243)'::box3d, 3857), greatest(abs(ST_ScaleX("rast")), abs(ST_ScaleY("rast"))))), least(abs(ST_ScaleX("rast"))::float8/305.748, 1.0), least(abs(ST_ScaleY("rast"))::float8/305.748, 1.0))) AS geom FROM file_ywojcllfzvoswyyktqfq WHERE "rast" && ST_SetSRID('BOX3D(1056665.479014276 8414188.073632199,1213208.512942318 8570731.107560243)'::box3d, 3857)
postgis_1     | 2016-03-10 14:09:59 UTC [unknown] [189-2] systemapic@vkztdvcqkm DEBUG:  bind <unnamed> to <unnamed>
postgis_1     | 2016-03-10 14:09:59 UTC  [11-232] DEBUG:  server process (PID 189) exited with exit code 0
pile_1        | rendered tile in  65 ms
knutole commented 8 years ago

Unfortuneately, building node-mapnik with npm install mapnik --build-from-source also fails:

root@4777fe979ba2 /s/dev# npm install mapnik --build-from-source

> mapnik@3.5.2 install /systemapic/dev/node_modules/mapnik
> node-pre-gyp install --fallback-to-build

make: Entering directory `/systemapic/dev/node_modules/mapnik/build'
  ACTION binding_gyp_make_vector_tile_target_generate_setting Release/obj/gen/mapnik_settings.js
  COPY /systemapic/dev/node_modules/mapnik/lib/binding/node-v11-linux-x64/mapnik_settings.js
  TOUCH Release/obj.target/make_vector_tile.stamp
  CXX(target) Release/obj.target/mapnik/src/mapnik_logger.o
  CXX(target) Release/obj.target/mapnik/src/node_mapnik.o
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:8:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:5,
                 from ../src/mapnik_vector_tile.hpp:11,
                 from ../src/node_mapnik.cpp:5:
../node_modules/protozero/include/protozero/pbf_reader.hpp: In constructor 'protozero::pbf_reader::pbf_reader(const char*, std::size_t)':
../node_modules/protozero/include/protozero/pbf_reader.hpp:841:62: warning: declaration of 'length' shadows a member of 'this' [-Wshadow]
 pbf_reader::pbf_reader(const char *data, std::size_t length) noexcept
                                                              ^
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:5:0,
                 from ../src/mapnik_vector_tile.hpp:11,
                 from ../src/node_mapnik.cpp:5:
../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp: In constructor 'mapnik::vector_tile_impl::tile::tile(const mapnik::box2d<double>&, uint32_t, int32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:43:9: warning: declaration of 'buffer_size' shadows a member of 'this' [-Wshadow]
         : buffer_(),
         ^
../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:43:9: warning: declaration of 'tile_size' shadows a member of 'this' [-Wshadow]
../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:43:9: warning: declaration of 'extent' shadows a member of 'this' [-Wshadow]
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_tile.ipp:3:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:208,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:5,
                 from ../src/mapnik_vector_tile.hpp:11,
                 from ../src/node_mapnik.cpp:5:
../node_modules/mapnik-vector-tile/src/vector_tile_layer.hpp: In member function 'uint32_t mapnik::vector_tile_impl::tile_layer::calc_extent(uint32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_layer.hpp:139:5: warning: declaration of 'layer_extent' shadows a member of 'this' [-Wshadow]
     {
     ^
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:208:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:5,
                 from ../src/mapnik_vector_tile.hpp:11,
                 from ../src/node_mapnik.cpp:5:
../node_modules/mapnik-vector-tile/src/vector_tile_tile.ipp: In member function 'bool mapnik::vector_tile_impl::tile::append_layer_buffer(const char*, std::size_t, const string&)':
../node_modules/mapnik-vector-tile/src/vector_tile_tile.ipp:51:113: warning: declaration of 'size' shadows a member of 'this' [-Wshadow]
 MAPNIK_VECTOR_INLINE bool tile::append_layer_buffer(const char * data, std::size_t size, std::string const& name)
                                                                                                                 ^
../node_modules/mapnik-vector-tile/src/vector_tile_tile.ipp:51:113: warning: declaration of 'data' shadows a member of 'this' [-Wshadow]
In file included from ../src/mapnik_vector_tile.hpp:11:0,
                 from ../src/node_mapnik.cpp:5:
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp: In constructor 'mapnik::vector_tile_impl::merc_tile::merc_tile(uint32_t, uint32_t, uint32_t, uint32_t, int32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:26:9: warning: declaration of 'buffer_size' shadows a member of 'this' [-Wshadow]
         : tile(merc_extent(tile_size, x, y, z), tile_size, buffer_size),
         ^
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:26:9: warning: declaration of 'tile_size' shadows a member of 'this' [-Wshadow]
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:26:9: warning: declaration of 'z' shadows a member of 'this' [-Wshadow]
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:26:9: warning: declaration of 'y' shadows a member of 'this' [-Wshadow]
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:26:9: warning: declaration of 'x' shadows a member of 'this' [-Wshadow]
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp: In member function 'void mapnik::vector_tile_impl::merc_tile::x(uint32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:48:5: warning: declaration of 'x' shadows a member of 'this' [-Wshadow]
     {
     ^
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp: In member function 'void mapnik::vector_tile_impl::merc_tile::y(uint32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:59:5: warning: declaration of 'y' shadows a member of 'this' [-Wshadow]
     {
     ^
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp: In member function 'void mapnik::vector_tile_impl::merc_tile::z(uint32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:70:5: warning: declaration of 'z' shadows a member of 'this' [-Wshadow]
     {
     ^
  CXX(target) Release/obj.target/mapnik/src/blend.o
  CXX(target) Release/obj.target/mapnik/src/mapnik_map.o
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:8:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:5,
                 from ../src/mapnik_vector_tile.hpp:11,
                 from ../src/mapnik_map.cpp:11:
../node_modules/protozero/include/protozero/pbf_reader.hpp: In constructor 'protozero::pbf_reader::pbf_reader(const char*, std::size_t)':
../node_modules/protozero/include/protozero/pbf_reader.hpp:841:62: warning: declaration of 'length' shadows a member of 'this' [-Wshadow]
 pbf_reader::pbf_reader(const char *data, std::size_t length) noexcept
                                                              ^
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:5:0,
                 from ../src/mapnik_vector_tile.hpp:11,
                 from ../src/mapnik_map.cpp:11:
../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp: In constructor 'mapnik::vector_tile_impl::tile::tile(const mapnik::box2d<double>&, uint32_t, int32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:43:9: warning: declaration of 'buffer_size' shadows a member of 'this' [-Wshadow]
         : buffer_(),
         ^
../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:43:9: warning: declaration of 'tile_size' shadows a member of 'this' [-Wshadow]
../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:43:9: warning: declaration of 'extent' shadows a member of 'this' [-Wshadow]
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_tile.ipp:3:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:208,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:5,
                 from ../src/mapnik_vector_tile.hpp:11,
                 from ../src/mapnik_map.cpp:11:
../node_modules/mapnik-vector-tile/src/vector_tile_layer.hpp: In member function 'uint32_t mapnik::vector_tile_impl::tile_layer::calc_extent(uint32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_layer.hpp:139:5: warning: declaration of 'layer_extent' shadows a member of 'this' [-Wshadow]
     {
     ^
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_tile.hpp:208:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:5,
                 from ../src/mapnik_vector_tile.hpp:11,
                 from ../src/mapnik_map.cpp:11:
../node_modules/mapnik-vector-tile/src/vector_tile_tile.ipp: In member function 'bool mapnik::vector_tile_impl::tile::append_layer_buffer(const char*, std::size_t, const string&)':
../node_modules/mapnik-vector-tile/src/vector_tile_tile.ipp:51:113: warning: declaration of 'size' shadows a member of 'this' [-Wshadow]
 MAPNIK_VECTOR_INLINE bool tile::append_layer_buffer(const char * data, std::size_t size, std::string const& name)
                                                                                                                 ^
../node_modules/mapnik-vector-tile/src/vector_tile_tile.ipp:51:113: warning: declaration of 'data' shadows a member of 'this' [-Wshadow]
In file included from ../src/mapnik_vector_tile.hpp:11:0,
                 from ../src/mapnik_map.cpp:11:
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp: In constructor 'mapnik::vector_tile_impl::merc_tile::merc_tile(uint32_t, uint32_t, uint32_t, uint32_t, int32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:26:9: warning: declaration of 'buffer_size' shadows a member of 'this' [-Wshadow]
         : tile(merc_extent(tile_size, x, y, z), tile_size, buffer_size),
         ^
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:26:9: warning: declaration of 'tile_size' shadows a member of 'this' [-Wshadow]
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:26:9: warning: declaration of 'z' shadows a member of 'this' [-Wshadow]
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:26:9: warning: declaration of 'y' shadows a member of 'this' [-Wshadow]
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:26:9: warning: declaration of 'x' shadows a member of 'this' [-Wshadow]
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp: In member function 'void mapnik::vector_tile_impl::merc_tile::x(uint32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:48:5: warning: declaration of 'x' shadows a member of 'this' [-Wshadow]
     {
     ^
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp: In member function 'void mapnik::vector_tile_impl::merc_tile::y(uint32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:59:5: warning: declaration of 'y' shadows a member of 'this' [-Wshadow]
     {
     ^
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp: In member function 'void mapnik::vector_tile_impl::merc_tile::z(uint32_t)':
../node_modules/mapnik-vector-tile/src/vector_tile_merc_tile.hpp:70:5: warning: declaration of 'z' shadows a member of 'this' [-Wshadow]
     {
     ^
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:12:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.hpp:99,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:6,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/local/include/mapnik/agg/agg_rendering_buffer.h: In constructor 'agg::row_accessor<T>::row_accessor(T*, unsigned int, unsigned int, int)':
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:45:75: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
         row_accessor(T* buf, unsigned width, unsigned height, int stride) :
                                                                           ^
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:45:75: warning: declaration of 'height' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:45:75: warning: declaration of 'width' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:45:75: warning: declaration of 'buf' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h: In member function 'void agg::row_accessor<T>::attach(T*, unsigned int, unsigned int, int)':
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:58:9: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
         {
         ^
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:58:9: warning: declaration of 'height' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:58:9: warning: declaration of 'width' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:58:9: warning: declaration of 'buf' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h: In member function 'void agg::row_accessor<T>::clear(T)':
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:117:22: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
             unsigned stride = stride_abs();
                      ^
/usr/local/include/mapnik/agg/agg_rendering_buffer.h: In constructor 'agg::row_ptr_cache<T>::row_ptr_cache(T*, unsigned int, unsigned int, int)':
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:158:76: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
         row_ptr_cache(T* buf, unsigned width, unsigned height, int stride) :
                                                                            ^
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:158:76: warning: declaration of 'height' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:158:76: warning: declaration of 'width' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:158:76: warning: declaration of 'buf' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h: In member function 'void agg::row_ptr_cache<T>::attach(T*, unsigned int, unsigned int, int)':
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:170:9: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
         {
         ^
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:170:9: warning: declaration of 'height' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:170:9: warning: declaration of 'width' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:170:9: warning: declaration of 'buf' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:180:16: warning: declaration of 'row_ptr' shadows a member of 'this' [-Wshadow]
             T* row_ptr = m_buf;
                ^
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:187:17: warning: declaration of 'rows' shadows a member of 'this' [-Wshadow]
             T** rows = &m_rows[0];
                 ^
/usr/local/include/mapnik/agg/agg_rendering_buffer.h: In member function 'void agg::row_ptr_cache<T>::clear(T)':
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:248:22: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
             unsigned stride = stride_abs();
                      ^
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:13:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.hpp:99,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:6,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/local/include/mapnik/agg/agg_pixfmt_rgba.h: In member function 'bool agg::pixfmt_alpha_blend_rgba<Blender, RenBuf, PixelT>::attach(PixFmt&, int, int, int, int)':
/usr/local/include/mapnik/agg/agg_pixfmt_rgba.h:2086:17: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
             int stride = pixf.stride();
                 ^
/usr/local/include/mapnik/agg/agg_pixfmt_rgba.h: In constructor 'agg::pixfmt_custom_blend_rgba<Blender, RenBuf>::pixfmt_custom_blend_rgba(agg::pixfmt_custom_blend_rgba<Blender, RenBuf>::rbuf_type&, unsigned int)':
/usr/local/include/mapnik/agg/agg_pixfmt_rgba.h:2729:74: warning: declaration of 'comp_op' shadows a member of 'this' [-Wshadow]
     explicit pixfmt_custom_blend_rgba(rbuf_type& rb, unsigned comp_op=3) :
                                                                          ^
/usr/local/include/mapnik/agg/agg_pixfmt_rgba.h: In member function 'bool agg::pixfmt_custom_blend_rgba<Blender, RenBuf>::attach(PixFmt&, int, int, int, int)':
/usr/local/include/mapnik/agg/agg_pixfmt_rgba.h:2742:17: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
             int stride = pixf.stride();
                 ^
In file included from /usr/local/include/mapnik/agg/agg_pixfmt_base.h:20:0,
                 from /usr/local/include/mapnik/agg/agg_pixfmt_gray.h:28,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:14,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.hpp:99,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:6,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/local/include/mapnik/agg/agg_color_gray.h: In member function 'agg::gray16::self_type& agg::gray16::demultiply()':
/usr/local/include/mapnik/agg/agg_color_gray.h:691:63: warning: enumeral and non-enumeral type in conditional expression [enabled by default]
                 v = value_type((v_ > base_mask) ? base_mask : v_);
                                                               ^
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:14:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.hpp:99,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:6,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/local/include/mapnik/agg/agg_pixfmt_gray.h: In member function 'bool agg::pixfmt_alpha_blend_gray<Blender, RenBuf, Step, Offset>::attach(PixFmt&, int, int, int, int)':
/usr/local/include/mapnik/agg/agg_pixfmt_gray.h:262:21: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
                 int stride = pixf.stride();
                     ^
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:15:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.hpp:99,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:6,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/local/include/mapnik/agg/agg_renderer_base.h: In constructor 'agg::renderer_base<PixelFormat>::renderer_base(agg::renderer_base<PixelFormat>::pixfmt_type&)':
/usr/local/include/mapnik/agg/agg_renderer_base.h:40:50: warning: declaration of 'ren' shadows a member of 'this' [-Wshadow]
         explicit renderer_base(pixfmt_type& ren) :
                                                  ^
/usr/local/include/mapnik/agg/agg_renderer_base.h: In member function 'void agg::renderer_base<PixelFormat>::attach(agg::renderer_base<PixelFormat>::pixfmt_type&)':
/usr/local/include/mapnik/agg/agg_renderer_base.h:45:9: warning: declaration of 'ren' shadows a member of 'this' [-Wshadow]
         {
         ^
../src/mapnik_map.cpp: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE Map::render(Nan::NAN_METHOD_ARGS_TYPE)':
../src/mapnik_map.cpp:1918:42: warning: comparison is always false due to limited range of data type [-Wtype-limits]
                 if (closure->fill_type < 0 || closure->fill_type >= mapnik::vector_tile_impl::polygon_fill_type_max)
                                          ^
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:12:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.hpp:99,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:6,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/local/include/mapnik/agg/agg_rendering_buffer.h: In instantiation of 'agg::row_ptr_cache<T>::row_ptr_cache(T*, unsigned int, unsigned int, int) [with T = unsigned char]':
../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:61:108:   required from here
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:158:9: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
         row_ptr_cache(T* buf, unsigned width, unsigned height, int stride) :
         ^
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:158:9: warning: declaration of 'height' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:158:9: warning: declaration of 'width' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:158:9: warning: declaration of 'buf' shadows a member of 'this' [-Wshadow]
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:15:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.hpp:99,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:6,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/local/include/mapnik/agg/agg_renderer_base.h: In instantiation of 'agg::renderer_base<PixelFormat>::renderer_base(agg::renderer_base<PixelFormat>::pixfmt_type&) [with PixelFormat = agg::pixfmt_alpha_blend_rgba<agg::blender_rgba_pre<agg::rgba8T<agg::linear>, agg::order_rgba>, agg::row_ptr_cache<unsigned char>, unsigned int>; agg::renderer_base<PixelFormat>::pixfmt_type = agg::pixfmt_alpha_blend_rgba<agg::blender_rgba_pre<agg::rgba8T<agg::linear>, agg::order_rgba>, agg::row_ptr_cache<unsigned char>, unsigned int>]':
../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:65:31:   required from here
/usr/local/include/mapnik/agg/agg_renderer_base.h:40:18: warning: declaration of 'ren' shadows a member of 'this' [-Wshadow]
         explicit renderer_base(pixfmt_type& ren) :
                  ^
/usr/local/include/mapnik/agg/agg_renderer_base.h: In instantiation of 'agg::renderer_base<PixelFormat>::renderer_base(agg::renderer_base<PixelFormat>::pixfmt_type&) [with PixelFormat = agg::pixfmt_alpha_blend_gray<agg::blender_gray<agg::gray8T<agg::linear> >, agg::row_ptr_cache<unsigned char> >; agg::renderer_base<PixelFormat>::pixfmt_type = agg::pixfmt_alpha_blend_gray<agg::blender_gray<agg::gray8T<agg::linear> >, agg::row_ptr_cache<unsigned char> >]':
../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:111:31:   required from here
/usr/local/include/mapnik/agg/agg_renderer_base.h:40:18: warning: declaration of 'ren' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_renderer_base.h: In instantiation of 'agg::renderer_base<PixelFormat>::renderer_base(agg::renderer_base<PixelFormat>::pixfmt_type&) [with PixelFormat = agg::pixfmt_alpha_blend_gray<agg::blender_gray<agg::gray16>, agg::row_ptr_cache<unsigned char> >; agg::renderer_base<PixelFormat>::pixfmt_type = agg::pixfmt_alpha_blend_gray<agg::blender_gray<agg::gray16>, agg::row_ptr_cache<unsigned char> >]':
../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:201:31:   required from here
/usr/local/include/mapnik/agg/agg_renderer_base.h:40:18: warning: declaration of 'ren' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_renderer_base.h: In instantiation of 'agg::renderer_base<PixelFormat>::renderer_base(agg::renderer_base<PixelFormat>::pixfmt_type&) [with PixelFormat = agg::pixfmt_alpha_blend_gray<agg::blender_gray<agg::gray32>, agg::row_ptr_cache<unsigned char> >; agg::renderer_base<PixelFormat>::pixfmt_type = agg::pixfmt_alpha_blend_gray<agg::blender_gray<agg::gray32>, agg::row_ptr_cache<unsigned char> >]':
../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:291:31:   required from here
/usr/local/include/mapnik/agg/agg_renderer_base.h:40:18: warning: declaration of 'ren' shadows a member of 'this' [-Wshadow]
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:12:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.hpp:99,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:6,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/local/include/mapnik/agg/agg_rendering_buffer.h: In instantiation of 'void agg::row_ptr_cache<T>::attach(T*, unsigned int, unsigned int, int) [with T = unsigned char]':
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:165:46:   required from 'agg::row_ptr_cache<T>::row_ptr_cache(T*, unsigned int, unsigned int, int) [with T = unsigned char]'
../node_modules/mapnik-vector-tile/src/vector_tile_raster_clipper.ipp:61:108:   required from here
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:169:14: warning: declaration of 'stride' shadows a member of 'this' [-Wshadow]
         void attach(T* buf, unsigned width, unsigned height, int stride)
              ^
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:169:14: warning: declaration of 'height' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:169:14: warning: declaration of 'width' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:169:14: warning: declaration of 'buf' shadows a member of 'this' [-Wshadow]
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:180:26: warning: declaration of 'row_ptr' shadows a member of 'this' [-Wshadow]
             T* row_ptr = m_buf;
                          ^
/usr/local/include/mapnik/agg/agg_rendering_buffer.h:187:33: warning: declaration of 'rows' shadows a member of 'this' [-Wshadow]
             T** rows = &m_rows[0];
                                 ^
In file included from /usr/include/boost/mpl/aux_/na_assert.hpp:23:0,
                 from /usr/include/boost/mpl/arg.hpp:25,
                 from /usr/include/boost/mpl/placeholders.hpp:24,
                 from /usr/include/boost/iterator/iterator_categories.hpp:17,
                 from /usr/include/boost/iterator/detail/facade_iterator_category.hpp:7,
                 from /usr/include/boost/iterator/iterator_facade.hpp:14,
                 from /usr/local/include/mapnik/feature_kv_iterator.hpp:33,
                 from /usr/local/include/mapnik/feature.hpp:34,
                 from /usr/local/include/mapnik/grid/grid_view.hpp:30,
                 from /usr/local/include/mapnik/grid/grid.hpp:30,
                 from ../src/mapnik_grid.hpp:12,
                 from ../src/mapnik_map.cpp:6:
/usr/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp: In instantiation of 'struct boost::geometry::dispatch::sectionalize<boost::geometry::multi_linestring_tag, mapnik::geometry::multi_line_string<double>, false, boost::geometry::sections<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>, 2ul, 10ul>':
/usr/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp:663:58:   required from 'void boost::geometry::sectionalize(const Geometry&, Sections&, int) [with bool Reverse = false; Geometry = mapnik::geometry::multi_line_string<double>; Sections = boost::geometry::sections<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>]'
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:454:60:   required from 'static void boost::geometry::detail::get_turns::get_turns_generic<Geometry1, Geometry2, Reverse1, Reverse2, Turns, TurnPolicy, InterruptPolicy>::apply(int, const Geometry1&, int, const Geometry2&, Turns&, InterruptPolicy&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; bool Reverse1 = false; bool Reverse2 = false; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<mapnik::geometry::point<double>, mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, boost::geometry::detail::disjoint::assign_disjoint_policy>; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:881:36:   required from 'void boost::geometry::get_turns(const Geometry1&, const Geometry2&, Turns&, InterruptPolicy&) [with bool Reverse1 = false; bool Reverse2 = false; AssignPolicy = boost::geometry::detail::disjoint::assign_disjoint_policy; Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:121:50:   required from 'static bool boost::geometry::detail::disjoint::disjoint_linear<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:158:80:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:56:53:   required from here
/usr/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp:544:5: error: no matching function for call to 'assertion_failed(mpl_::failed************ (boost::geometry::dispatch::sectionalize<boost::geometry::multi_linestring_tag, mapnik::geometry::multi_line_string<double>, false, boost::geometry::sections<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>, 2ul, 10ul>::NOT_OR_NOT_YET_IMPLEMENTED_FOR_THIS_GEOMETRY_TYPE::************)(mpl_::assert_::types<mapnik::geometry::multi_line_string<double>, mpl_::na, mpl_::na, mpl_::na>))'
     BOOST_MPL_ASSERT_MSG
     ^
/usr/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp:544:5: note: candidate is:
/usr/include/boost/mpl/assert.hpp:82:5: note: template<bool C> int mpl_::assertion_failed(typename mpl_::assert<C>::type)
 int assertion_failed( typename assert<C>::type );
     ^
/usr/include/boost/mpl/assert.hpp:82:5: note:   template argument deduction/substitution failed:
/usr/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp:544:5: note:   cannot convert 'boost::geometry::dispatch::sectionalize<Tag, Geometry, Reverse, Sections, DimensionCount, MaxCount>::NOT_OR_NOT_YET_IMPLEMENTED_FOR_THIS_GEOMETRY_TYPE548::assert_arg<boost::geometry::multi_linestring_tag, mapnik::geometry::multi_line_string<double>, false, boost::geometry::sections<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>, 2ul, 10ul>()' (type 'mpl_::failed************ (boost::geometry::dispatch::sectionalize<boost::geometry::multi_linestring_tag, mapnik::geometry::multi_line_string<double>, false, boost::geometry::sections<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>, 2ul, 10ul>::NOT_OR_NOT_YET_IMPLEMENTED_FOR_THIS_GEOMETRY_TYPE::************)(mpl_::assert_::types<mapnik::geometry::multi_line_string<double>, mpl_::na, mpl_::na, mpl_::na>)') to type 'mpl_::assert<false>::type {aka mpl_::assert<false>}'
     BOOST_MPL_ASSERT_MSG
     ^
In file included from /usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:56:0,
                 from /usr/include/boost/geometry/algorithms/disjoint.hpp:32,
                 from /usr/include/boost/geometry/algorithms/num_points.hpp:27,
                 from /usr/include/boost/geometry/algorithms/detail/throw_on_empty_input.hpp:15,
                 from /usr/include/boost/geometry/algorithms/distance.hpp:29,
                 from /usr/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp:16,
                 from /usr/include/boost/geometry/strategies/strategies.hpp:33,
                 from /usr/include/boost/geometry/geometry.hpp:35,
                 from /usr/include/boost/geometry.hpp:17,
                 from /usr/local/include/mapnik/geometry_adapters.hpp:38,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_geometry_clipper.hpp:11,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:2,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp: In instantiation of 'void boost::geometry::sectionalize(const Geometry&, Sections&, int) [with bool Reverse = false; Geometry = mapnik::geometry::multi_line_string<double>; Sections = boost::geometry::sections<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>]':
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:454:60:   required from 'static void boost::geometry::detail::get_turns::get_turns_generic<Geometry1, Geometry2, Reverse1, Reverse2, Turns, TurnPolicy, InterruptPolicy>::apply(int, const Geometry1&, int, const Geometry2&, Turns&, InterruptPolicy&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; bool Reverse1 = false; bool Reverse2 = false; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<mapnik::geometry::point<double>, mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, boost::geometry::detail::disjoint::assign_disjoint_policy>; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:881:36:   required from 'void boost::geometry::get_turns(const Geometry1&, const Geometry2&, Turns&, InterruptPolicy&) [with bool Reverse1 = false; bool Reverse2 = false; AssignPolicy = boost::geometry::detail::disjoint::assign_disjoint_policy; Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:121:50:   required from 'static bool boost::geometry::detail::disjoint::disjoint_linear<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:158:80:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:56:53:   required from here
/usr/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp:663:58: error: 'apply' is not a member of 'sectionalizer_type {aka boost::geometry::dispatch::sectionalize<boost::geometry::multi_linestring_tag, mapnik::geometry::multi_line_string<double>, false, boost::geometry::sections<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>, 2ul, 10ul>}'
     sectionalizer_type::apply(geometry, sections, ring_id);
                                                          ^
In file included from /usr/include/boost/mpl/aux_/na_assert.hpp:23:0,
                 from /usr/include/boost/mpl/arg.hpp:25,
                 from /usr/include/boost/mpl/placeholders.hpp:24,
                 from /usr/include/boost/iterator/iterator_categories.hpp:17,
                 from /usr/include/boost/iterator/detail/facade_iterator_category.hpp:7,
                 from /usr/include/boost/iterator/iterator_facade.hpp:14,
                 from /usr/local/include/mapnik/feature_kv_iterator.hpp:33,
                 from /usr/local/include/mapnik/feature.hpp:34,
                 from /usr/local/include/mapnik/grid/grid_view.hpp:30,
                 from /usr/local/include/mapnik/grid/grid.hpp:30,
                 from ../src/mapnik_grid.hpp:12,
                 from ../src/mapnik_map.cpp:6:
/usr/include/boost/geometry/strategies/within.hpp: In instantiation of 'struct boost::geometry::strategy::within::services::default_strategy<boost::geometry::point_tag, boost::geometry::linestring_tag, boost::geometry::point_tag, boost::geometry::linestring_tag, boost::geometry::cartesian_tag, boost::geometry::cartesian_tag, mapnik::geometry::point<double>, mapnik::geometry::line_string<double> >':
/usr/include/boost/geometry/algorithms/within.hpp:289:17:   required from 'bool boost::geometry::within(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::point<double>; Geometry2 = mapnik::geometry::line_string<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:64:43:   required from 'void boost::geometry::detail::disjoint::check_each_ring_for_within<Geometry>::apply(const Range&) [with Range = mapnik::geometry::linear_ring<double>; Geometry = mapnik::geometry::line_string<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:44:9:   required from 'static void boost::geometry::detail::for_each::fe_range_range<Range, Actor, IsConst>::apply(typename boost::geometry::add_const_if_c<IsConst, Point>::type&, Actor&) [with Range = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::line_string<double> >; bool IsConst = true; typename boost::geometry::add_const_if_c<IsConst, Point>::type = const mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:139:33:   required from 'void boost::geometry::detail::for_each_range(const Geometry&, Actor&) [with Geometry = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::line_string<double> >]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:76:56:   required from 'bool boost::geometry::detail::disjoint::rings_containing(const FirstGeometry&, const SecondGeometry&) [with FirstGeometry = mapnik::geometry::line_string<double>; SecondGeometry = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:165:50:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:51:53:   required from here
/usr/include/boost/geometry/strategies/within.hpp:53:5: error: no matching function for call to 'assertion_failed(mpl_::failed************ (boost::geometry::strategy::within::services::default_strategy<boost::geometry::point_tag, boost::geometry::linestring_tag, boost::geometry::point_tag, boost::geometry::linestring_tag, boost::geometry::cartesian_tag, boost::geometry::cartesian_tag, mapnik::geometry::point<double>, mapnik::geometry::line_string<double> >::NOT_IMPLEMENTED_FOR_THESE_TYPES::************)(mpl_::assert_::types<mapnik::geometry::point<double>, mapnik::geometry::line_string<double>, mpl_::na, mpl_::na>))'
     BOOST_MPL_ASSERT_MSG
     ^
/usr/include/boost/geometry/strategies/within.hpp:53:5: note: candidate is:
/usr/include/boost/mpl/assert.hpp:82:5: note: template<bool C> int mpl_::assertion_failed(typename mpl_::assert<C>::type)
 int assertion_failed( typename assert<C>::type );
     ^
/usr/include/boost/mpl/assert.hpp:82:5: note:   template argument deduction/substitution failed:
/usr/include/boost/geometry/strategies/within.hpp:53:5: note:   cannot convert 'boost::geometry::strategy::within::services::default_strategy<TagContained, TagContaining, CastedTagContained, CastedTagContaining, CsTagContained, CsTagContaining, GeometryContained, GeometryContaining>::NOT_IMPLEMENTED_FOR_THESE_TYPES57::assert_arg<boost::geometry::point_tag, boost::geometry::linestring_tag, boost::geometry::point_tag, boost::geometry::linestring_tag, boost::geometry::cartesian_tag, boost::geometry::cartesian_tag, mapnik::geometry::point<double>, mapnik::geometry::line_string<double> >()' (type 'mpl_::failed************ (boost::geometry::strategy::within::services::default_strategy<boost::geometry::point_tag, boost::geometry::linestring_tag, boost::geometry::point_tag, boost::geometry::linestring_tag, boost::geometry::cartesian_tag, boost::geometry::cartesian_tag, mapnik::geometry::point<double>, mapnik::geometry::line_string<double> >::NOT_IMPLEMENTED_FOR_THESE_TYPES::************)(mpl_::assert_::types<mapnik::geometry::point<double>, mapnik::geometry::line_string<double>, mpl_::na, mpl_::na>)') to type 'mpl_::assert<false>::type {aka mpl_::assert<false>}'
     BOOST_MPL_ASSERT_MSG
     ^
In file included from /usr/include/boost/geometry/algorithms/covered_by.hpp:21:0,
                 from /usr/include/boost/geometry/algorithms/detail/disjoint.hpp:29,
                 from /usr/include/boost/geometry/algorithms/disjoint.hpp:29,
                 from /usr/include/boost/geometry/algorithms/num_points.hpp:27,
                 from /usr/include/boost/geometry/algorithms/detail/throw_on_empty_input.hpp:15,
                 from /usr/include/boost/geometry/algorithms/distance.hpp:29,
                 from /usr/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp:16,
                 from /usr/include/boost/geometry/strategies/strategies.hpp:33,
                 from /usr/include/boost/geometry/geometry.hpp:35,
                 from /usr/include/boost/geometry.hpp:17,
                 from /usr/local/include/mapnik/geometry_adapters.hpp:38,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_geometry_clipper.hpp:11,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:2,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/include/boost/geometry/algorithms/within.hpp: In instantiation of 'bool boost::geometry::within(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::point<double>; Geometry2 = mapnik::geometry::line_string<double>]':
/usr/include/boost/geometry/algorithms/disjoint.hpp:64:43:   required from 'void boost::geometry::detail::disjoint::check_each_ring_for_within<Geometry>::apply(const Range&) [with Range = mapnik::geometry::linear_ring<double>; Geometry = mapnik::geometry::line_string<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:44:9:   required from 'static void boost::geometry::detail::for_each::fe_range_range<Range, Actor, IsConst>::apply(typename boost::geometry::add_const_if_c<IsConst, Point>::type&, Actor&) [with Range = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::line_string<double> >; bool IsConst = true; typename boost::geometry::add_const_if_c<IsConst, Point>::type = const mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:139:33:   required from 'void boost::geometry::detail::for_each_range(const Geometry&, Actor&) [with Geometry = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::line_string<double> >]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:76:56:   required from 'bool boost::geometry::detail::disjoint::rings_containing(const FirstGeometry&, const SecondGeometry&) [with FirstGeometry = mapnik::geometry::line_string<double>; SecondGeometry = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:165:50:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:51:53:   required from here
/usr/include/boost/geometry/algorithms/within.hpp:289:17: error: no type named 'type' in 'struct boost::geometry::strategy::within::services::default_strategy<boost::geometry::point_tag, boost::geometry::linestring_tag, boost::geometry::point_tag, boost::geometry::linestring_tag, boost::geometry::cartesian_tag, boost::geometry::cartesian_tag, mapnik::geometry::point<double>, mapnik::geometry::line_string<double> >'
         >::type strategy_type;
                 ^
In file included from /usr/include/boost/mpl/aux_/na_assert.hpp:23:0,
                 from /usr/include/boost/mpl/arg.hpp:25,
                 from /usr/include/boost/mpl/placeholders.hpp:24,
                 from /usr/include/boost/iterator/iterator_categories.hpp:17,
                 from /usr/include/boost/iterator/detail/facade_iterator_category.hpp:7,
                 from /usr/include/boost/iterator/iterator_facade.hpp:14,
                 from /usr/local/include/mapnik/feature_kv_iterator.hpp:33,
                 from /usr/local/include/mapnik/feature.hpp:34,
                 from /usr/local/include/mapnik/grid/grid_view.hpp:30,
                 from /usr/local/include/mapnik/grid/grid.hpp:30,
                 from ../src/mapnik_grid.hpp:12,
                 from ../src/mapnik_map.cpp:6:
/usr/include/boost/geometry/algorithms/not_implemented.hpp: In instantiation of 'struct boost::geometry::nyi::not_implemented_error<boost::geometry::info::POINT, boost::geometry::info::LINESTRING, void>':
/usr/include/boost/geometry/algorithms/not_implemented.hpp:103:8:   required from 'struct boost::geometry::not_implemented<boost::geometry::point_tag, boost::geometry::linestring_tag, void>'
/usr/include/boost/geometry/algorithms/within.hpp:175:8:   required from 'struct boost::geometry::dispatch::within<mapnik::geometry::point<double>, mapnik::geometry::line_string<double>, boost::geometry::point_tag, boost::geometry::linestring_tag>'
/usr/include/boost/geometry/algorithms/within.hpp:295:55:   required from 'bool boost::geometry::within(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::point<double>; Geometry2 = mapnik::geometry::line_string<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:64:43:   required from 'void boost::geometry::detail::disjoint::check_each_ring_for_within<Geometry>::apply(const Range&) [with Range = mapnik::geometry::linear_ring<double>; Geometry = mapnik::geometry::line_string<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:44:9:   required from 'static void boost::geometry::detail::for_each::fe_range_range<Range, Actor, IsConst>::apply(typename boost::geometry::add_const_if_c<IsConst, Point>::type&, Actor&) [with Range = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::line_string<double> >; bool IsConst = true; typename boost::geometry::add_const_if_c<IsConst, Point>::type = const mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:139:33:   required from 'void boost::geometry::detail::for_each_range(const Geometry&, Actor&) [with Geometry = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::line_string<double> >]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:76:56:   required from 'bool boost::geometry::detail::disjoint::rings_containing(const FirstGeometry&, const SecondGeometry&) [with FirstGeometry = mapnik::geometry::line_string<double>; SecondGeometry = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:165:50:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:51:53:   required from here
/usr/include/boost/geometry/algorithms/not_implemented.hpp:64:5: error: no matching function for call to 'assertion_failed(mpl_::failed************ (boost::geometry::nyi::not_implemented_error<boost::geometry::info::POINT, boost::geometry::info::LINESTRING, void>::THIS_OPERATION_IS_NOT_OR_NOT_YET_IMPLEMENTED::************)(mpl_::assert_::types<boost::geometry::info::POINT, boost::geometry::info::LINESTRING, void, mpl_::na>))'
     BOOST_MPL_ASSERT_MSG
     ^
/usr/include/boost/geometry/algorithms/not_implemented.hpp:64:5: note: candidate is:
/usr/include/boost/mpl/assert.hpp:82:5: note: template<bool C> int mpl_::assertion_failed(typename mpl_::assert<C>::type)
 int assertion_failed( typename assert<C>::type );
     ^
/usr/include/boost/mpl/assert.hpp:82:5: note:   template argument deduction/substitution failed:
/usr/include/boost/geometry/algorithms/not_implemented.hpp:64:5: note:   cannot convert 'boost::geometry::nyi::not_implemented_error<Term1, Term2, Term3>::THIS_OPERATION_IS_NOT_OR_NOT_YET_IMPLEMENTED71::assert_arg<boost::geometry::info::POINT, boost::geometry::info::LINESTRING, void>()' (type 'mpl_::failed************ (boost::geometry::nyi::not_implemented_error<boost::geometry::info::POINT, boost::geometry::info::LINESTRING, void>::THIS_OPERATION_IS_NOT_OR_NOT_YET_IMPLEMENTED::************)(mpl_::assert_::types<boost::geometry::info::POINT, boost::geometry::info::LINESTRING, void, mpl_::na>)') to type 'mpl_::assert<false>::type {aka mpl_::assert<false>}'
     BOOST_MPL_ASSERT_MSG
     ^
In file included from /usr/include/boost/geometry/algorithms/covered_by.hpp:21:0,
                 from /usr/include/boost/geometry/algorithms/detail/disjoint.hpp:29,
                 from /usr/include/boost/geometry/algorithms/disjoint.hpp:29,
                 from /usr/include/boost/geometry/algorithms/num_points.hpp:27,
                 from /usr/include/boost/geometry/algorithms/detail/throw_on_empty_input.hpp:15,
                 from /usr/include/boost/geometry/algorithms/distance.hpp:29,
                 from /usr/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp:16,
                 from /usr/include/boost/geometry/strategies/strategies.hpp:33,
                 from /usr/include/boost/geometry/geometry.hpp:35,
                 from /usr/include/boost/geometry.hpp:17,
                 from /usr/local/include/mapnik/geometry_adapters.hpp:38,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_geometry_clipper.hpp:11,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:2,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/include/boost/geometry/algorithms/within.hpp: In instantiation of 'bool boost::geometry::within(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::point<double>; Geometry2 = mapnik::geometry::line_string<double>]':
/usr/include/boost/geometry/algorithms/disjoint.hpp:64:43:   required from 'void boost::geometry::detail::disjoint::check_each_ring_for_within<Geometry>::apply(const Range&) [with Range = mapnik::geometry::linear_ring<double>; Geometry = mapnik::geometry::line_string<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:44:9:   required from 'static void boost::geometry::detail::for_each::fe_range_range<Range, Actor, IsConst>::apply(typename boost::geometry::add_const_if_c<IsConst, Point>::type&, Actor&) [with Range = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::line_string<double> >; bool IsConst = true; typename boost::geometry::add_const_if_c<IsConst, Point>::type = const mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:139:33:   required from 'void boost::geometry::detail::for_each_range(const Geometry&, Actor&) [with Geometry = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::line_string<double> >]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:76:56:   required from 'bool boost::geometry::detail::disjoint::rings_containing(const FirstGeometry&, const SecondGeometry&) [with FirstGeometry = mapnik::geometry::line_string<double>; SecondGeometry = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:165:50:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:51:53:   required from here
/usr/include/boost/geometry/algorithms/within.hpp:295:55: error: 'apply' is not a member of 'boost::geometry::dispatch::within<mapnik::geometry::point<double>, mapnik::geometry::line_string<double>, boost::geometry::point_tag, boost::geometry::linestring_tag>'
         >::apply(geometry1, geometry2, strategy_type());
                                                       ^
In file included from /usr/include/boost/mpl/aux_/na_assert.hpp:23:0,
                 from /usr/include/boost/mpl/arg.hpp:25,
                 from /usr/include/boost/mpl/placeholders.hpp:24,
                 from /usr/include/boost/iterator/iterator_categories.hpp:17,
                 from /usr/include/boost/iterator/detail/facade_iterator_category.hpp:7,
                 from /usr/include/boost/iterator/iterator_facade.hpp:14,
                 from /usr/local/include/mapnik/feature_kv_iterator.hpp:33,
                 from /usr/local/include/mapnik/feature.hpp:34,
                 from /usr/local/include/mapnik/grid/grid_view.hpp:30,
                 from /usr/local/include/mapnik/grid/grid.hpp:30,
                 from ../src/mapnik_grid.hpp:12,
                 from ../src/mapnik_map.cpp:6:
/usr/include/boost/geometry/strategies/within.hpp: In instantiation of 'struct boost::geometry::strategy::within::services::default_strategy<boost::geometry::point_tag, boost::geometry::multi_linestring_tag, boost::geometry::point_tag, boost::geometry::multi_linestring_tag, boost::geometry::cartesian_tag, boost::geometry::cartesian_tag, mapnik::geometry::point<double>, mapnik::geometry::multi_line_string<double> >':
/usr/include/boost/geometry/algorithms/within.hpp:289:17:   required from 'bool boost::geometry::within(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::point<double>; Geometry2 = mapnik::geometry::multi_line_string<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:64:43:   required from 'void boost::geometry::detail::disjoint::check_each_ring_for_within<Geometry>::apply(const Range&) [with Range = mapnik::geometry::linear_ring<double>; Geometry = mapnik::geometry::multi_line_string<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:44:9:   required from 'static void boost::geometry::detail::for_each::fe_range_range<Range, Actor, IsConst>::apply(typename boost::geometry::add_const_if_c<IsConst, Point>::type&, Actor&) [with Range = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::multi_line_string<double> >; bool IsConst = true; typename boost::geometry::add_const_if_c<IsConst, Point>::type = const mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:139:33:   required from 'void boost::geometry::detail::for_each_range(const Geometry&, Actor&) [with Geometry = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::multi_line_string<double> >]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:76:56:   required from 'bool boost::geometry::detail::disjoint::rings_containing(const FirstGeometry&, const SecondGeometry&) [with FirstGeometry = mapnik::geometry::multi_line_string<double>; SecondGeometry = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:165:50:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:56:53:   required from here
/usr/include/boost/geometry/strategies/within.hpp:53:5: error: no matching function for call to 'assertion_failed(mpl_::failed************ (boost::geometry::strategy::within::services::default_strategy<boost::geometry::point_tag, boost::geometry::multi_linestring_tag, boost::geometry::point_tag, boost::geometry::multi_linestring_tag, boost::geometry::cartesian_tag, boost::geometry::cartesian_tag, mapnik::geometry::point<double>, mapnik::geometry::multi_line_string<double> >::NOT_IMPLEMENTED_FOR_THESE_TYPES::************)(mpl_::assert_::types<mapnik::geometry::point<double>, mapnik::geometry::multi_line_string<double>, mpl_::na, mpl_::na>))'
     BOOST_MPL_ASSERT_MSG
     ^
/usr/include/boost/geometry/strategies/within.hpp:53:5: note: candidate is:
/usr/include/boost/mpl/assert.hpp:82:5: note: template<bool C> int mpl_::assertion_failed(typename mpl_::assert<C>::type)
 int assertion_failed( typename assert<C>::type );
     ^
/usr/include/boost/mpl/assert.hpp:82:5: note:   template argument deduction/substitution failed:
/usr/include/boost/geometry/strategies/within.hpp:53:5: note:   cannot convert 'boost::geometry::strategy::within::services::default_strategy<TagContained, TagContaining, CastedTagContained, CastedTagContaining, CsTagContained, CsTagContaining, GeometryContained, GeometryContaining>::NOT_IMPLEMENTED_FOR_THESE_TYPES57::assert_arg<boost::geometry::point_tag, boost::geometry::multi_linestring_tag, boost::geometry::point_tag, boost::geometry::multi_linestring_tag, boost::geometry::cartesian_tag, boost::geometry::cartesian_tag, mapnik::geometry::point<double>, mapnik::geometry::multi_line_string<double> >()' (type 'mpl_::failed************ (boost::geometry::strategy::within::services::default_strategy<boost::geometry::point_tag, boost::geometry::multi_linestring_tag, boost::geometry::point_tag, boost::geometry::multi_linestring_tag, boost::geometry::cartesian_tag, boost::geometry::cartesian_tag, mapnik::geometry::point<double>, mapnik::geometry::multi_line_string<double> >::NOT_IMPLEMENTED_FOR_THESE_TYPES::************)(mpl_::assert_::types<mapnik::geometry::point<double>, mapnik::geometry::multi_line_string<double>, mpl_::na, mpl_::na>)') to type 'mpl_::assert<false>::type {aka mpl_::assert<false>}'
     BOOST_MPL_ASSERT_MSG
     ^
In file included from /usr/include/boost/geometry/algorithms/covered_by.hpp:21:0,
                 from /usr/include/boost/geometry/algorithms/detail/disjoint.hpp:29,
                 from /usr/include/boost/geometry/algorithms/disjoint.hpp:29,
                 from /usr/include/boost/geometry/algorithms/num_points.hpp:27,
                 from /usr/include/boost/geometry/algorithms/detail/throw_on_empty_input.hpp:15,
                 from /usr/include/boost/geometry/algorithms/distance.hpp:29,
                 from /usr/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp:16,
                 from /usr/include/boost/geometry/strategies/strategies.hpp:33,
                 from /usr/include/boost/geometry/geometry.hpp:35,
                 from /usr/include/boost/geometry.hpp:17,
                 from /usr/local/include/mapnik/geometry_adapters.hpp:38,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_geometry_clipper.hpp:11,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:2,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/include/boost/geometry/algorithms/within.hpp: In instantiation of 'bool boost::geometry::within(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::point<double>; Geometry2 = mapnik::geometry::multi_line_string<double>]':
/usr/include/boost/geometry/algorithms/disjoint.hpp:64:43:   required from 'void boost::geometry::detail::disjoint::check_each_ring_for_within<Geometry>::apply(const Range&) [with Range = mapnik::geometry::linear_ring<double>; Geometry = mapnik::geometry::multi_line_string<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:44:9:   required from 'static void boost::geometry::detail::for_each::fe_range_range<Range, Actor, IsConst>::apply(typename boost::geometry::add_const_if_c<IsConst, Point>::type&, Actor&) [with Range = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::multi_line_string<double> >; bool IsConst = true; typename boost::geometry::add_const_if_c<IsConst, Point>::type = const mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:139:33:   required from 'void boost::geometry::detail::for_each_range(const Geometry&, Actor&) [with Geometry = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::multi_line_string<double> >]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:76:56:   required from 'bool boost::geometry::detail::disjoint::rings_containing(const FirstGeometry&, const SecondGeometry&) [with FirstGeometry = mapnik::geometry::multi_line_string<double>; SecondGeometry = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:165:50:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:56:53:   required from here
/usr/include/boost/geometry/algorithms/within.hpp:289:17: error: no type named 'type' in 'struct boost::geometry::strategy::within::services::default_strategy<boost::geometry::point_tag, boost::geometry::multi_linestring_tag, boost::geometry::point_tag, boost::geometry::multi_linestring_tag, boost::geometry::cartesian_tag, boost::geometry::cartesian_tag, mapnik::geometry::point<double>, mapnik::geometry::multi_line_string<double> >'
         >::type strategy_type;
                 ^
In file included from /usr/include/boost/mpl/aux_/na_assert.hpp:23:0,
                 from /usr/include/boost/mpl/arg.hpp:25,
                 from /usr/include/boost/mpl/placeholders.hpp:24,
                 from /usr/include/boost/iterator/iterator_categories.hpp:17,
                 from /usr/include/boost/iterator/detail/facade_iterator_category.hpp:7,
                 from /usr/include/boost/iterator/iterator_facade.hpp:14,
                 from /usr/local/include/mapnik/feature_kv_iterator.hpp:33,
                 from /usr/local/include/mapnik/feature.hpp:34,
                 from /usr/local/include/mapnik/grid/grid_view.hpp:30,
                 from /usr/local/include/mapnik/grid/grid.hpp:30,
                 from ../src/mapnik_grid.hpp:12,
                 from ../src/mapnik_map.cpp:6:
/usr/include/boost/geometry/algorithms/not_implemented.hpp: In instantiation of 'struct boost::geometry::nyi::not_implemented_error<boost::geometry::info::POINT, boost::geometry::info::MULTI_LINESTRING, void>':
/usr/include/boost/geometry/algorithms/not_implemented.hpp:103:8:   required from 'struct boost::geometry::not_implemented<boost::geometry::point_tag, boost::geometry::multi_linestring_tag, void>'
/usr/include/boost/geometry/algorithms/within.hpp:175:8:   required from 'struct boost::geometry::dispatch::within<mapnik::geometry::point<double>, mapnik::geometry::multi_line_string<double>, boost::geometry::point_tag, boost::geometry::multi_linestring_tag>'
/usr/include/boost/geometry/algorithms/within.hpp:295:55:   required from 'bool boost::geometry::within(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::point<double>; Geometry2 = mapnik::geometry::multi_line_string<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:64:43:   required from 'void boost::geometry::detail::disjoint::check_each_ring_for_within<Geometry>::apply(const Range&) [with Range = mapnik::geometry::linear_ring<double>; Geometry = mapnik::geometry::multi_line_string<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:44:9:   required from 'static void boost::geometry::detail::for_each::fe_range_range<Range, Actor, IsConst>::apply(typename boost::geometry::add_const_if_c<IsConst, Point>::type&, Actor&) [with Range = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::multi_line_string<double> >; bool IsConst = true; typename boost::geometry::add_const_if_c<IsConst, Point>::type = const mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:139:33:   required from 'void boost::geometry::detail::for_each_range(const Geometry&, Actor&) [with Geometry = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::multi_line_string<double> >]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:76:56:   required from 'bool boost::geometry::detail::disjoint::rings_containing(const FirstGeometry&, const SecondGeometry&) [with FirstGeometry = mapnik::geometry::multi_line_string<double>; SecondGeometry = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:165:50:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:56:53:   required from here
/usr/include/boost/geometry/algorithms/not_implemented.hpp:64:5: error: no matching function for call to 'assertion_failed(mpl_::failed************ (boost::geometry::nyi::not_implemented_error<boost::geometry::info::POINT, boost::geometry::info::MULTI_LINESTRING, void>::THIS_OPERATION_IS_NOT_OR_NOT_YET_IMPLEMENTED::************)(mpl_::assert_::types<boost::geometry::info::POINT, boost::geometry::info::MULTI_LINESTRING, void, mpl_::na>))'
     BOOST_MPL_ASSERT_MSG
     ^
/usr/include/boost/geometry/algorithms/not_implemented.hpp:64:5: note: candidate is:
/usr/include/boost/mpl/assert.hpp:82:5: note: template<bool C> int mpl_::assertion_failed(typename mpl_::assert<C>::type)
 int assertion_failed( typename assert<C>::type );
     ^
/usr/include/boost/mpl/assert.hpp:82:5: note:   template argument deduction/substitution failed:
/usr/include/boost/geometry/algorithms/not_implemented.hpp:64:5: note:   cannot convert 'boost::geometry::nyi::not_implemented_error<Term1, Term2, Term3>::THIS_OPERATION_IS_NOT_OR_NOT_YET_IMPLEMENTED71::assert_arg<boost::geometry::info::POINT, boost::geometry::info::MULTI_LINESTRING, void>()' (type 'mpl_::failed************ (boost::geometry::nyi::not_implemented_error<boost::geometry::info::POINT, boost::geometry::info::MULTI_LINESTRING, void>::THIS_OPERATION_IS_NOT_OR_NOT_YET_IMPLEMENTED::************)(mpl_::assert_::types<boost::geometry::info::POINT, boost::geometry::info::MULTI_LINESTRING, void, mpl_::na>)') to type 'mpl_::assert<false>::type {aka mpl_::assert<false>}'
     BOOST_MPL_ASSERT_MSG
     ^
In file included from /usr/include/boost/geometry/algorithms/covered_by.hpp:21:0,
                 from /usr/include/boost/geometry/algorithms/detail/disjoint.hpp:29,
                 from /usr/include/boost/geometry/algorithms/disjoint.hpp:29,
                 from /usr/include/boost/geometry/algorithms/num_points.hpp:27,
                 from /usr/include/boost/geometry/algorithms/detail/throw_on_empty_input.hpp:15,
                 from /usr/include/boost/geometry/algorithms/distance.hpp:29,
                 from /usr/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp:16,
                 from /usr/include/boost/geometry/strategies/strategies.hpp:33,
                 from /usr/include/boost/geometry/geometry.hpp:35,
                 from /usr/include/boost/geometry.hpp:17,
                 from /usr/local/include/mapnik/geometry_adapters.hpp:38,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_geometry_clipper.hpp:11,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:2,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/include/boost/geometry/algorithms/within.hpp: In instantiation of 'bool boost::geometry::within(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::point<double>; Geometry2 = mapnik::geometry::multi_line_string<double>]':
/usr/include/boost/geometry/algorithms/disjoint.hpp:64:43:   required from 'void boost::geometry::detail::disjoint::check_each_ring_for_within<Geometry>::apply(const Range&) [with Range = mapnik::geometry::linear_ring<double>; Geometry = mapnik::geometry::multi_line_string<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:44:9:   required from 'static void boost::geometry::detail::for_each::fe_range_range<Range, Actor, IsConst>::apply(typename boost::geometry::add_const_if_c<IsConst, Point>::type&, Actor&) [with Range = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::multi_line_string<double> >; bool IsConst = true; typename boost::geometry::add_const_if_c<IsConst, Point>::type = const mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/detail/for_each_range.hpp:139:33:   required from 'void boost::geometry::detail::for_each_range(const Geometry&, Actor&) [with Geometry = mapnik::geometry::linear_ring<double>; Actor = boost::geometry::detail::disjoint::check_each_ring_for_within<mapnik::geometry::multi_line_string<double> >]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:76:56:   required from 'bool boost::geometry::detail::disjoint::rings_containing(const FirstGeometry&, const SecondGeometry&) [with FirstGeometry = mapnik::geometry::multi_line_string<double>; SecondGeometry = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:165:50:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:56:53:   required from here
/usr/include/boost/geometry/algorithms/within.hpp:295:55: error: 'apply' is not a member of 'boost::geometry::dispatch::within<mapnik::geometry::point<double>, mapnik::geometry::multi_line_string<double>, boost::geometry::point_tag, boost::geometry::multi_linestring_tag>'
         >::apply(geometry1, geometry2, strategy_type());
                                                       ^
In file included from /usr/include/boost/geometry/core/point_type.hpp:22:0,
                 from /usr/include/boost/geometry/core/coordinate_system.hpp:20,
                 from /usr/include/boost/geometry/core/cs.hpp:21,
                 from /usr/include/boost/geometry/geometry.hpp:19,
                 from /usr/include/boost/geometry.hpp:17,
                 from /usr/local/include/mapnik/geometry_adapters.hpp:38,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_geometry_clipper.hpp:11,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:2,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/include/boost/geometry/core/ring_type.hpp: In instantiation of 'struct boost::geometry::ring_return_type<const mapnik::geometry::multi_line_string<double> >':
/usr/include/boost/geometry/algorithms/detail/sections/range_by_section.hpp:116:13:   required by substitution of 'template<class Geometry, class Section> typename boost::geometry::ring_return_type<const Polygon>::type boost::geometry::range_by_section(const Geometry&, const Section&) [with Geometry = mapnik::geometry::multi_line_string<double>; Section = boost::geometry::section<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>]'
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:177:60:   required from 'static bool boost::geometry::detail::get_turns::get_turns_in_sections<Geometry1, Geometry2, Reverse1, Reverse2, Section1, Section2, Turns, TurnPolicy, InterruptPolicy>::apply(int, const Geometry1&, const Section1&, int, const Geometry2&, const Section2&, bool, Turns&, InterruptPolicy&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; bool Reverse1 = false; bool Reverse2 = false; Section1 = boost::geometry::section<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>; Section2 = boost::geometry::section<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<mapnik::geometry::point<double>, mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, boost::geometry::detail::disjoint::assign_disjoint_policy>; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:422:56:   required from 'bool boost::geometry::detail::get_turns::section_visitor<Geometry1, Geometry2, Reverse1, Reverse2, Turns, TurnPolicy, InterruptPolicy>::apply(const Section&, const Section&) [with Section = boost::geometry::section<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>; Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; bool Reverse1 = false; bool Reverse2 = false; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<mapnik::geometry::point<double>, mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, boost::geometry::detail::disjoint::assign_disjoint_policy>; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/detail/partition.hpp:415:21:   required from 'static void boost::geometry::partition<Box, ExpandPolicy, OverlapsPolicy, VisitBoxPolicy>::apply(const InputCollection&, const InputCollection&, VisitPolicy&, std::size_t, VisitBoxPolicy) [with InputCollection = boost::geometry::sections<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>; VisitPolicy = boost::geometry::detail::get_turns::section_visitor<mapnik::geometry::multi_line_string<double>, mapnik::geometry::linear_ring<double>, false, false, std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >, boost::geometry::detail::overlay::get_turn_info<mapnik::geometry::point<double>, mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, boost::geometry::detail::disjoint::assign_disjoint_policy>, boost::geometry::detail::disjoint::disjoint_interrupt_policy>; Box = boost::geometry::model::box<mapnik::geometry::point<double> >; ExpandPolicy = boost::geometry::detail::get_turns::get_section_box; OverlapsPolicy = boost::geometry::detail::get_turns::ovelaps_section_box; VisitBoxPolicy = boost::geometry::visit_no_policy; std::size_t = long unsigned int]'
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:468:41:   required from 'static void boost::geometry::detail::get_turns::get_turns_generic<Geometry1, Geometry2, Reverse1, Reverse2, Turns, TurnPolicy, InterruptPolicy>::apply(int, const Geometry1&, int, const Geometry2&, Turns&, InterruptPolicy&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; bool Reverse1 = false; bool Reverse2 = false; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<mapnik::geometry::point<double>, mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, boost::geometry::detail::disjoint::assign_disjoint_policy>; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:881:36:   required from 'void boost::geometry::get_turns(const Geometry1&, const Geometry2&, Turns&, InterruptPolicy&) [with bool Reverse1 = false; bool Reverse2 = false; AssignPolicy = boost::geometry::detail::disjoint::assign_disjoint_policy; Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:121:50:   required from 'static bool boost::geometry::detail::disjoint::disjoint_linear<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:158:80:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:56:53:   required from here
/usr/include/boost/geometry/core/ring_type.hpp:163:17: error: no type named 'type' in 'struct boost::geometry::core_dispatch::ring_return_type<boost::geometry::multi_linestring_tag, const mapnik::geometry::multi_line_string<double> >'
         >::type type;
                 ^
In file included from /usr/include/boost/geometry/algorithms/disjoint.hpp:32:0,
                 from /usr/include/boost/geometry/algorithms/num_points.hpp:27,
                 from /usr/include/boost/geometry/algorithms/detail/throw_on_empty_input.hpp:15,
                 from /usr/include/boost/geometry/algorithms/distance.hpp:29,
                 from /usr/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp:16,
                 from /usr/include/boost/geometry/strategies/strategies.hpp:33,
                 from /usr/include/boost/geometry/geometry.hpp:35,
                 from /usr/include/boost/geometry.hpp:17,
                 from /usr/local/include/mapnik/geometry_adapters.hpp:38,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_geometry_clipper.hpp:11,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:2,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp: In instantiation of 'static bool boost::geometry::detail::get_turns::get_turns_in_sections<Geometry1, Geometry2, Reverse1, Reverse2, Section1, Section2, Turns, TurnPolicy, InterruptPolicy>::apply(int, const Geometry1&, const Section1&, int, const Geometry2&, const Section2&, bool, Turns&, InterruptPolicy&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; bool Reverse1 = false; bool Reverse2 = false; Section1 = boost::geometry::section<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>; Section2 = boost::geometry::section<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<mapnik::geometry::point<double>, mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, boost::geometry::detail::disjoint::assign_disjoint_policy>; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]':
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:422:56:   required from 'bool boost::geometry::detail::get_turns::section_visitor<Geometry1, Geometry2, Reverse1, Reverse2, Turns, TurnPolicy, InterruptPolicy>::apply(const Section&, const Section&) [with Section = boost::geometry::section<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>; Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; bool Reverse1 = false; bool Reverse2 = false; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<mapnik::geometry::point<double>, mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, boost::geometry::detail::disjoint::assign_disjoint_policy>; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/detail/partition.hpp:415:21:   required from 'static void boost::geometry::partition<Box, ExpandPolicy, OverlapsPolicy, VisitBoxPolicy>::apply(const InputCollection&, const InputCollection&, VisitPolicy&, std::size_t, VisitBoxPolicy) [with InputCollection = boost::geometry::sections<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>; VisitPolicy = boost::geometry::detail::get_turns::section_visitor<mapnik::geometry::multi_line_string<double>, mapnik::geometry::linear_ring<double>, false, false, std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >, boost::geometry::detail::overlay::get_turn_info<mapnik::geometry::point<double>, mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, boost::geometry::detail::disjoint::assign_disjoint_policy>, boost::geometry::detail::disjoint::disjoint_interrupt_policy>; Box = boost::geometry::model::box<mapnik::geometry::point<double> >; ExpandPolicy = boost::geometry::detail::get_turns::get_section_box; OverlapsPolicy = boost::geometry::detail::get_turns::ovelaps_section_box; VisitBoxPolicy = boost::geometry::visit_no_policy; std::size_t = long unsigned int]'
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:468:41:   required from 'static void boost::geometry::detail::get_turns::get_turns_generic<Geometry1, Geometry2, Reverse1, Reverse2, Turns, TurnPolicy, InterruptPolicy>::apply(int, const Geometry1&, int, const Geometry2&, Turns&, InterruptPolicy&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; bool Reverse1 = false; bool Reverse2 = false; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; TurnPolicy = boost::geometry::detail::overlay::get_turn_info<mapnik::geometry::point<double>, mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, boost::geometry::detail::disjoint::assign_disjoint_policy>; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:881:36:   required from 'void boost::geometry::get_turns(const Geometry1&, const Geometry2&, Turns&, InterruptPolicy&) [with bool Reverse1 = false; bool Reverse2 = false; AssignPolicy = boost::geometry::detail::disjoint::assign_disjoint_policy; Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>; Turns = std::deque<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> >, std::allocator<boost::geometry::detail::overlay::turn_info<mapnik::geometry::point<double>, boost::geometry::detail::overlay::turn_operation, boost::array<boost::geometry::detail::overlay::turn_operation, 2ul> > > >; InterruptPolicy = boost::geometry::detail::disjoint::disjoint_interrupt_policy]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:121:50:   required from 'static bool boost::geometry::detail::disjoint::disjoint_linear<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:158:80:   required from 'static bool boost::geometry::detail::disjoint::general_areal<Geometry1, Geometry2>::apply(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/disjoint.hpp:289:80:   required from 'bool boost::geometry::disjoint(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
/usr/include/boost/geometry/algorithms/intersects.hpp:99:53:   required from 'bool boost::geometry::intersects(const Geometry1&, const Geometry2&) [with Geometry1 = mapnik::geometry::multi_line_string<double>; Geometry2 = mapnik::geometry::linear_ring<double>]'
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_intersects.ipp:56:53:   required from here
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:177:60: error: no matching function for call to 'range_by_section(const mapnik::geometry::multi_line_string<double>&, const boost::geometry::section<boost::geometry::model::box<mapnik::geometry::point<double> >, 2ul>&)'
         cview_type1 cview1(range_by_section(geometry1, sec1));
                                                            ^
/usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:177:60: note: candidate is:
In file included from /usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp:53:0,
                 from /usr/include/boost/geometry/algorithms/disjoint.hpp:32,
                 from /usr/include/boost/geometry/algorithms/num_points.hpp:27,
                 from /usr/include/boost/geometry/algorithms/detail/throw_on_empty_input.hpp:15,
                 from /usr/include/boost/geometry/algorithms/distance.hpp:29,
                 from /usr/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp:16,
                 from /usr/include/boost/geometry/strategies/strategies.hpp:33,
                 from /usr/include/boost/geometry/geometry.hpp:35,
                 from /usr/include/boost/geometry.hpp:17,
                 from /usr/local/include/mapnik/geometry_adapters.hpp:38,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_geometry_clipper.hpp:11,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:2,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
/usr/include/boost/geometry/algorithms/detail/sections/range_by_section.hpp:116:13: note: template<class Geometry, class Section> typename boost::geometry::ring_return_type<const Polygon>::type boost::geometry::range_by_section(const Geometry&, const Section&)
             range_by_section(Geometry const& geometry, Section const& section)
             ^
/usr/include/boost/geometry/algorithms/detail/sections/range_by_section.hpp:116:13: note:   substitution of deduced template arguments resulted in errors seen above
In file included from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.ipp:2:0,
                 from ../node_modules/mapnik-vector-tile/src/vector_tile_processor.hpp:202,
                 from ../src/mapnik_map.cpp:15:
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_clipper.hpp: In function 'ClipperLib::PolyFillType mapnik::vector_tile_impl::detail::get_angus_fill_type(mapnik::vector_tile_impl::polygon_fill_type)':
../node_modules/mapnik-vector-tile/src/vector_tile_geometry_clipper.hpp:47:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make: *** [Release/obj.target/mapnik/src/mapnik_map.o] Error 1
make: Leaving directory `/systemapic/dev/node_modules/mapnik/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:269:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Linux 3.13.0-36-generic
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/systemapic/dev/node_modules/mapnik/lib/binding/node-v11-linux-x64/mapnik.node" "--module_name=mapnik" "--module_path=/systemapic/dev/node_modules/mapnik/lib/binding/node-v11-linux-x64"
gyp ERR! cwd /systemapic/dev/node_modules/mapnik
gyp ERR! node -v v0.10.40
gyp ERR! node-gyp -v v2.0.1
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/systemapic/dev/node_modules/mapnik/lib/binding/node-v11-linux-x64/mapnik.node --module_name=mapnik --module_path=/systemapic/dev/node_modules/mapnik/lib/binding/node-v11-linux-x64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/systemapic/dev/node_modules/mapnik/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
node-pre-gyp ERR! stack     at maybeClose (child_process.js:766:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:833:5)
node-pre-gyp ERR! System Linux 3.13.0-36-generic
node-pre-gyp ERR! command "node" "/systemapic/dev/node_modules/mapnik/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /systemapic/dev/node_modules/mapnik
node-pre-gyp ERR! node -v v0.10.40
node-pre-gyp ERR! node-pre-gyp -v v0.6.22
node-pre-gyp ERR! not ok
Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/systemapic/dev/node_modules/mapnik/lib/binding/node-v11-linux-x64/mapnik.node --module_name=mapnik --module_path=/systemapic/dev/node_modules/mapnik/lib/binding/node-v11-linux-x64' (1)
npm ERR! Linux 3.13.0-36-generic
npm ERR! argv "node" "/usr/local/bin/npm" "install" "mapnik" "--build-from-source"
npm ERR! node v0.10.40
npm ERR! npm  v2.11.3
npm ERR! code ELIFECYCLE

npm ERR! mapnik@3.5.2 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the mapnik@3.5.2 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! This is most likely a problem with the mapnik package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get their info via:
npm ERR!     npm owner ls mapnik
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /systemapic/dev/npm-debug.log

Sorry, @strk, perhaps you can figure it out.

strk commented 8 years ago

I'm on it. Meanwhile the PR is about to be accepted...

strk commented 8 years ago

I found node uses a local build of at least plugins, possibly even libmapnik itself, see:

/systemapic/prod/pile/mapnik-omnivore/node_modules/mapnik/lib/binding/node-v11-linux-x64/mapnik/input/pgraster.input /systemapic/prod/pile/mapnik/lib/binding/node-v11-linux-x64/mapnik/input/pgraster.input /tmp/node_modules/mapnik-omnivore/node_modules/mapnik/lib/binding/node-v11-linux-x64/mapnik/input/pgraster.input /tmp/node_modules/mapnik/lib/binding/node-v11-linux-x64/mapnik/input/pgraster.input

I'll figure out what "mapnik-ominvore" is ...

strk commented 8 years ago

digging further I also discovered that the "start.sh" script in pile docker runs another npm install, after the one run at image build time... confusing

strk commented 8 years ago

So this should be fixed by 6e69319502d5eefc10d0baf7b5ae1ca92a869886

strk commented 8 years ago

Assuming the fix was good, closing.