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