GeoServer WFS 多圖層幾何查詢

GeoServer和WFS就不需要介紹了,直接進(jìn)入正題。場(chǎng)景大概是這樣的:用一次GetFeature請(qǐng)求掂恕,使用同樣的幾何條件,查詢出指定多個(gè)圖層符合要求的要素弛槐。GeoServer支持的幾何圖形和幾何關(guān)系操作如下:

<fes:GeometryOperands>
    <fes:GeometryOperand name="gml:Point"/>
    <fes:GeometryOperand name="gml:MultiPoint"/>
    <fes:GeometryOperand name="gml:LineString"/>
    <fes:GeometryOperand name="gml:MultiLineString"/>
    <fes:GeometryOperand name="gml:Curve"/>
    <fes:GeometryOperand name="gml:MultiCurve"/>
    <fes:GeometryOperand name="gml:Polygon"/>
    <fes:GeometryOperand name="gml:MultiPolygon"/>
    <fes:GeometryOperand name="gml:Surface"/>
    <fes:GeometryOperand name="gml:MultiSurface"/>
    <fes:GeometryOperand name="gml:MultiGeometry"/>
    <fes:GeometryOperand name="gml:Box"/>
    <fes:GeometryOperand name="gml:Envelope"/>
</fes:GeometryOperands>
<fes:SpatialOperators>
    <fes:SpatialOperator name="BBOX"/>
    <fes:SpatialOperator name="Equals"/>
    <fes:SpatialOperator name="Disjoint"/>
    <fes:SpatialOperator name="Intersects"/>
    <fes:SpatialOperator name="Touches"/>
    <fes:SpatialOperator name="Crosses"/>
    <fes:SpatialOperator name="Within"/>
    <fes:SpatialOperator name="Contains"/>
    <fes:SpatialOperator name="Overlaps"/>
    <fes:SpatialOperator name="Beyond"/>
    <fes:SpatialOperator name="DWithin"/>
</fes:SpatialOperators>

以使用Envelope進(jìn)行Intersects操作查詢?yōu)槔猛觯瑯?gòu)造的查詢條件如下

<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0" xmlns:gml="http://www.opengis.net/gml/3.2">
    <fes:Intersects>
        <fes:ValueReference>map:geom</fes:ValueReference>
        <gml:Envelope srsName="EPSG:4490">
            <gml:lowerCorner>103.6458293767603 36.03833528028299</gml:lowerCorner>
            <gml:upperCorner>103.64592937676031 36.038435280283</gml:upperCorner>
        </gml:Envelope>
    </fes:Intersects>
</fes:Filter>

注意這是WFS 2.0.0的寫法,1.0.0和1.1.0是不同的乎串。具體參考Filter functionsFilter Function Reference

根據(jù)2.0的參考手冊(cè)店枣,很容易就構(gòu)造出了請(qǐng)求URL:
http://localhost:8080/geoserver/map/wfs?FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0" xmlns:gml="http://www.opengis.net/gml/3.2"><fes:Intersects><fes:ValueReference>map:geom</fes:ValueReference><gml:Envelope srsName="EPSG:4490"><gml:lowerCorner>103.6458293767603 36.03833528028299</gml:lowerCorner><gml:upperCorner>103.64592937676031 36.038435280283</gml:upperCorner></gml:Envelope></fes:Intersects></fes:Filter>&TYPENAME=map:t_oil,map:t_fiber&REQUEST=GetFeature&OUTPUTFORMAT=application/json&VERSION=2.0.0&SERVICE=WFS(解碼后的URL)

其中:

  1. TYPENAME表示我要查詢的圖層,這里一定要注意鸯两,不是TYPENAMES,是TYPENAME长豁;TYPENAMES也是WFS GetFeature時(shí)會(huì)使用的參數(shù)钧唐,當(dāng)使用多個(gè)圖層的時(shí)候,眼看著使用TYPENAMES比使用TYPENAME合理匠襟,甚至在GeoServer的WFS reference中解釋typeNames時(shí)專門還注明了在1.1.0或者更早的版本中使用typeName钝侠,然而,使用TYPENAMES查詢多圖層時(shí)會(huì)報(bào)錯(cuò)酸舍,查詢單圖層卻時(shí)可用帅韧,我甚至懷疑這是GeoServer的一個(gè)BUG。
  2. FILTER是構(gòu)造的查詢條件啃勉,當(dāng)然也支持屬性查詢忽舟,此處只討論幾何查詢。
  3. 其他的都是WMS和WFS請(qǐng)求的常規(guī)參數(shù)了。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末萧诫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子枝嘶,更是在濱河造成了極大的恐慌帘饶,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件群扶,死亡現(xiàn)場(chǎng)離奇詭異及刻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)竞阐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門缴饭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骆莹,你說我怎么就攤上這事颗搂。” “怎么了幕垦?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵丢氢,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我先改,道長(zhǎng)疚察,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任仇奶,我火速辦了婚禮貌嫡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘该溯。我一直安慰自己岛抄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布朗伶。 她就那樣靜靜地躺著弦撩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪论皆。 梳的紋絲不亂的頭發(fā)上益楼,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音点晴,去河邊找鬼感凤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛粒督,可吹牛的內(nèi)容都是我干的陪竿。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼族跛!你這毒婦竟也來了闰挡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤礁哄,失蹤者是張志新(化名)和其女友劉穎长酗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桐绒,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夺脾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茉继。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咧叭。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖烁竭,靈堂內(nèi)的尸體忽然破棺而出菲茬,到底是詐尸還是另有隱情,我是刑警寧澤派撕,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布生均,位于F島的核電站,受9級(jí)特大地震影響腥刹,放射性物質(zhì)發(fā)生泄漏马胧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一衔峰、第九天 我趴在偏房一處隱蔽的房頂上張望佩脊。 院中可真熱鬧,春花似錦垫卤、人聲如沸威彰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽歇盼。三九已至,卻和暖如春评抚,著一層夾襖步出監(jiān)牢的瞬間豹缀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工慨代, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邢笙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓侍匙,卻偏偏與公主長(zhǎng)得像氮惯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容