Anda di halaman 1dari 10

6.

5 Menambahkan Shapefile Secara Manual

Meskipun menambahkan FeatureTypes melalui GUI itu mudah, mengetahui cara


mengubah file konfigurasi yang mendasarinya adalah keterampilan mengatasi masalah yang
sangat berharga.

Gambar 6.5: Tampilan Mapbuilder default yang terdistorsi

Untungnya, tidak ada banyak bagian yang bergerak saat itu hadir untuk menambahkan
FeatureTypes baru ke GeoServer dengan tangan.

File utama untuk memulai adalah catalog.xml, ditemukan di geoserver / data_dir.


Itumenyimpan pointer ke ruang nama, penyimpanan data, dan gaya kami:

<?config.xml version="1.0" encoding="UTF-8" ?>


<catalog>

<!--
a datastore configuration element serves as a common data source connection
parameters repository for all featuretypes it holds.
-->
<datastores>
<datastore namespace="g4wd" enabled="true" id="us_states" >
<connectionParams>
<parameter value="g4wd" name="namespace" />
<parameter value="file:us_states/st99_d00.shp" name="url" />
</connectionParams>
</datastore>

<datastore>
...
</datastore>
</datastores>

<!--
Defines namespaces to be used by the datastores.
-->
<namespaces>
<namespace uri="http://mapmap.org/g4wd" prefix="g4wd" />
<namespace uri="http://www.openplans.org/topp"
prefix="topp" default = "true" />
<namespace uri="http://www.census.gov" prefix="tiger" />
<namespace uri="http://www.opengeospatial.net/cite" prefix="cite" />
</namespaces>

<!--
Defines the style ids and file name to be used by the wms.
-->
<styles>
<style filename="default_line.sld" id="line" />
<style filename="default_polygon.sld" id="polygon" />
...
</styles>
</catalog>

Perhatikan bahwa penyimpanan data dapat diaktifkan dan dinonaktifkan secara


selektif. Balik diaktifkan ke Salah untuk penyimpanan data DS_poi. Simpan file. Untuk
mendapatkan Geo- Server untuk mencerminkan perubahan ini, klik Konfigurasi di browser
web Anda dan kemudian beban. Bilah hijau (meter kesehatan GeoServer, sebenarnya)
sekarang berujung dengan abu-abu. (Lihat Gambar 6.6, di halaman berikut.) Jika Anda salah
mengonfigurasi menyimpan data atau FeatureType, bilah ini akan memiliki ujung merah.
Untuk mendapatkan sesuatu kembali ke keadaan semula, balik DS_poi kembali ke diaktifkan,
simpan file, dan klik Muat sekali lagi.
Untuk FeatureType kami selanjutnya, mari tambahkan provinsi Kanada.6 Buat
direktori ca di bawah geoserver / data_dir. Salin prov_ab_p_geo83_e.* Ke ini direktori. Buka
geoserver / data_dir / catalog.xml dalam editor teks. Salin satu dari penyimpanan data yang ada,
dan edit nilainya sesuai:

<datastore namespace="g4wd" enabled="true" id="ca" >


<connectionParams>
<parameter value="g4wd" name="namespace" />
<parameter value="file:ca/prov_ab_p_geo83_e.shp" name="url" />
</connectionParams>
</datastore>

Kembali ke jendela browser, dan klik Config. Klik Muat. Untuk memverifikasi
semuanya baik-baik saja sejauh ini, klik Config> Data> Toko. Memilih ca dari kotak kombo,
dan klik Edit. Semuanya harus cocok antara catalog.xml dan formulir HTML.
Gambar 6.6: GeoServer dengan penyimpanan data yang dinonaktifkan

Kami setengah jalan di sana. Mari kita buat FeatureType. Direktori geoserver /
data_dir/featureTypes berisi satu direktori per FeatureType. Lihatlah di us_states_st99_d00.
(Perhatikan bahwa direktori mengikuti konvensi penamaan [data store] _ [featureType].) Di
dalam direktori itu file info.xml.

<featureType datastore = "us_states" >


<name>st99_d00</name>
<!--
native EPGS code for the FeatureTypeInfoDTO
-->
<SRS>4326</SRS>
<title>US States</title>
<abstract>Generated from us_states</abstract>
<wmspath>/</wmspath>
<numDecimals value = "8" />
<keywords>st99_d00 us_states</keywords>
<latLonBoundingBox dynamic = "false"
miny = "17.884813"
maxy = "71.35256064399981"
maxx = "179.77847000000006"
minx = "-179.14734" />
<!--
the default style this FeatureTypeInfoDTO can be represented by.
at least must contain the "default" attribute
-->
<styles default = "polygon" />
<cacheinfo enabled = "false" maxage = "" />
</featureType>

Buat direktori ca_prov_ab_p_geo83_e. (Jangan berharap kami akan mengganti nama shapefile
itu menjadi sesuatu yang lebih mudah diketik?) Salin info.xml dari us_states_st99_d00 ke
ca_prov_ab_p_geo83_e.
Mengubah penyimpanan data dan nama untuk mencocokkan penyimpanan data dan shapefile
nama tidak sulit. EPSG tetap 4326. (Kami dengan ramah mengabaikannya kesalahan ketik dalam
komentar karena komentar yang salah eja lebih baik daripada tidak sama sekali.) Mengubah judul,
abstrak, dan kata kunci juga bukan masalah.
Dan kemudian ada masalah kecil latLonBoundingBox. GUI yakin melakukan pekerjaan yang
baik untuk autogenerasi itu untuk kita. Anda tidak khawatir mendapatkan data itu, kan? Apakah Anda
lupa teman kecil kami ogrinfo dari bab sebelumnya? Tipe

ogrinfo -jadi prov_ab_p_geo83_e.shp prov_ab_p_geo83_e.

Lihat sesuatu yang berguna di sana?

$ ogrinfo -so prov_ab_p_geo83_e.shp prov_ab_p_geo83_e


INFO: Open of ‘prov_ab_p_geo83_e.shp'
using driver ‘ESRI Shapefile' successful.

Layer name: prov_ab_p_geo83_e


Geometry: Polygon
Feature Count: 503
Extent: (-141.002750, 41.676556) - (-52.638016, 83.336213)
Layer SRS WKT:
GEOGCS["GCS_North_American_1983" ,
DATUM["North_American_Datum_1983" ,
SPHEROID["GRS_1980" ,6378137.0,298.257222101]],
PRIMEM["Greenwich" ,0.0],
UNIT["Degree" ,0.0174532925199433]]
UUID: String (36.0)
TYPE_E: String (10.0)
NAME: String (50.0)
SRC_AGENCY: String (10.0)
L_UPD_DATE: Date (10.0)
L_UPD_TYPE: String (2.0)
P_UPD_DATE: Date (10.0)

Gunakan informasi dari bidang Extent untuk menyelesaikan file info.xml. Pastikan untuk
menyimpannya setelah Anda selesai mengubah semua nilai.

<featureType datastore = "ca" >


<name>prov_ab_p_geo83_e</name>
<!--
native EPGS code for the FeatureTypeInfoDTO
-->
<SRS>4326</SRS>
<title>Canadian Provinces</title>
<abstract>Generated from prov_ab_p_geo83_e</abstract>
<wmspath>/</wmspath>
<numDecimals value = "8" />
<keywords>prov_ab_p_geo83_e ca</keywords>
<latLonBoundingBox dynamic = "false"
miny = "41.676556"
maxy = "83.336213"
maxx = "-52.638016"
minx = "-141.002750" />
<!--
the default style this FeatureTypeInfoDTO can be represented by.
at least must contain the "default" attribute
-->
<styles default = "polygon" />
<cacheinfo enabled = "false" maxage = "" />
</featureType>

Mari kita kembali ke layar Config lebih banyak waktu dan klik Load. Jika tidak
kesalahan muncul di sini, lalu kembali ke layar klien Mapbuilder, dan lihat FeatureType
Kanada Anda yang baru ditambahkan. (Lihat Gambar 6.7, di halaman berikutnya.) Jika Anda
tidak hati-hati, Anda akan menjadi ahli dalam hal ini.

6.6 Menambahkan Lapisan PostGIS

Sekarang kami merasa nyaman dengan shapefile, mari kita alihkan fokus kami ke PostGIS.

Langkah pertama yang perlu kita ambil adalah membuat penyimpanan data. Klik
Konfigurasi> Data> Toko> Baru. Pilih PostGIS dari kotak kombo. Berikan ID dari
local_postgis. Klik Baru untuk pindah ke layar berikutnya. Isi nilainya diperlukan untuk
terhubung ke server. (Lihat Gambar 6.8, di halaman 150). Sekali semuanya diisi, klik Kirim,
lalu klik Terapkan dan Simpan.
Menambahkan FeatureType baru sama mudahnya. Klik Konfigurasi> Data>
FeatureType> Baru. Semua tabel spasial dari G4WD database harus terlihat dari kotak
kombo. Ketika Anda mengklik Baru, semuanya harus diisi dan menunggu Anda dengan
pengecualian dari kotak pembatas. Klik Hasilkan. Anda dapat mengubah nilai-nilai seperti
gaya, judul, kata kunci, dan abstrak jika Anda mau. Klik Kirim, lalu klik Terapkan dan
Simpan.

Gambar 6.7: Provinsi Kanada kami ditambahkan secara manual

gaya, judul, kata kunci, dan abstrak jika Anda suka. Klik Kirim, lalu klik Terapkan dan
Simpan.

Entri di catalog.xml sedikit lebih rinci daripada entri shapefile kami lihat sebelumnya:
<datastore namespace = "g4wd" enabled = "true" id = "local_postgis" >
<abstract>Local PostGIS server</abstract>
<connectionParams>
<parameter value = "g4wd" name = "namespace" />
<parameter value = "true" name = "loose bbox" />
<parameter value = "postgres" name = "user" />
<parameter value = "password" name = "passwd" />
<parameter value = "true" name = "wkb enabled" />
<parameter value = "localhost" name = "host" />
<parameter value = "public" name = "schema" />
<parameter value = "5432" name = "port" />
<parameter value = "g4wd" name = "database" />
<parameter value = "postgis" name = "dbtype" />
</connectionParams>
</datastore>

Gambar 6.8: Mengkonfigurasi koneksi PostGIS di GeoServer

File info.xml, di sisi lain, terlihat identik dengan file shapefile:


<featureType datastore = "local_postgis" >
<name>us_50</name>
<!--
native EPGS code for the FeatureTypeInfoDTO
-->
<SRS>4269</SRS>
<title>us_50_Type</title>
<abstract>Generated from local_postgis</abstract>
<wmspath>/</wmspath>
<numDecimals value = "8" />
<keywords>local_postgis us_50</keywords>
<latLonBoundingBox dynamic = "false"
miny = "17.884811400815106"
maxy = "71.35256195011284"
maxx = "179.778472900391"
minx = "-179.147354125977" />
<!--
the default style this FeatureTypeInfoDTO can be represented by.
at least must contain the "default" attribute
-->
<styles default = "polygon" />
<cacheinfo enabled = "false" maxage = "" />
</featureType>

GeoServer, seperti QGIS, lebih suka tabel PostgreSQL dengan bidang OID.
Mengikuti instruksi di akhir Bab 5, Database Spasial, pada halaman 108 untuk memastikan
tabel Anda memiliki bidang OID yang diperlukan. Untuk lebih informasi tentang GeoServer
dan PostGIS, lihat dokumentasi online.

6.7 Styling dengan SLD


Sekarang kami telah memecahkan mekanisme untuk mendapatkan data yang
ditampilkan melalui GeoServer, mari kita fokus pada masalah estetika yang lebih. Beberapa
orang akan membantahnya tampilan dan nuansa peta adalah bagian terpenting dari latihan ini.
Seperti yang disebutkan sebelumnya dalam bab ini, semua penataan dilakukan
melalui kepatuhan OGC File SLD. Format file SLD distandarisasi di semua OGC
implementasi sehingga Anda dapat memindahkan gaya antara server sebagai semudah data
Anda. Sumber informasi terbaik tentang SLD adalah spesifikasi.

Ingat bahwa gaya disimpan di geoserver / data_dir / catalog.xml:

<!--
Defines the style ids and file name to be used by the wms.
-->
<styles>
<style filename = "giant_polygon.sld" id = "giant_polygon" />
<style filename = "capitals.sld" id = "capitals" />
<style filename = "tiger_roads.sld" id = "tiger_roads" />
<style filename = "poly_landmarks.sld" id = "poly_landmarks" />
<style filename = "green.sld" id = "green" />
<style filename = "simpleRoads.sld" id = "simple_roads" />
<style filename = "popshade.sld" id = "population" />
<style filename = "default_line.sld" id = "line" />
<style filename = "default_polygon.sld" id = "polygon" />
<style filename = "default_point.sld" id = "point" />
<style filename = "poi.sld" id = "poi" />
<style filename = "Lakes.sld" id = "cite_lakes" />
</styles>

