Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mapshaper

Package Overview
Dependencies
Maintainers
0
Versions
471
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mapshaper

A tool for editing vector datasets for mapping and GIS.

  • 0.6.102
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
10K
decreased by-17.08%
Maintainers
0
Weekly downloads
 
Created
Source

Mapshaper

Introduction

Mapshaper is software for editing Shapefile, GeoJSON, TopoJSON, CSV and several other data formats, written in JavaScript.

Mapshaper supports essential map making tasks like simplifying shapes, editing attribute data, clipping, erasing, dissolving, filtering and more.

See the project wiki for documentation on how to use mapshaper.

To suggest improvements, add an issue.

Command line tools

Mapshaper includes several command line programs, which can be run under Mac OS X, Linux and Windows.

  • mapshaper Runs mapshaper commands.
  • mapshaper-xl Works the same as mapshaper, but runs with more RAM to support larger files.
  • mapshaper-gui Runs the mapshaper Web interface locally.

The project wiki has an introduction to using the command line tool that includes many simple examples.

For a detailed reference, see the Command Reference.

Interactive web interface

Visit the public website at www.mapshaper.org or use the web UI locally via the mapshaper-gui script.

All processing is done in the browser, so your data stays private, even when using the public website.

The web UI works in recent desktop versions of Chrome, Firefox, Safari and Internet Explorer. Safari before v10.1 and IE before v10 are not supported.

User-contributed resources

rmapshaper is an R package written by Andy Teucher that gives R users access to many of mapshaper's editing commands.

Here are resources for using mapshaper with Docker, provided by Christian Weiss.

You can find a number of mapshaper tutorials online, including a two part guide to command line cartography by Dylan Moriarty and this introduction by Jack Dougherty.

Large file support

Web interface

Firefox is able to load Shapefiles and GeoJSON files larger than 1GB. Chrome has improved in recent versions, but is still prone to out-of-memory errors when importing files larger than several hundred megabytes.

Command line interface

There are hard limits for reading and writing most file types. The maximum output size of a single file of any type is 2GB. Some file types (GeoJSON, CSV, .shp, .dbf) are read incrementally, so much larger files can be imported.

When working with very large files, mapshaper may become unresponsive or crash with the message "JavaScript heap out of memory."

You can use mapshaper-xl as a replacement for the standard mapshaper program to allocate more heap memory (8GB by default). You can allocate even more memory like this: mapshaper-xl 20gb [commands].

Another option is to run Node directly with the --max-old-space-size option. The following example (Mac or Linux) allocates 16GB of heap memory:

$ node  --max-old-space-size=16000 `which mapshaper` <mapshaper commands>

Installation

Mapshaper requires Node.js.

With Node installed, you can install the latest release version of mapshaper using npm. Install with the "-g" flag to make the executable scripts available systemwide.

npm install -g mapshaper

To install and run the latest development code from github:

git clone git@github.com:mbloch/mapshaper.git
cd mapshaper
npm install       # install dependencies
npm run build     # bundle source code files
npm link          # (optional) add global symlinks so scripts are available systemwide

Building and testing

From the project directory, run npm run build to build both the cli and web UI modules.

Run npm test to run mapshaper's tests.

License

This software is licensed under MPL 2.0.

According to Mozilla's FAQ, "The MPL's ‘file-level’ copyleft is designed to encourage contributors to share modifications they make to your code, while still allowing them to combine your code with code under other licenses (open or proprietary) with minimal restrictions."

Acknowledgements

My colleagues at The New York Times, for countless suggestions, bug reports and general helpfulness.

Mark Harrower, for collaborating on the original "MapShaper" program at the University of Wisconsin–Madison.

Keywords

FAQs

Package last updated on 19 Nov 2024

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc