CBS DE PROGRAMLAMA DERSİ NOTLARI OPEN STREET MAP VERİLERİNİN POSTGRESQL/POSTGIS VERİTABANINA AKTARILMASI GEOSERVER DA YAYINLANMASI Yrd. Doç. Dr. Özgün AKÇAY ÇOMÜ GEOMATİK MÜHENDİSLİĞİ BÖLÜMÜ 24.12.2015
İçindekiler 1-Veritabanı Oluşturma...3 1.1-Komut İstemi(Yönetici) İle;...3 1.2-PgAdmin III Arayüzü İle;...5 2-Extension (postgis) Ekleme...6 2.1-Komut İstemi(Yönetici) İle;...6 2.2-PgAdmin III Arayüzü İle;...7 3-Open Street Map'ten Shape file (.shp) İndirme...8 4-Shape File'ı Postgis'e Aktarma...9 4.1-Komut İstemi(Yönetici) İle;...9 4.2-PgAdmin III Arayüzü İle;...10 4.3-Shape File'dan Postgis'e Aktarılan Verilerin SHELL Kabuğu Üzerinden Sorgulanması...11 4.4-Shape File'dan Postgis'e Aktarılan Verilerin PgAdmin III Üzerinden Sorgulanması...12 5-Geoserver İle PostGİS Tablosu Yayınlama...13 5.1-Veri Kaynağı Oluşturma(Create a Data Store)...14 5.2-Tabaka Oluşturma (Create a Layer)...15 5.3-Yayınlanan Verinin Görüntülenmesi...17 2
PostgreSQL&Postgis 1-Veritabanı Oluşturma 1.1-Komut İstemi(Yönetici) İle; Komut İstemi (CMD) Yönetici olarak çalıştırılır. PostreSQL'in kayıtlı olduğu, C:\Program Files\PostgreSQL\9.4\bin klasörüne 'cd' komutu ile ulaşılır. 3
(...\bin klasörünün olduğu adresi... içinde yazmamızın sebebi, adres satırının boşluk karekteri (...Program Files...) barındırıyor olmasıdır.) CDM üzerinden 'createdb -U postgres guvendb' komutu ile veritabanı oluşturulur. 'createdb -U postgres guvendb' komut içinde '-U postgres' kodu kullanılarak veritabanı oluştururken yaşanan password ile ilgili problemleri çözülmüş olur. 'guvendb' isimli veritabanı oluşmuş durumda. 4
1.2-PgAdmin III Arayüzü İle; Databases(sağ tık)>new Database tıklanır. 5
2-Extension (postgis) Ekleme 2.1-Komut İstemi(Yönetici) İle; Oluşturulan veritabanına mekansal özellik eklemek için PostgreSQL'in eklentisi olan 'Postgis' in eklenmesi gerekir.bunun için; CMD üzerinden 'psql -U postgres -d guvendb -c CREATE EXTENSION postgis; ' komutu uygulanır. Burada; -d, Shape file dosyasındaki verilerle yeni bir veritabanı tablosu oluşturmadan önce veritabanı tablosunu çıkart komutunu, -c ise, Shape file'dan veri aktarılmaya uygun default modda bir tablo oluştur komutunu ifade eder. 6
2.2-PgAdmin III Arayüzü İle; guvendb>extensions(sağ tık)>new Extension Mekansal özellikli veritabanımız oluşmuş oldu. 7
3-Open Street Map'ten Shape file (.shp) İndirme http://www.openstreetmap.org/#map=5/51.500/-0.100 >Dışa Aktar> Büyükşehir Çıktıları https://mapzen.com/data/metro-extracts sitesine yönlendirir. Alt kısımdaki arama kısımda bir çok büyükşehirin farklı formatlarda verileri mevcuttur. 8
4-Shape File'ı Postgis'e Aktarma 4.1-Komut İstemi(Yönetici) İle; CMD komut satırına, ' shp2pgsql -c -D -s 4326 -i -I E:\bursa_data\roads.shp road > road.sql' komutu uygulanarak; E:\bursa_data konumundaki shape file dosyasını bir veri tabanına aktarılmak üzere hazır hale getirir.(4326 WGS 84 kooridinat sistemini gösterir.) Bu komutun uyulanmasıyla da E:\bursa_data konumundaki shape file dosyaları 'guvendb' isimli veritabanına aktarılmış oldu. 9
4.2-PgAdmin III Arayüzü İle; Aktarımın yapılmak istendiği veritabanı içindeki Schemas>public>Tables tıklanır. Ardından ana kontrol panelindeki Plugins>PostGİS Shape File and DBF Loader 2.1 tıklanarak açılan pencereden> View connection details... ile server bağlantısı kurulur. Bağlantı kurulduktan sonra Add File tıklanarak aktarımı yapılmak istenen Shape File dosyaları gösterilerek import edilir. Shapefile import completed ibaresinin görülmesi işlemin başırılı bir şekilde tamamlandığı anlamına gelir. 10
4.3-Shape File'dan Postgis'e Aktarılan Verilerin SHELL Kabuğu Üzerinden Sorgulanması -road Tablosu 11
4.4-Shape File'dan Postgis'e Aktarılan Verilerin PgAdmin III Üzerinden Sorgulanması Veritabanında görüntülenmek istenen tablonun üstüne sağ tıklanır>view data>view all rows seçenekleri tıklanarak sorgulama yapılabilir. road Tablosu 12
5-Geoserver İle PostGİS Tablosu Yayınlama Geoserver kurulumu yapıldıktan sonra Start Geoserver'a tıklanıp http://localhost:8080/geoserver üzerinden kullanıcı adı parola girilerek sunucuya bağlanır. 13
5.1-Veri Kaynağı Oluşturma(Create a Data Store) Data>Stores tıklanarak bir sonraki pencereden Add new store tıklanır. PostGIS NG-Postgis Database tıklanırak yeni bir data kaynağı oluşturulur. Basic Store Info kısmından yayınlanacak PostGİS tablosunun adı Data Source Name kısmına yazılır ve bir alttaki Description kısmınada yayınlanacak verinin açıklaması yapılır. 14
PostGIS'ten aktarılacak tablonun bulunduğu veritabının bağlantı parametrelerinin tanımlanması yapılmalıdır. Sol alttan Save dediğimizde veri kaynağımız oluşmuş olacaktır. 5.2-Tabaka Oluşturma (Create a Layer) Data>Layers>Add a new resource>add layer from tıklanarak oluşturulacak tabakanın hangi veri kaynağından alınacağı belirtilir.oluşturduğumuz cite:road kaynağı seçilir. Bu aşamada karşımıza verinin çekileceği veritabanındaki (guvendb) bütün tabakalar çıkacaktır. Yayınlamak istediğimiz tabakanın sağındaki Publish tıklanarak düzenlemeler yapılır. 15
Oluşturulacak tabakanın bilgileri girilir. Boundin Boxes kısmından tabakadaki verilerin köşe koordinatlarını hesaplamak için önce Compute from data ardından Compute from Native bounds linkleri tıklanarak boş kutucukların koordinat değerleriyle doldurulması sağlanmalıdır. Sayfanın üst kısmındaki Publishing tıklanır. 16
WMS Settings>Default Style kısmından verinin tipi seçilir. Yayınlamak istediğimiz veriler Bursa'nın yolları olduğundan veri tipi line olarak seçilmeli. Son olarak sayfanın alt tarafından Save tıklanarak işlem bitirilir. 5.3-Yayınlanan Verinin Görüntülenmesi 17
18