#include <mapnik/graphics.hpp> #include <mapnik/datasource_cache.hpp> TEST_CASE( "vector tile output 1", "should create vector tile with one point" ) { mapnik::datasource_cache::instance().register_datasources(MAPNIK_PLUGINDIR); typedef mapnik::vector::backend_pbf backend_type; typedef mapnik::vector::processor<backend_type> renderer_type; typedef mapnik::vector::tile tile_type; unsigned _x=0,_y=0,_z=1; double minx,miny,maxx,maxy; mapnik::vector::spherical_mercator merc(512); merc.xyz(_x,_y,_z,minx,miny,maxx,maxy); mapnik::box2d<double> bbox; bbox.init(minx,miny,maxx,maxy); unsigned tile_size = 512; tile_type tile; backend_type backend(tile,16); mapnik::Map map(tile_size,tile_size,"+init=epsg:3857"); map.set_buffer_size(256); mapnik::layer lyr("layer",map.srs()); mapnik::parameters params; params["type"] = "gdal"; // created with: // wget http://www.nacis.org/naturalearth/50m/raster/NE2_50m_SR_W.zip // gdalwarp -t_srs EPSG:3857 -ts 1048 1048 -r bilinear NE2_50M_SR_W.tif natural_earth.tif params["file"] = "test/natural_earth.tif"; MAPNIK_SHARED_PTR<mapnik::datasource> ds = mapnik::datasource_cache::instance().create(params); lyr.set_datasource(ds); map.MAPNIK_ADD_LAYER(lyr); mapnik::request m_req(tile_size,tile_size,bbox);
// vector input api #include "vector_tile_datasource.hpp" #include "vector_tile_datasource_pbf.hpp" #include "protozero/pbf_reader.hpp" #include <string> #include <fstream> #include <streambuf> TEST_CASE( "pbf vector tile input", "should be able to parse message and render point" ) { typedef mapnik::vector_tile_impl::backend_pbf backend_type; typedef mapnik::vector_tile_impl::processor<backend_type> renderer_type; typedef vector_tile::Tile tile_type; tile_type tile; backend_type backend(tile,16); unsigned tile_size = 256; mapnik::box2d<double> bbox(-20037508.342789,-20037508.342789,20037508.342789,20037508.342789); mapnik::Map map(tile_size,tile_size,"+init=epsg:3857"); mapnik::layer lyr("layer",map.srs()); lyr.set_datasource(testing::build_ds(0,0)); map.add_layer(lyr); map.zoom_to_box(bbox); mapnik::request m_req(map.width(),map.height(),map.get_current_extent()); renderer_type ren(backend,map,m_req); ren.apply(); // serialize to message std::string buffer; CHECK(tile.SerializeToString(&buffer)); CHECK(151 == buffer.size());