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)

Geometry bounding boxes


A bounding box, often abbreviated into BBOX, is a list of the extreme coordinates of a geometry. Bounding boxes play a big role in spatial queries, as they allow for fast coarse computations; If two geometries' BBOXes do not intersect, there's no point in wasting CPU cycles for intersecting them precisely. In PostGIS, bounding boxes are computed and cached internally. There are specialized data types for bounding boxes: box2d, which can be visualized as a rectangle, and box3d, which forms, well, a box.

Accessing bounding boxes

A bounding box of a geometry can be accessed in two ways. The first is to create a Box2D type from a geometry (or a set of them):

SELECT ST_Extent(
ST_GeomFromText('POLYGON((391390 5817855,391490 5817955,391590 5818055, 319590 5817855,391390 5817855))', 32633)
);
             st_extent              
------------------------------------
 BOX(319590 5817855,391590 5818055)

Then to create one for a set of geometries:

SELECT ST_Extent(geom) FROM sometable...