Sistem Informasi Geografis
FILTERING WFS GET FEATURE REQUESTS
Kita dapat menggunakan Filter dalam
konteks yang sedikit berbeda di sini. Kali ini, kita akan menggabungkan Filter
dengan permintaan GetFeature untuk membatasi jumlah GML yang akan diturunkan
kawat kepada kami. Sebagai contoh, mari kita mengatakan bahwa kita ingin
melihat hanya Colorado negara poligon. Berikut adalah sintaks Filter:
<OGC: Filter xmlns: OGC =" http://www.opengis.net/ogc" >
<OGC:
PropertyIsEqualTo>
<OGC: PropertyName> NAMA </ OGC: PropertyName>
<OGC: Literal> Colorado </ OGC: Literal>
</ OGC:
PropertyIsEqualTo>
</ OGC: Filter>
Anda sudah tahu apa permintaan GetFeature terlihat seperti. Jika Anda
glob bahwa Filter ke akhir permintaan GetFeature menggunakan filter = param-eter, GML Anda kembali
harus terbatas pada Colorado
tunggal poli-gon:
http: // localhost: 8888 / geoserver / WFS layanan = WFS
& Versi = 1.0.0 &
permintaan
= GetFeature & typename = g4wd: st99_d00 &
filter = <OGC: Filter xmlns: OGC
=" http://www.opengis.net/ogc"
>
<OGC: PropertyIsEqualTo>
<OGC: PropertyName> NAMA </ OGC: PropertyName>
<OGC: Literal> Colorado
</ OGC: Literal> </ OGC: PropertyIsEqualTo> </ OGC: Filter>
OK, biarkan aku menjadi yang pertama untuk menunjukkan bahwa
isian XML menjadi
querys-Tring adalah kejahatan terhadap kemanusiaan. Untuk
membuat hal lebih buruk, secara teknis filter string yang harus URL dikodekan
(% 3Cogc: Filter% 3E), yang ren-ders itu total kekejian. Apakah Anda hanya
dengar itu? Itu suara HTTP GET request yang
terentang melampaui kemampuannya. praktik terbaik Indus-coba menunjukkan bahwa Anda membatasi panjang permintaan GET untuk 255 karakter atau kurang. Apakah itu berarti
bahwa kita beruntung? Masukan ke pengembang topi web Anda sejenak-ada metode HTTP lain yang umumnya
digunakan untuk lebih lama, pengajuan lebih kompleks untuk
web server?
Kotak permintaan combo memberi Anda banyak sampel yang menarik. Entri
yang berakhir dengan .url adalah HTTP GET. Orang-orang yang berakhir dengan xml
adalah HTTP POST. Pilih
WMS_getCapabilities.url, dan klik Ubah. Garis URL akan diperbarui sesuai. Klik
Submit, dan Anda akan melihat sebuah dokumen yang akrab kembali.
Sekarang pilih WFS_getCapabilities.xml, dan klik Ubah. Anda tidak hanya mendapatkan URL baru, tetapi tubuh diisi juga. Klik Submit
sekali lagi untuk melakukan permintaan.
<GetCapabilities
layanan =" WFS"
XSI: schemaLocation = "http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd "/>
OK, saya
mengakui bahwa ini membuat saya lama untuk keanggunan sederhana dari sebuah
HTTP GET. Semua itu skema hal-hal jahat membuat permintaan ini lebih
compli-kasikan daripada perlu. Karena kita tidak menggunakan unsur-unsur dari
mereka ruang nama, kita dapat mempersingkat sedikit:
<GetCapabilities
layanan =" WFS"/>
Ah,
itu lebih baik. Tetapi mereka deklarasi namespace sial akan kembali lagi nanti
dengan sepenuh hati. Ini hanya penangguhan hukuman sementara.
Sementara kita masih dalam tahap
awal bermain-main dengan POST, layak untuk menyebutkan alat baris perintah yang
Anda akan ingin mendapatkan akrab dengan: cURL. ikal
datang standar pada Mac dan Linux kotak.
Anda dapat pergi ke website7
Curl untuk men-download binari Windows.
XML untuk permintaan WFS akan mendapatkan rumit
terburu-buru. Anda harus membiasakan menabung XML ke file teks dan menggunakan
cURL untuk menyerahkan POST. Sebagai contoh, menyimpan GetCapabilities XML ke
getcapabilities.xml nama file. Ketik berikut ini pada command prompt di
direktori yang sama dengan file yang baru saja dibuat. (Abaikan garis breaks-
semua ini harus berada di baris yang sama untuk itu untuk bekerja.)
meringkuk
POST --request
-
- header " Content-Type: text / xml"
- - Data
@ getcapabilities.xml
http: // localhost: 8888 /
geoserver / WFS
Dokumen GetCapabilities harus flash dengan
di konsol. Jika Anda ingin menyimpan hasil ke file, tambahkan - somefile.txt -Output ke com-mand.
OK, mari
kita kembali ke tugas di tangan. Kami ingin menyaring getRequest kami. Inilah
yang terlihat seperti dalam XML sebuah getRequest polos:
layanan
=" WFS"
Versi =" 1.0.0" outputFormat
=" GML2" >
<WFS: Query typename
=" g4wd: st99_d00" />
</ WFS:
GetFeature>
Tidak
buruk. Saya bisa cocok XML ini untuk QueryString dalam pikiran saya. Karena
kita akan memulai penyaringan output, saya suka berpikir tentang hal itu dalam
hal SQL juga. Query kita hanya dilakukan akan ditulis dalam SQL sebagai pilih *
dari st99_d00 ;.
Penyaringan pertama
kami akan melakukan
GML. Dalam SQL saya akan menulis membatasi jumlah bidang kembali di pilih NAMA,
AREA, PERIMETER dari st99_d00 ;.
Menggunakan Filter XML, terlihat seperti ini:
layanan
=" WFS"
Versi =" 1.0.0" outputFormat
=" GML2" >
<WFS: Query typename
=" g4wd: st99_d00" >
<OGC: PropertyName> NAMA </ OGC: PropertyName>
<OGC: PropertyName> DAERAH </ OGC: PropertyName>
<OGC:
PropertyName> PERIMETER </ OGC: PropertyName>
</ WFS: Query>
</ WFS:
GetFeature>
Perhatikan bahwa kita harus menambahkan OGC namespace untuk menggunakan
unsur-unsur PropertyName. Tempel blok XML ini ke dalam area teks tubuh pada layar Permintaan Demo, dan klik Submit.
(Pastikan bahwa bidang URL menunjuk ke layanan WFS.) Atau gunakan cURL. Either
way, GML yang dihasilkan harus hanya berisi tiga elemen bernama.
Pengupasan bahwa bidang
geometri besar (the_geom) mungkin tidak masuk akal dari perspektif pemetaan, tapi jelas membuat hasil query kita lebih mudah dikelola,
bukan?
Sekarang kita telah terbatas bidang, mari kita membatasi jumlah record
yang dikembalikan juga. Untuk melakukan pilih NAMA, AREA, PERIMETER dari
st99_d00 mana NAME = 'Colorado' ;, coba ini:
layanan
=" WFS"
Versi =" 1.0.0" outputFormat
=" GML2" >
<WFS: Query typename
=" g4wd: st99_d00" >
<OGC:
PropertyName> NAMA </ OGC: PropertyName>
<OGC: PropertyName> DAERAH </ OGC: PropertyName>
<OGC: PropertyName> PERIMETER </ OGC: PropertyName>
<OGC:
Filter>
<OGC: PropertyIsEqualTo>
<OGC: PropertyName> NAMA </ OGC: PropertyName>
<OGC:
Literal> Colorado </ OGC: Literal>
</ OGC:
PropertyIsEqualTo>
</
OGC: Filter>
</ WFS: Query>
</ WFS: GetFeature>
Yang GML
semakin kecil sepanjang waktu, bukan? Jika Anda melakukan ini dalam Firefox,
XML penyaji melakukan pekerjaan yang baik dari indentasi segala sesuatu untuk
tujuan tampilan. Tapi jika Anda melakukan View> Source, Anda mungkin akan cukup kecewa. XML dikembalikan sebagai string
tunggal tanpa jeda baris. (Bagi Anda menggunakan Curl mungkin sudah melihat
ini.) Lain Unix alat standar, Rapi, 8 akan membantu membuat output layak untuk
dikonsumsi manusia. Jika Anda menyimpan output untuk sebuah file bernama
co.xml, coba berikut ini:
rapi
-xml co.xml
Tidak
buruk, eh? Kali ini, ketik rapi -xml -i co.xml untuk indent output juga:
$
Rapi -xml -i co.xml
Tidak ada
peringatan atau kesalahan yang ditemukan.
<? Xml version =" 1.0" encoding
=" utf-8"
?>
XSI:
schemaLocation = "http://www.opengis.net/wfs
http: // localhost: 8888 / geoserver / WFS / DescribeFeatureType
typename = g4wd:? st99_d00" >
<Gml: boundedBy>
<Gml: null>
tidak diketahui </ gml: null>
</
Gml: boundedBy>
<Gml:
featureMember>
<G4wd: st99_d00 fid =" st99_d00.166" >
<G4wd: AREA> 28,03919812051
</ g4wd: AREA>
<G4wd: PERIMETER>
22,0191923313779 </ g4wd: PERIMETER>
<G4wd: NAMA> Colorado </
g4wd: NAMA>
</ G4wd: st99_d00>
</ Gml: featureMember>
</ WFS: FeatureCollection>
Untuk
melengkapi Unix kung fu Anda, Anda selalu bisa pipa hasil Curl langsung ke
Tidy:
meringkuk
POST --request
-
- header " Content-Type: text / xml"
- - Data
@ gf-criteria.xml
http:
// localhost: 8888 / geoserver / WFS | rapi -xml -i
OK, kembali ke filtering. Dalam contoh terakhir kami, kami akan melakukan
query spasial. Sering kali Anda hanya ingin hasil kembali dari kotak pembatas
yang sewenang-wenang.
(Apa, Anda lupa WMS Anda query sudah) Untuk membatasi hasil kami untuk BBOX tertentu, coba ini:
<WFS: GetFeature xmlns: WFS =" http://www.opengis.net/wfs"
xmlns:
OGC =" http://www.opengis.net/ogc" xmlns: gml =" http://www.opengis.net/gml" layanan =" WFS"
Versi =" 1.0.0"
outputFormat
=" GML2" >
<WFS: Query typename
=" g4wd: st99_d00" >
<OGC:
PropertyName> NAMA </ OGC: PropertyName>
<OGC: PropertyName> DAERAH </ OGC: PropertyName>
<OGC: PropertyName> PERIMETER </ OGC: PropertyName>
<OGC:
Filter>
<OGC: BBOX>
<OGC:
PropertyName> the_geom </ OGC: PropertyName>
<Gml:
Box srsName =" http://www.opengis.net/gml/srs/epsg.xml"
>
<Gml: koordinat> - 109.31,36.72 -101.87,41.03 </ gml: koordinat>
</ Gml: Box>
</ OGC: BBOX>
</ OGC:
Filter>
</ WFS: Query>
</ WFS: GetFeature>
Perhatikan namespace ketiga, gml? Kita perlu untuk
menentukan kotak sederhana. Hanya jika Anda penasaran, output adalah
semua negara sentuhan
Colorado. kotak berlari
digunakan untuk kriteria
adalah sedikit lebih lebar dari minimum bounding rectangle (MBR)
dari Colorado.
OK,
penyaringan melengkapi tur spelunking kami internal dari WMS dan WFS. Kami
sudah tidak berarti menunjukkan setiap contoh yang mungkin dari apa yang dapat
Anda lakukan dengan standar yang berbeda, tetapi Anda harus cukup tahu untuk
setidaknya merasa nyaman.
Kesimpulan
interface
OGC yang besar untuk bekerja dengan; antarmuka tenang mudah digunakan.
Mengetahui bahwa semua server OGC memberikan kemampuan dokumen berarti bahwa
Anda tidak akan pernah menebak mana lapisan data yang tersedia, apa pilihan
styling Anda, atau apa format file dan kode EPSG diperbolehkan. permintaan
Sebuah WMS GetMap memungkinkan Anda untuk menentukan setiap detail dari peta
selesai. Jika data mentah adalah apa yang Anda cari, WFS DescribeFeatureType
dan GetFeature lebih kecepatan Anda. Dan mengetahui bahwa GML berpotensi bisa
sangat verbose, memiliki Filter OGC di berarti toolkit Anda bahwa Anda dapat
yakin bahwa Anda akan mendapatkan hanya informasi sebanyak yang Anda minta.
Nama : Khairunnisa SP
BalasHapusNIM : 17.01.071.058
Prodi : Teknik Informatika
Filter WFS beserta sintaxnya! Kupikir ada bagusnya menambahkan tampilan hasil sintax untuk menarik peminat developmen dalam mencoba nya.
Meskipun demikian, dalam kesempatan tertentu halaman ini menyajikan seputar penyajian WFS yang baik
Nama: Muhammad Aulia ibrahim
BalasHapusNIM: 17.01.071.072
Prodi: Teknik Informatika
Bagus sekali, mantap. materi yang disampaikan tentang Menggunakan OGC Web Services, dan juga dijelaskan fitur2 yang ada pada OGC web service. terimakasih.. semoga bermanfaat untuk masyarakat luas.
Nama : MEGA TAZAYYUN
BalasHapusNim : 17.01.071.065
Prodi : TEKNIK INFORMATIKA
menarik sekali.. good. materi nya tentang OGC, yaitu open layers. dimana open layer berguna sekali untuk mengurangi kesalahan dalam pembuatan peta. dan beberapa keuntungan yang bisa saya ambil dari penggunaan open layers ini adalah Dapat membuat peta dalam baris kode yang jauh lebih sedikit. Juga mendukung banyak penyedia data lain selain OGC, seperti Google Maps, Yahoo Maps, dan lain-lain. Serta sesuai dngan namanya, open layers ini dapat memberikan dukungan yang lebih baik untuk lapisan peta yang diteselasikan.
Wahh menarik sekali artikelnya dan bahasanya pun mudah dipahami isi materi nya seperti di blog2 yang ada di google biasanya 👍
BalasHapusNama :Khaula syahidah
Nim :17.01.071.059
Prodi : informatika