当我设置tileSize:1024时,Tile-live mapnik返回空白图像

时间:2015-06-22 07:32:26

标签: mapnik

 tilelive.load({
        protocol: 'mapnik:',
        pathname: './styles/listingStyles2.xml',
        xml: xml,
        query:{
            tileSize: 256,
            //scale:0.5,
            //metatile: 1,
            autoLoadFonts: false
        }
        }, function(err, source) {
                if (err) {
                    console.log(err);
                    res.sendFile(path.join(__dirname, 'Blank.png'));
                } else {
                        source.getTile(filterParams.z, filterParams.x, filterParams.y, function(error, tile, headers) {
                        res.set(headers);
                        res.send(tile);
                        //res.sendFile(path.join(__dirname, 'Blank.png'));
                    });
                }});

此代码可以正常工作,但是当我更改tileSize:1024然后它返回空白图像时。

1 个答案:

答案 0 :(得分:0)

你得到它是因为在图书馆中,正在计算保持256作为基础。找到位置。

static int simple_remap_mmap(struct file *filp, struct vm_area_struct *vma)
{
    if (remap_pfn_range(vma, vma->vm_start, vm->vm_pgoff,
                vma->vm_end - vma->vm_start,
                vma->vm_page_prot))
        return -EAGAIN;

    vma->vm_ops = &simple_remap_vm_ops;
    simple_vma_open(vma);
    return 0;
}

这是包中Render.Js的片段,试一试它,你可以修改它以便你的解决方案。

您还必须注意以下事项。

var minx = (x * 256) * resolution - ORIGIN_SHIFT;
var miny = -((y + metaHeight) * 256) * resolution + ORIGIN_SHIFT;
var maxx = ((x + metaWidth) * 256) * resolution - ORIGIN_SHIFT;
var maxy = -((y * 256) * resolution - ORIGIN_SHIFT);

我希望这会帮助你,直到库更新。