DefinitelyTyped/types/mapnik/mapnik-tests.ts
Aaron Reisman 92ee9c22b5 fix: node callbacks (#34770)
* fix: node callbacks

* fix line length

* fix related libs

* fix oibackoff
2019-04-19 12:48:09 -07:00

41 lines
1.3 KiB
TypeScript

import * as mapnik from "mapnik";
import * as fs from "fs";
import * as path from "path";
mapnik.register_default_fonts();
mapnik.register_default_input_plugins();
const map: mapnik.Map = new mapnik.Map(256, 256);
map.load('./test/stylesheet.xml', function xx(err: Error, map: mapnik.Map) {
if (err) throw err;
map.zoomAll();
const im: mapnik.Image = new mapnik.Image(256, 256);
map.render(im, function xxx(err: Error, im: mapnik.Image) {
if (err) throw err;
im.encode('png', function xxxx(err: Error, buffer: Buffer) {
if (err) throw err;
fs.writeFile('map.png', buffer, function xxxxx(err: Error | null) {
if (err) throw err;
console.log('saved map image to map.png');
});
});
});
});
// new mapnik.Image.open("xxx").save("xx");
mapnik.register_datasource(path.join(mapnik.settings.paths.input_plugins, 'shape.input'));
const ds: mapnik.Datasource = new mapnik.Datasource({type: 'shape', file: 'test/data/world_merc.shp'});
const featureset: mapnik.Featureset = ds.featureset();
const geojson: any = {
type: "FeatureCollection",
features: [
]
};
let feat: mapnik.FeaturesetNext = featureset.next();
while (feat) {
geojson.features.push(JSON.parse(feat.toJSON()));
feat = featureset.next();
}
fs.writeFileSync("output.geojson", JSON.stringify(geojson, null, 2));