Book Image

Mastering PostGIS

By : Dominik Mikiewicz, Michal Mackiewicz , Tomasz Nycz
Book Image

Mastering PostGIS

By: Dominik Mikiewicz, Michal Mackiewicz , Tomasz Nycz

Overview of this book

PostGIS is open source extension onf PostgreSQL object-relational database system that allows GIS objects to be stored and allows querying for information and location services. The aim of this book is to help you master the functionalities offered by PostGIS- from data creation, analysis and output, to ETL and live edits. The book begins with an overview of the key concepts related to spatial database systems and how it applies to Spatial RMDS. You will learn to load different formats into your Postgres instance, investigate the spatial nature of your raster data, and finally export it using built-in functionalities or 3th party tools for backup or representational purposes. Through the course of this book, you will be presented with many examples on how to interact with the database using JavaScript and Node.js. Sample web-based applications interacting with backend PostGIS will also be presented throughout the book, so you can get comfortable with the modern ways of consuming and modifying your spatial data.
Table of Contents (9 chapters)

Buffering and offsetting geometries


A buffer is a very common GIS operation. PostGIS can create polygonal buffers from any geometry with configurable distance and approximation levels.

For example, a simple 1,000 meter buffer from a Point looks like the following:

SELECT ST_Buffer( 
 (SELECT wkb_geometry FROM points WHERE osm_id = '253525668'), 
 1000); 

A simple buffer with default parameters

The first argument is an input geometry, and the second is the buffer distance in the units of the geometry's coordinate system.

Note

If the geometry is in a latitude-longitude coordinate system, then cast the geometry to a Geography type in order to be able to give the distance in meters.

The default buffer uses eight segments to approximate a quarter circle. If it's too coarse, more segments can be introduced at the expense of processing power:

SELECT ST_Buffer( 
 (SELECT wkb_geometry FROM points WHERE osm_id = '253525668'), 
 1000,32); 

We can also do the opposite, such as when we create an octagonal buffer...