2016-06-04 7 views
0

Ich versuche ein Bild von einem WMS in Mapnik zu laden, aber ich erhalte einen Fehler Unhandled rejection Error: image_reader: can't determine type from input data. Der Code, abgespeckte, istMapnik kann den Bildtyp nicht bestimmen

const request = require('request-promise'); 
const mapnik = require('mapnik'); 

request(`${wmsUrl}/GetMap`, { 
    qs: { 
    bbox: '-90,32,-89,33', 
    format: 'image/png', 
    height: 200, 
    layers: '5', 
    request: 'GetMap', 
    'srs(crs)': 'EPSG:4326, 
    styles: 'default', 
    version: '1.1', 
    width: 200, 
    }, 
}).then(res => { 
    const buffer = new Buffer(res); 
    return mapnik.Image.fromBytesSync(buffer); // This is the error line 
}); 

ich die Anforderung manuell ausgeführt haben und es funktioniert, und ich habe den Puffer untersucht und es sieht gut aus (das heißt am Anfang ‚PNG‘ hat). Ich bin mir nicht sicher, was ich sonst noch versuchen sollte.

Antwort

0

Falls jemand etwas ähnliches wie diese trifft, das Problem ist, dass request (oder in diesem Fall request-promise) geht davon aus, dass die Antwort Körper eine Zeichenfolge sein sollten und führen implizit toString darauf. Zu lösen, sollte die Anforderung

sein
request(url, { 
    qs: { ... }, 
    encoding: null, 
}).then({ ... }); 

mehr Details hier: https://github.com/request/request#requestoptions-callback