Setiap gaya yang diberi nama adalah pointer ke file SLD yang disimpan di geoserver /
data_dir / gaya. Mari kita tarik default_polygon.sld untuk melihat apa yang telah kita gunakan
negara bagian A.S. dan Kanada kami hingga saat ini:

<?xml version="1.0" encoding="ISO-8859-1" ?>


<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<NamedLayer>
<Name>Default Polygon</Name>
<UserStyle>
<Title>A boring default style</Title>
<Abstract>A sample style...</Abstract>
<FeatureTypeStyle>
<Rule>
<Name>Rule 1</Name>
<Title>RedFill RedOutline</Title>
<Abstract>50% transparent red...</Abstract>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill" >#FF0000</CssParameter>
<CssParameter name="fill-opacity" >0.5</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke" >#FF0000</CssParameter>
<CssParameter name="stroke-width" >1</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>

Mari kita masuk akal. Kami memiliki NamedLayer yang memiliki Pengguna- Gaya.
(UserStyle pada dasarnya berarti gaya khusus.) UserStyle berisi sebuah FeatureTypeStyle.
FeatureTypeStyle memiliki aturan yang bukan melakukan banyak hal di sini tetapi dapat
digunakan untuk melakukan styling bersyarat, seperti yang akan kita lakukan lihat pada
contoh berikut. Aturan ini memiliki PolygonSymbolizer, yang pada gilirannya menjelaskan
isian dan goresan yang digunakan pada poligon. Isi adalah warna yang muncul di dalam
poligon. Stroke adalah warna garis mengelilinginya.
Perhatikan bahwa SLD menggunakan CSS untuk aturan gaya penataannya.
Menariknya, CSS tidak XML, jadi SLD harus membungkus setiap aturan gaya CSS dalam
elemen XML. Apa pun yang dapat diungkapkan dalam CSS 2 valid dalam dokumen SLD.
Gambar 6.9: Pengeditan SLD
Mari kita ubah gaya dengan cepat selagi kita di sini. Mengubah isi poligon menjadi
biru (# 0000FF) dan goresan menjadi hitam (# 000000).Simpan file. Kembali di jendela
browser, klik Config dan kemudian Load. Lihat Fitur Kanada di Mapbuilder untuk
memverifikasi bahwa perubahan Anda ambil tempat.
GeoServer menawarkan editor SLD yang bagus (meskipun belum sempurna). Mari
kita buat gaya baru untuk FeatureType PostGIS kami. Klik Config> Data> Fitur- Tipe. Pilih
us_states_st99_d00 dari kotak kombo, dan klik Edit. Perhatikan bahwa di sebelah kotak
kombo gaya ada tombol Buat SLD Baru. Klik itu. (Lihat Gambar 6.9.) Selain widget warna
untuk isi dan stroke, Anda juga dapat memiliki SLD label elemen peta Anda. Pada kasus ini,
pilih Nama dari daftar bidang nonspatial. Klik Terapkan Gaya dan kemudian selesai.
Lihat di geoserver / data_dir / styles untuk style yang baru Anda buat. Di
st99_d00_style.sld, ada TextSymbolizer baru bersama Polygon- Anda Symbolizer. (SLD juga
menawarkan PointSymbolizers, LineSymbolizers, dan RasterSymbolizers.)

<TextSymbolizer>
<Label>
<ogc:PropertyName>NAME</ogc:PropertyName>
</Label>
<Font>
<CssParameter name="font-family" >Times New Roman</CssParameter>
<CssParameter name="font-style" >Normal</CssParameter>
<CssParameter name="font-size" >12</CssParameter>
</Font>
<Fill>
<CssParameter name="fill" >#BB0000</CssParameter>
<CssParameter name="fill-opacity" >1</CssParameter>
</Fill>
</TextSymbolizer>

Di sini kita melihat, selain beberapa gaya CSS, persyaratan pertama kami aturan. Jika
FeatureType memiliki bidang bernama NAME (peka huruf besar kecil), ini gaya akan
diterapkan. Kalau tidak, mereka akan diabaikan.
Untuk melihat seperangkat aturan bersyarat yang lebih terlibat, mari kita lihat topp:
nyatakan FeatureType sekali lagi. (Lihat Gambar 6.2, di halaman 139.) The Penataan SLD
menciptakan peta choropleth — kondisi berbeda warna berdasarkan populasi mereka.
popshade.sld menunjukkan kepada kita bagaimana menyelesaikannya ini.
<FeatureTypeStyle>
<Rule>
<ogc:Filter xmlns:gml="http://www.opengis.net/gml" >
<ogc:PropertyIsBetween>
<ogc:PropertyName>PERSONS</ogc:PropertyName>
<ogc:LowerBoundary>
<ogc:Literal>2000000</ogc:Literal>
</ogc:LowerBoundary>
<ogc:UpperBoundary>
<ogc:Literal>4000000</ogc:Literal>
</ogc:UpperBoundary>
</ogc:PropertyIsBetween>
</ogc:Filter>

<PolygonSymbolizer>...</PolygonSymbolizer>
<TextSymbolizer>...</TextSymbolizer>
</Rule>
<Rule>
<ogc:Filter xmlns:gml="http://www.opengis.net/gml" >
<ogc:PropertyIsLessThan>
<ogc:PropertyName>PERSONS</ogc:PropertyName>
<ogc:Literal>2000000</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:Filter>

<PolygonSymbolizer>...</PolygonSymbolizer>
<TextSymbolizer>...</TextSymbolizer>
</Rule>

<Rule>
<ogc:Filter xmlns:gml="http://www.opengis.net/gml" >
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>PERSONS</ogc:PropertyName>
<ogc:Literal>4000000</ogc:Literal>
</ogc:PropertyIsGreaterThan>
</ogc:Filter>

<PolygonSymbolizer>...</PolygonSymbolizer>
<TextSymbolizer>...</TextSymbolizer>
</Rule>
</FeatureTypeStyle>

Seperti yang Anda lihat, menata layer data Anda bisa sesederhana atau seperti yang
terlibat seperti yang kamu mau. Anda dapat memiliki banyak gaya berbeda untuk hal yang
sama lapisan data. Ini adalah perwujudan dari Model-View-Controller (MVC) pola desain.
Model (geodata) disimpan secara independen instruksi gaya. Demikian pula, tampilan (dalam
hal ini, file SLD kami) adalah terlepas dari model. Pengontrol adalah komponen perangkat
lunak yang menggabungkan model dan tampilan untuk kami. Memiliki pemisahan bersih
kekhawatiran untuk masing-masing dari ketiganya adalah ciri khas SOA yang kuat dan dapat
digunakan kembali.
Situs web GeoServer memiliki banyak artikel yang membahas tentang gaya Anda
lapisan dengan sangat detail.10 Membuat label Anda muncul dengan benar11 bisa jadi sangat
rumit — Anda biasanya ingin mereka tampil tanpa berlebihan tumpang tindih ketika fitur
Anda dikelompokkan bersama erat atau ditumpangkan lebih dari banyak lapisan data. Dan
akhirnya, salah satu kekuatan GeoServer pengguna telah membuat Google Maps SLD12 yang
dapat memberikan FeatureType Anda tampilan dan nuansa yang akrab.
Seorang teman saya pernah menggambarkan permainan kuno Go sebagai sesuatu
yang membutuhkan satu jam untuk belajar dan seumur hidup untuk dikuasai. Deskripsi itu
berlaku sama baiknya untuk SLD dan menata peta Anda. Untuk sekarang, kamu harus sudah
cukup untuk membantu Anda memulai.

6.8 Kesimpulan
Pada titik ini, kami memiliki server OGC fungsional yang aktif dan berjalan. Kami
sudah menginstal GeoServer. Kami telah menambahkan shapefile dan Fitur PostGIS- Jenis
melalui GUI dan berbagai file konfigurasi XML. Akhirnya, kami membungkus dengan file
SLG OGC yang menggambarkan tampilan dan rasakan FeatureTypes kami. Dengan itu,
semua artefak sisi server kami adalah di tempat.
Sekarang server kami sudah dikonfigurasi, mari mulai menggunakannya. Dalam bab
selanjutnya, kami akan bersenang-senang membuat panggilan WMS dan WFS mentah.
Tenang sifat permintaan web OGC membuatnya mudah untuk diputar di browser web dan
bahkan baris perintah.

Anda mungkin juga menyukai