Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Mastering PostGIS

You're reading from   Mastering PostGIS Modern ways to create, analyze, and implement spatial data

Arrow left icon
Product type Paperback
Published in May 2017
Publisher Packt
ISBN-13 9781784391645
Length 328 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Authors (4):
Arrow left icon
Dominik Mikiewicz Dominik Mikiewicz
Author Profile Icon Dominik Mikiewicz
Dominik Mikiewicz
Michal Mackiewicz Michal Mackiewicz
Author Profile Icon Michal Mackiewicz
Michal Mackiewicz
Tomasz Nycz Tomasz Nycz
Author Profile Icon Tomasz Nycz
Tomasz Nycz
George Silva George Silva
Author Profile Icon George Silva
George Silva
Arrow right icon
View More author details
Toc

Table of Contents (10) Chapters Close

Preface 1. Importing Spatial Data FREE CHAPTER 2. Spatial Data Analysis 3. Data Processing - Vector Ops 4. Data Processing - Raster Ops 5. Exporting Spatial Data 6. ETL Using Node.js 7. PostGIS – Creating Simple WebGIS Applications 8. PostGIS Topology 9. pgRouting

Spatial relationship


The most common need for extraction of some raster data from larger dataset is to reduce computing time. Let's look into spatial relationship and extraction functions in PostGIS. For getting results in raster space, we should use ST_Clip() and ST_Intesection() for vector space results.

In the previous example, we extracted one raster cell value for vector point. Now, we need to query for multiple point values. There we should use the ST_Intersection() function. As a standard, this function returns geoval type in vector space, that we need to join with our vector points. Let's look at an example:

SELECT  foo.name, 
  (foo.geomval).val AS height 
FROM ( 
  SELECT 
    ST_Intersection(A.rast, g.geom) As geomval, 
    g.name 
  FROM eudem.clip AS A 
  CROSS JOIN ( 
    SELECT geom, name FROM raster_ops.places WHERE type='village' 
  ) As g(geom, name) 
  WHERE A.rid = 4 
) As foo; 
    name    |      height       
------------+------------------ 
 Koniaków   |           742...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image