PostgreSQL 12 ‘ye PostGIS Kurulumu

PostGIS nesne ilişkisel veritabanı için, geometrik özellikleri destekleyen açık kaynak kodlu yazılım programıdır desek yanlış olmaz. PostGIS postgresql ile birlikte kullanıyoruz. PostGIS sayesinde verilerin polygon, linestring ve point özelliklerini veritabanımızda tutabiliriz. Polygon belli bir bölgeyi, linestring belirli bir doğru parçasını simgeler diyebiliriz.

PostrgreSQL 12 üzerine PostGIS kurulumunu aşağıda adım adım aktarıyoruz.

Birinci adımda RPM paketleri indiriyoruz.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm


sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

PowerTool ‘u enable ediyoruz.

sudo dnf config-manager --set-enabled PowerTools

Disable default PostgreSQL AppStream repository.

sudo dnf -qy module disable postgresql

PostGIS ‘i yükleyelim

sudo yum install postgis25_12

Bu PostgreSQL 12 için PostGIS v2.5 yükleyecektir.

rpm -qi postgis25_12

Gerekli yüklemeler yapıldıktan sonra şimdi de EXTENTION ‘ı oluşturalım.

su - postgres
createuser demo_usr
createdb demo_postgis -O demo_usr

-- Bağlantıyı sağlayalım

psql -d demo_postgis

CREATE EXTENSION postgis;

PostGIS versiyonunu sorgulayalım

SELECT PostGIS_version();

Kullandığı kütüphane versiyonlarını sorgulayalım.

select PostGIS_Full_Version();

Şimdi örneklerimize geçelim. Aşağıda Id ve Gemometri kolonu içeren bir tablo oluşturarak örneklerimize başlıyoruz.

create table table_a
(
    id serial NOT NULL,
    geo geometry,
    CONSTRAINT tableA_pkey PRIMARY KEY (id)
);

table_a tablosuna AddGeometryColumn fonksiyonu ile geo2 adında coğrafi koordinatta konumu 4326 olan ve iki boyutlu koordinatları içerecek kolon ekleyelim.

SELECT AddGeometryColumn ('public','table_a','geo2',4326,'POINT',2);

geomfromtext fonksiyonu ile nokta oluşturalım.

insert into table_a (geo)
select st_geomfromtext('POINT(30.8618697 36.9090847)',4326);

makepoint fonksiyonu ile nokta oluşturma ve setsrid ile projeksiyonunu tanımlayalım

select st_setsrid(
            st_makepoint(32.8618697,39.9090847),4326
        );

geojson’dan geometri olusturma

insert into table_a (geo)
select st_geomfromgeojson('{"type":"Point","coordinates":[32.7703187,39.9449081]}');

kml’den geometri olusturma

insert into table_a (geo)
select st_geomfromkml('<Point><coordinates>32.770318699999997,39.944908099999999</coordinates></Point>');

makeline ile çizgi oluşturalım

insert into table_a (geo)
select st_makeline(
st_geomfromtext('POINT(32.8618697 39.9090847)',4326), st_geomfromtext('POINT(33.8618697 39.9090847)',4326)
);

makepolygon ile poligon oluşturalım

insert into table_a (geo)
    SELECT ST_MakePolygon(ST_GeomFromText('LINESTRING(75.15 29.53 1,77 29 1,77.6 29.5 1, 75.15 29.53 1)')); 

wkt formatında geomtri çıktısı verir

 select st_astext(geo) from table_a;

geojson formatında geomtri çıktısı verir

kml formatında çıktı verir, kml için projeksiyon bilgisi tanımlanmış olmalı

PostGIS Dökümanı için ; https://postgis.net/stuff/postgis-2.5.pdf

Kolay Gelsin.

Leave a Reply

Your email address will not be published. Required fields are marked *