Postgresql de mekansal sorgular
Download
1 / 38

POSTGRESQL’DE MEKANSAL SORGULAR - PowerPoint PPT Presentation


  • 259 Views
  • Uploaded on

POSTGRESQL’DE MEKANSAL SORGULAR. KOCAELİ ÜNİVERSİTESİ Bilgisayar Mühendisliği Hazırlayan : Atalay ATAR Danışman : Yrd. Doç. Dr. Ahmet SAYAR. MEKANSAL VERİLER - GİRİŞ. Hangi m ekansal veriler üzerinden sorgular yapacağız? 1- Kendi mekansal verilerilerimizi oluşturalım.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' POSTGRESQL’DE MEKANSAL SORGULAR' - betsy


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Postgresql de mekansal sorgular
POSTGRESQL’DE MEKANSAL SORGULAR

KOCAELİ ÜNİVERSİTESİ

Bilgisayar Mühendisliği

Hazırlayan : Atalay ATAR

Danışman : Yrd. Doç. Dr. Ahmet SAYAR


Mekansal ver ler g r
MEKANSAL VERİLER - GİRİŞ

Hangi mekansal veriler üzerinden sorgular yapacağız?

1-Kendi mekansal verilerilerimizi oluşturalım.

Polygon

MultiLineString

Point

2-Gerçek mekansal verilerileri inceleyelim.

Dünya Haritası

Türkiye İller Haritası

Türkiya Demir Yolları

Türkiya Nehirleri ve Gölleri


Kendi verilerimizi olu tural m
Kendi Verilerimizi Oluşturalım...

Mekansal Sorgular için PosrtgreSQL’ de 3 tane table oluşturalım. Bunun için mekansal bir veritabanı oluşturmalıyız.

Bölgeler table Polygon veri tipinde

Nehirler table MultiLineString veri tipinde

Şehirler table Point veri tipinde


Kendi verilerimizi olu tural m1
Kendi Verilerimizi Oluşturalım...

1 - ‘‘poligonbolge’’ adında bir table in alan adları

‘name’ varchar

‘koordinat’ geometry

CREATE TABLE poligonbolge (name varchar, koordinat geometry);

INSERT INTO poligonbolge VALUES

('bolge1', 'POLYGON((-10 10,0 10,0 0,-10 0,-10 10))'),

('bolge2', 'POLYGON((-10 0,0 0,6 -5,0 -10,-10 -10,-16 -5,-10 0))'),

('bolge3', 'POLYGON((0 10,10 0,0 0,0 10))'),

('bolge4', 'POLYGON((0 0,10 0,10 -10,0 -10,6 -5,0 0))'),

('bolge5', 'POLYGON((0 10,15 10,15 -5,10 -5,10 0,0 10))');


Poligonbolge table
Poligonbolge Table

Sorguyu yürüttüğümüzde

table oluşuyor

ve 5 bölge table a

ekleniyor.



Kendi verilerimizi olu tural m2
Kendi Verilerimizi Oluşturalım...

2- ‘‘multilinenehir’’ adında bir table in alan adları

‘name’ varchar

‘koordinat’ geometry

CREATE TABLE multilinenehir (name varchar, koordinat geometry);

INSERT INTO multilinenehir VALUES

('nehir1', 'MULTILINESTRING((-3 5,-6 1,-8 -4),(-6 1,0 3,3 4))'),

('nehir2', 'MULTILINESTRING((11 6,8 -1,9 7),(8 -1,0 -4,-1 -6))');



Kendi verilerimizi olu tural m3
Kendi Verilerimizi Oluşturalım...

3- ‘‘noktasehir’’ adında bir table in alan adları

‘name’ varchar

‘isiort’ numeric

‘nufus’ numeric(10)

‘koordinat’ geometry

CREATE TABLE noktasehir (name varchar,isiort numeric,nufus numeric(10), koordinat geometry);

INSERT INTO noktasehir VALUES

('Sehir1' ,9,650000,'POINT(-9 8)'), ('Sehir2' ,8,530000,'POINT(-6 6)'),

('Sehir3' ,8,700000,'POINT(-3 2)'), ('Sehir4' ,6,450000,'POINT(-4 5)'),

('Sehir5' ,8,1600000,'POINT(-11 -4)'), ('Sehir6' ,9,1400000,'POINT(-9 -9)') ('Sehir7' ,9,2200000,'POINT(-3 -3)'), ('Sehir8' ,10,820000,'POINT(-2 -8)'),

('Sehir9' ,11,930000,'POINT(3 -6)'), ('Sehir10' ,12,640000,'POINT(-5 -5)'),

...........................




Mekansal sorgulara ba lang
Mekansal Sorgulara Başlangıç

1- Bölgelerin Alanlarını Hesaplama

Poligonbolge (Polygon)

2- Nehirlerin Uzunluklarını Bulma

Multilinenehir(Multistring)

3- Şehir7’in diğer şehirlere uzaklıkları

Noktasehir(Point)

4- Bölgelerin Yıllık Sıcaklık Ortalaması ve Nüfus Sayısı

Poligonbolge - Noktasehir

5- Nehir1 ve Nehir2 hangi bölgelerden geçiyor

Poligonbolge - Multilinenehir


B lgelerin alanlar n hesaplama
Bölgelerin Alanlarını Hesaplama

Alan hesabı için ST_AREA fonksiyonunu kullanabilir. Bu fonksiyon geometry veri tipinden bir değişken alır ve geri foat tipinde bir sayı döndürür.

float ST_Area(geometry g1);

Geometry veri tipi bir polygon veya multipolygon ise alanını hesaplar. Bunlar dışında bir değer ise örneğin point,line gibi hata vermez. Fakat Sıfır döndürür.



