You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
//mapnik pool
var mapnikPool = require('mapnik-pool')(mapnik);
var pool = mapnikPool.fromString(fs.readFileSync('./style.xml', 'utf8'), {
'size': 512,
'height': 512,
'width': 512,
}, {});
//postgis
var settings = require('./settings.js');
var postgis = new mapnik.Datasource(settings.postgis);
app.get('/render', function (req, res) {
console.log('request' + "\n");
pool.acquire(function (err, map) {
//console.log(map);
var query = req.url.split('&');
//console.log(query);
var bbox = query[13].replace('BBOX=', '').split('%2C').map(function (item) {
return parseFloat(item);
});
//get layer
var layerName = query[5].replace('LAYERS=', '').split('%3A')[1];
//set style, datasource
var layer = new mapnik.Layer(layerName, mapProjection);
layer.datasource = postgis;
layer.styles = ['style_pg'];
map.add_layer(layer);
map.extent = bbox;
//map.zoomAll(bbox);
//console.log(map);
var im = new mapnik.Image(512, 512);
map.render(im, function (err, im) {
if (err) throw err;
im.encode('png', function (err, buffer) {
if (err) throw err;
fs.writeFile('./tiles/map' + Math.round(Math.random() * 10000) + '.png', buffer, function (err) {
if (err) throw err;
//send file must be here because async functions
res.setHeader('Content-Length', buffer.length);
res.setHeader('Content-Type', 'image/png');
/*res.sendFile('map' + Math.round(Math.random() * 10000) + '.png', {
'root': '/var/www/fmp/etc/nodejs/'
});*/
res.send(buffer);
//console.log('saved map image to map.png');
});
});
});
//});
});
});
app.listen(3003, () => {
console.log('Server is running on port 3003');
});
`
I'm trying to rendering the data by using the mapnik in node js. But continuously facing errors.
`
/set framework and dependencies
var express = require('express');
var app = express();
var url = require('url');
//mapnik and dependecies
var mapnik = require('mapnik');
var fs = require('fs');
var mapProjection = '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs';
var map = new mapnik.Map(512, 512, mapProjection);
//mapnik
//mapnik.register_default_fonts();
//mapnik.register_default_input_plugins();
//mapnik pool
var mapnikPool = require('mapnik-pool')(mapnik);
var pool = mapnikPool.fromString(fs.readFileSync('./style.xml', 'utf8'), {
'size': 512,
'height': 512,
'width': 512,
}, {});
//postgis
var settings = require('./settings.js');
var postgis = new mapnik.Datasource(settings.postgis);
app.get('/render', function (req, res) {
console.log('request' + "\n");
});
app.listen(3003, () => {
console.log('Server is running on port 3003');
});
`
Here is my settings.js
var path = require('path');
module.exports.styles = path.join(__dirname, 'styles');
module.exports.postgis = {
'dbname' : 'osm',
'table': 'morocco_roads',
'geometry_field' : 'geom',
'srid' : 3857,
'user' : 'osmrehan05',
'password': 'Pakistan12@',
'max_size' : 10,
'type' : 'postgis',
'port': '5432',
'host': 'localhost',
'extent' : '-20005048.4188,-9039211.13765,19907487.2779,17096598.5401' //set for epsg: 3857
};
Here is my package.json
{
"name": "my_mapnik_project",
"version": "1.0.0",
"description": "",
"main": "rendernew2.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"start": "nodemon rendernew2.js",
"dev": "nodemon rendernew2.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.18.2",
"fs": "^0.0.1-security",
"mapnik": "^4.5.9",
"mapnik-pool": "^0.1.3",
"pg": "^8.11.3",
"url": "^0.11.3"
},
"devDependencies": {
"nodemon": "^3.0.1"
}
}
"Here is my style.xml
<Style name="blue_style"> </Style> blue_style csv wkt,Name POLYGON((-180 -90,-180 90,180 90,180 -90,-180 -90)),Blue RectangleThe text was updated successfully, but these errors were encountered: