
Security News
Another Round of TEA Protocol Spam Floods npm, But It’s Not a Worm
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.
@mapnik/mapnik
Advanced tools
Render a map from a stylesheet:
const fs = require('node:fs');
const mapnik = require('@mapnik/mapnik');
// register fonts and datasource plugins
mapnik.register_default_fonts();
mapnik.register_default_input_plugins();
var map = new mapnik.Map(256, 256);
map.load('./test/stylesheet.xml', function(err,map) {
if (err) throw err;
map.zoomAll();
var im = new mapnik.Image(256, 256);
map.render(im, function(err,im) {
if (err) throw err;
im.encode('png', function(err,buffer) {
if (err) throw err;
fs.writeFile('map.png',buffer, function(err) {
if (err) throw err;
console.log('saved map image to map.png');
});
});
});
});
Convert a jpeg image to a png:
var mapnik = require('@mapnik/mapnik');
new mapnik.Image.open('input.jpg').save('output.png');
Convert a shapefile to GeoJSON:
const fs = require('node:fs');
const path = require('node:path');
const mapnik = require('@mapnik/mapnik');
mapnik.register_datasource(path.join(mapnik.settings.paths.input_plugins,'shape.input'));
var ds = new mapnik.Datasource({type:'shape',file:'test/data/world_merc.shp'});
var featureset = ds.featureset()
var geojson = {
"type": "FeatureCollection",
"features": [
]
}
var feat = featureset.next();
while (feat) {
geojson.features.push(JSON.parse(feat.toJSON()));
feat = featureset.next();
}
fs.writeFileSync("output.geojson",JSON.stringify(geojson,null,2));
For more sample code see the tests and sample code.
Starting from v4.6.0, node-mapnik module is published as "universal" binaries on GitHub NPM registry and npmjs using node-addon-api,
node-gyp-build and prebuildify
Currently supported platforms are
linux-x64linux-arm64 (from v4.6.5)darwin-x64darwin-arm64Consult N-API documentation for more details: https://nodejs.org/dist/latest/docs/api/n-api.html#n_api_node_api_version_matrix
npm install @mapnik/mapnik
Note: If using GitHub NPM registry consult "Installing a package ". You will need to authenticate to GitHub Packages, see "Authenticating to GitHub Packages."
.npmrc, create a new .npmrc file if one doesn't exist.@mapnik:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=XXXXXXXXXXXXXXXXXXXXXXXXX
Note: This will install the latest node-mapnik 4.6.x series, which is recommended.
On macOS and Linux:
Ensure mapnik-config program is available and on your ${PATH}.
npm install --build-from-source
To "prebuild" binaries npm run prebuildify
SSE support is enabled by default on x86_64.
To require node-mapnik as a dependency of another package put in your package.json:
"dependencies" : { "@mapnik/mapnik":"*" } // replace * with a given semver version string
To run the tests do:
npm test
BSD, see LICENSE.txt
FAQs
Node.js bindings for Mapnik (mapnik.org)
The npm package @mapnik/mapnik receives a total of 892 weekly downloads. As such, @mapnik/mapnik popularity was classified as not popular.
We found that @mapnik/mapnik demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.

Security News
PyPI adds Trusted Publishing support for GitLab Self-Managed as adoption reaches 25% of uploads

Research
/Security News
A malicious Chrome extension posing as an Ethereum wallet steals seed phrases by encoding them into Sui transactions, enabling full wallet takeover.