def test_preview_mvt_custom_style():
    style = """
    <Map srs="+init=epsg:3857" background-color="white">
        <Style name="preview">
            <Rule>
                <LineSymbolizer stroke="black" stroke-width="2" />
            </Rule>
        </Style>

        <Layer name="preview">
            <StyleName>preview</StyleName>
        </Layer>
    </Map>
    """
    mvt = mapnik.VectorTileMerc(28, 12, 5)

    with open('data/tile3.mvt', 'rb') as f:
        buf = f.read()
        eq_(isinstance(buf, bytes), True)
        mapnik.merge_compressed_buffer(mvt, buf)

    mapnikMap = mapnik.Map(256, 256)
    mapnik.load_map_from_string(mapnikMap, style)
    im = mapnik.Image(4096, 4096)
    mapnik.preview_mvt_merc(mvt, mapnikMap, im)

    expected = 'images/mvt/tile3.preview.custom.expected.png'
    actual = 'images/mvt/tile3.preview.custom.actual.png'
    im.save(actual, 'png32')
    eq_(compare_file_size(actual, expected, 100), True)
def test_render_mvt_merc_nested_layers():
    m = mapnik.Map(512, 512)
    mapnik.load_map(m, '../data-visual/styles/nested-layers-1.xml')
    mvt = mapnik.VectorTileMerc(0, 0, 0)

    im2 = mapnik.Image(m.width, m.height)
    m.zoom_to_box(mvt.extent)
    mapnik.render(m, im2)
    actual2 = 'images/mvt/nested_layers.classic.actual.png'
    expected2 = 'images/mvt/nested_layers.classic.expected.png'
    im2.save(actual2, 'png32')
    eq_(compare_file_size(actual2, expected2, 100), True)

    mvt_buffer = mapnik.create_mvt_merc(m, mvt.x, mvt.y, mvt.z)

    # Check number of layers of the MVT
    vti = mapnik.VectorTileInfo()
    vti.parse_from_string(mvt_buffer)
    eq_(vti.layers_size(), 2)

    mapnik.merge_compressed_buffer(mvt, mvt_buffer)

    m = mapnik.Map(512, 512)
    # Load a version of the style with no datasources
    mapnik.load_map(m, 'styles/nested-layers-1.xml')
    im = mapnik.Image(m.width, m.height)
    mapnik.render_mvt_merc(mvt, m, im)

    actual = 'images/mvt/nested_layers.mvt.actual.png'
    im.save(actual, 'png32')
    expected = 'images/mvt/nested_layers.mvt.expected.png'
    eq_(compare_file_size(actual, expected, 100), True)
def test_render_mvt_with_optional_arguments():
    # A dubious test ported from node-mapnik.
    # TODO: make these optional arguments to have actual effect.
    mvt = mapnik.VectorTileMerc(28, 12, 5)

    with open('data/tile3.mvt', 'rb') as f:
        buf = f.read()
        eq_(isinstance(buf, bytes), True)
        mapnik.merge_compressed_buffer(mvt, buf)

    eq_(len(mvt.get_buffer()), 987)
    eq_(mvt.is_painted, True)
    eq_(mvt.is_empty, False)

    m = mapnik.Map(256, 256)
    m.maximum_extent = mapnik.Box2d(-20037508.34, -20037508.34, 20037508.34,
                                    20037508.34)
    mapnik.load_map(m, 'styles/mvt_render_test.xml')

    im = mapnik.Image(m.width, m.height)
    mapnik.render_mvt_merc(mvt,
                           m,
                           im,
                           scale_factor=1.2,
                           scale_denom=1.5,
                           variables={'pizza': 'pie'})

    expected = 'images/mvt/tile3.expected.png'
    actual = 'images/mvt/tile3-2.actual.png'
    im.save(actual, 'png32')
    eq_(compare_file_size(actual, expected, 100), True)
def test_preview_mvt():
    mvt = mapnik.VectorTileMerc(28, 12, 5)

    with open('data/tile3.mvt', 'rb') as f:
        buf = f.read()
        eq_(isinstance(buf, bytes), True)
        mapnik.merge_compressed_buffer(mvt, buf)

    im = mapnik.Image(4096, 4096)
    mapnik.preview_mvt_merc(mvt, im)

    expected = 'images/mvt/tile3.preview.expected.png'
    actual = 'images/mvt/tile3.preview.actual.png'
    im.save(actual, 'png32')
    eq_(compare_file_size(actual, expected, 100), True)
