Мозаичный мапник возвращает пустое изображение, когда я устанавливаю tileSize: 1024

 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, он возвращает пустые изображения.


person niranjan bala    schedule 22.06.2015    source источник
comment
потому чтоtilesize : 1024, их не существует, и мапник вам ничего не возвращает. Проверьте ошибки консоли, должно быть написано: файл не найден, пока сканируется размер тайла 1024. Обычно стандартный размер плитки составляет 256x256, поэтому других в большинстве случаев не существует.   -  person Festim Cahani    schedule 08.06.2016


Ответы (1)


Вы получаете это, потому что в библиотеке расчет делается на основе 256. чтобы найти позиции.

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);

это фрагмент из Render.Js в пакете, попробуйте поиграть с ним, и вы можете изменить его для своего разрешения.

также вы должны позаботиться о следующем.

var MAX_RES = EARTH_CIRCUMFERENCE / 256;

Я надеюсь, что это поможет вам, пока библиотека не будет обновлена.

person N.K    schedule 09.06.2016