When working with large and complex polygon geometries, the size of your dataset – be it a feature class, shapefile or anther file type – can get impractically large to use. This is especially the case when performance is a key issue, such as when being used within a mapping application, where the rendering speed of the layers can make or break the experience for the user. Even just a few seconds of delay for your map layers to load will severely affect the usefulness of your web application, to a point where it will be too impractical (and frustrating) to use.
Fortunately there are ways to significantly reduce the size of your data files and speed up performance. The way to do this is by simplifying your geometries, by removing excessive vertices, lines and curves, to create a less detailed representation of your area. Within GIS this is called generalization – the method to reduce detail within your data. GIS software have inbuilt tools to help you do this, such as ArcGIS or QGIS, all which take your vector input data and create a simplified output version of it. Combined with other geoprocessing tools these can form a model builder to let you process large datasets as part of your required data workflow.
Mapshaper is a free online tool that let your perform generalizations of on the fly by simply uploading your dataset, currently Shapefiles, GeoJSON, TopoJSON, DBF and CSV files are supported. Just select your preferred method and options, and you can start exploring your edits directly in your browser. A great feature is that Mapshaper let you view how your edit reshapes your data instantly which makes it easier to select the right level of simplification for you. Remember that all generalizations are inherently a loss of detail which lowers the accuracy of your data. The level of detail needed is ultimately up to you and should be determined on the purpose of the data itself. For example, if you map the coastal outline of a whole country you might be fine with loosing much of the finer details of the coastal line, while zonal and planning work would require a much higher level of accuracy. In the end it’s a trade-off between smaller (faster), less accurate datasets and larger (slower), more accurate datasets.
Take the example below which shows the administrative boundaries of London’s boroughs. To the left is the full, original extent and to the right is the same file, simplified to the maximum. Few people would probably be able to tell that what they see to the right is the political outline of Greater London. What's right for you might be in the middle of these two, which offers a simplified, but still distinctive shape of London. In this example, with our third version below we went from a 761 KB Shapfile to just 11 KB in size. While this might not seem very significant, in a critical application with much larger datasets, such reductions can mean the difference between an instant responding application to one that will make your users pull their hair in frustration (especially with a poor internet connection!).
Which version do you prefer?
Mapshaper has more features that let you control your generalizations, for example the ability to fix resulting topology errors (polygon overlays) from your edits and also supports a console option. Give it a try and you might find out it helps to speed up your work as well.