def test_render_mvt_basic():
    m = mapnik.Map(256, 256)
    mapnik.load_map(m, 'styles/mvt_render_test.xml')
    mvt = mapnik.VectorTileMerc(28, 12, 5)

    with open('data/tile3.mvt', 'rb') as f:
        buf = f.read()
        eq_(isinstance(buf, bytes), True)
        mapnik.merge_compressed_buffer(mvt, buf)

    im = mapnik.Image(m.width, m.height)
    mapnik.render_mvt_merc(mvt, m, im)

    expected = 'images/mvt/tile3.expected.png'
    actual = 'images/mvt/tile3.actual.png'
    im.save(actual, 'png32')
    eq_(compare_file_size(actual, expected, 100), True)
Beispiel #6
0
def test_create_mvt_merc_with_raster():
    m = mapnik.Map(256, 256)
    mapnik.load_map(m, 'styles/raster.xml')
    mvt = mapnik.VectorTileMerc(136, 86, 8)
    mvt_buffer = mapnik.create_mvt_merc(m,
                                        mvt.x,
                                        mvt.y,
                                        mvt.z,
                                        tile_size=512,
                                        image_format="tiff")

    vti = mapnik.VectorTileInfo()
    vti.parse_from_string(mvt_buffer)
    eq_(vti.layers_size(), 1)
    layer = vti.layers(0)
    eq_(layer.features_size(), 1)
    feature = layer.features(0)
    raster = feature.raster()
    eq_(abs(len(raster) - 270050) < 10, True)
    img = mapnik.Image.frombuffer(raster)
    eq_(img.width(), 512)
    eq_(img.height(), 512)

    mapnik.merge_compressed_buffer(mvt, mvt_buffer)

    im = mapnik.Image(m.width, m.height)
    mapnik.render_mvt_merc(mvt, m, im)

    actual = 'images/mvt/raster.mvt.actual.png'
    im.save(actual, 'png32')
    expected = 'images/mvt/raster.mvt.expected.png'
    eq_(compare_file_size(actual, expected, 100), True)

    im2 = mapnik.Image(m.width, m.height)
    m.zoom_to_box(mvt.extent)
    mapnik.render(m, im2)
    actual2 = 'images/mvt/raster.actual.png'
    expected2 = 'images/mvt/raster.expected.png'
    im2.save(actual2, 'png32')
    eq_(compare_file_size(actual2, expected2, 100), True)
def test_render_mvt_raster_with_large_overzoom():
    mvt = mapnik.VectorTileMerc(2788, 6533, 14)

    with open('images/mvt/14_2788_6533.webp', 'rb') as f:
        mapnik.add_image_layer(mvt, '_image', f.read())

    # Look into the tile if there is the image
    vti = mapnik.VectorTileInfo()
    vti.parse_from_string(mvt.get_buffer())
    eq_(vti.layers_size(), 1)
    layer = vti.layers(0)
    eq_(layer.features_size(), 1)
    feature = layer.features(0)
    raster = feature.raster()
    eq_(len(raster), 98618)
    img = mapnik.Image.frombuffer(raster)
    eq_(img.width(), 512)
    eq_(img.height(), 512)

    m = mapnik.Map(256, 256)
    mapnik.load_map(m, 'styles/large_overzoom.xml')

    im = mapnik.Image(m.width, m.height)
    mapnik.render_mvt_merc(mvt,
                           m,
                           im,
                           x=2855279,
                           y=6690105,
                           z=24,
                           scale_factor=1,
                           buffer_size=256)

    expected = 'images/mvt/large_overzoom.expected.png'
    actual = 'images/mvt/large_overzoom.actual.png'
    im.save(actual, 'png32')
    eq_(compare_file_size(actual, expected, 100), True)
def test_render_mvt_merc():
    m = mapnik.Map(512, 512)
    mapnik.load_map(
        m, '../data-visual/styles/road-casings-grouped-rendering.xml')
    mvt = mapnik.VectorTileMerc(8796, 5374, 14)

    im2 = mapnik.Image(m.width, m.height)
    m.zoom_to_box(mvt.extent)
    mapnik.render(m, im2)
    actual2 = 'images/mvt/render_mvt_merc.classic.actual.png'
    expected2 = 'images/mvt/render_mvt_merc.classic.expected.png'
    im2.save(actual2, 'png32')
    eq_(compare_file_size(actual2, expected2, 100), True)

    mvt_buffer = mapnik.create_mvt_merc(m, mvt.x, mvt.y, mvt.z)
    mapnik.merge_compressed_buffer(mvt, mvt_buffer)

    im = mapnik.Image(m.width, m.height)
    mapnik.render_mvt_merc(mvt, m, im)

    actual = 'images/mvt/render_mvt_merc.mvt.actual.png'
    im.save(actual, 'png32')
    expected = 'images/mvt/render_mvt_merc.mvt.expected.png'
    eq_(compare_file_size(actual, expected, 100), True)