Nehirlerin uzunluklar n bulma
Nehirlerin Uzunluklarını Bulma

Nehir uzunlukları için ST_Lenght fonksiyonu kullanılır. Bu fonksiyon geometry veri tipinden bir değişken alır ve geri foat tipinde bir sayı döndürür.

float ST_Lenght(geometry g1);

Bu fonksiyon line, linestring, multilinestring vb. veri tipi dışında bir veri alırsa hata vermez; fakat sıfır döndürür.


Ehir7 nin di er ehirlere olan uzakl
Şehir7’nin Diğer Şehirlere Olan Uzaklığı

Burada ST_Distance fonksiyonunu kullanıyoruz. Geomtry veri tipinde değişken alır ve float bir değer döndürür.

float ST_Distance(geometry g1, geometry g2);

Geometry veri tipi herhangi bir tür olabilir.

Point – Point, Polygon – Point,

Polygon – Line , Linestring – Multi Polygon vb.

Aradaki en kısa mesafeyi hesaplar.



B lgelerin y ll k s cakl k ortalamas ve n fus say s
Bölgelerin Yıllık Sıcaklık Ortalaması ve Nüfus Sayısı

Poligonbolge tablomuzda bölgelerin nüfus bilgisi ve yıllık sıcaklık ortalaması bilgisi yoktur. Bu bilgiler noktasehir tablosunun içindedir. Yapmamız gereken şehirlerin hangi bölgede olduklarını bulup bölgeler için bu bilgileri şehirlerinden almaktır. Hangi şehrin hangi bölgede olduğunu ST_Intersects

fonksiyonu ile buluyoruz.

booleanST_Intersects( geometry geomA , geometry geomB);

Geometry tipinde iki veri alır ve geriye true ya da false sonucu dönderirir. Geometrilerin birbirini kapsama ya da kesişme durumunu inceler.




Nehir1 ve nehir2 hangi b lgelerden ge iyor
Nehir1 ve Nehir2 hangi bölgelerden geçiyor Sayısı

Nehirlerin hangi bolgelerden geçtiğini ST_Crosses fonksiyonunu kullanarak bulalım.

booleanST_Crosses(geometryg1, geometry g2);


Nehir1 ve nehir2 hangi b lgelerden ge iyor1
Nehir1 ve Nehir2 hangi bölgelerden geçiyor Sayısı

Sorgu Analiz Planı :



Ger ek mekansal veriler
Gerçek Mekansal Veriler Sayısı

Haritaların shape uzantılı dosya biçiminden PostgreSql’e aktarabiliriz. Postgresql’de ‘Plungins/PSQL console’ tıkladığımızda karşımıza çıkan pencereden yükleme yapabiliriz.

Dünya haritası (world table)

Türkiye iller haritası (adms table)

Türkiye nehirleri (waterlines)

Bu haritaları yükleyip sorgularımıza başlamadan görünüşlerini alalım.




Mekansal sorgulara ba lang1
Mekansal Sorgulara Başlangıç Sayısı

1- Ankara’nın komşularını bulmak

2- İlleri Yüz Ölçümlerine Göre Sıralayalım

3- Ülkelerin Türkiye’ye Olan Uzaklıkları

4- Türkiye’nin komşularının sınır uzunlukları

5- Kızılırmak hangi illerden ne uzunluklarda geçer?

6- Koordinat değerlerini bulma


Ankara n n kom ular n bulmak
Ankara’nın komşularını bulmak Sayısı

Komşulukları bulmak için geometrilerin birbirlerine göre durumlarına bakarız. Bunun için ST_Touches fonksiyonu kullanılır.


Ankara n n kom ular n bulmak1
Ankara’nın komşularını bulmak Sayısı

booleanST_Touches(geometryg1, geometry g2);




T rkiye nin kom ular n n s n r uzunluklar
Türkiye’nin komşularının sınır uzunlukları Sayısı

Ülkeler polygon tipinde tanımlanmıştır. ST_Length fonksiyonu poligonların uzunluklarını sıfır döndürmektedir. Bu yüzden ST_Lenght ve ST_Boundary

fonksiyonlarını kullanacağız.

geometry ST_Boundary(geometry geomA);

Geri geometry tipinde değişken dönderir. Değerin sınır hatlarını belirtir.

LineString MulitiPoint

Polygon LineString

MultiLineString MultiPoint




Koordinat de erlerini bulma
Koordinat değerlerini bulma Sayısı

ST_AsText(geometry)

textST_AsText(geometry g1);

SELECT ST_AsText('01030000000100000005000000000000000000 000000000000000000000000000000000000000000000000 F03F000000000000F03F000000000000F03F000000000000F03 F000000000000000000000000000000000000000000000000');

st_astext --------------------------------

POLYGON((0 0,0 1,1 1,1 0,0 0))

(1 row)


Hangi mekansal fonksiyonlar g rd k
Hangi mekansal fonksiyonları gördük Sayısı

ST_AREA

ST_LENGTH

ST_DISTANCE

ST_INTERSECTS

ST_CROSSES

ST_TOUCHES

ST_BOUNDARY

ST_ASTEXT


Kullan lan yard mc programlar
Kullanılan Yardımcı Programlar Sayısı

OpenGeo Suite

Quantum Gis

uDig


Kaynak a
Kaynakça Sayısı

http://www.postgis.org/docs/

http://jaspa.forge.osor.eu/spatial_data.html

http://www.mapcruzin.com/free-turkey-arcgis-maps-shapefiles.htm

http://www.mapcruzin.com/download-free-arcgis-shapefiles.htm

http://revenant.ca/www/postgis/workshop/index.html

http://workshops.opengeo.org/postgis-intro/index.html

http://workshops.opengeo.org/stack-intro/contents.html


ad