使用 Openlayers 的 WFS 请求中出现奇怪的错误

Posted

技术标签:

【中文标题】使用 Openlayers 的 WFS 请求中出现奇怪的错误【英文标题】:Strange error in WFS request with Openlayers 【发布时间】:2015-02-10 10:31:35 【问题描述】:

我使用 OpenLayers 库编写了一个脚本来从 Geoserver 获取一些图层并将它们显示在地图上。我同时使用 WMS 和 WFS 层。 在 Windows 操作系统中的本地主机(MAMP)中一切正常。 现在我必须在 UBUNTU 12.10 系统中迁移。虽然我正确获得了 WMS,但我无法获得 WFS。

我使用了 firebug,这是 POST 请求:

<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <wfs:Query typeName="rural:foc_network" srsName="EPSG:4326" xmlns:rural="http://www.opengeospatial.net/rural">
 <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
 <ogc:BBOX>
 <gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
 <gml:lowerCorner>21.831815896484 37.948519811767</gml:lowerCorner>
 <gml:upperCorner>22.346800027344 38.120181188719</gml:upperCorner>
 </gml:Envelope>
 </ogc:BBOX>
 </ogc:Filter>
 </wfs:Query>
</wfs:GetFeature>

这是 POST 响应(实际上是我的 cgi 文件的内容:

 #!/usr/bin/env python

"""This is a blind proxy that we use to get around browser
restrictions that prevent the javascript from loading pages not on the
same server as the Javascript.  This has several problems: it's less
efficient, it might break some sites, and it's a security risk because
people can use this proxy to browse the web and p

在 firegu 的 XML 标记中我得到这个错误:

 XML Parsing Error: not well-formed Location: moz-nullprincipal:79ed7c81-0daf-4525-a315-808f0894befd Line Number 1, Column 2:

 #!/usr/bin/env python

你知道这里出了什么问题吗?路径:#!/usr/bin/env python 是否设置错误?或者还有什么问题?

这是我的 WFS 请求:

  wfs_layer_komvoi = new OpenLayers.Layer.Vector("Κόμβοι", 
        strategies: [new OpenLayers.Strategy.BBOX()],
        protocol: new OpenLayers.Protocol.WFS(
                version: "1.1.0",
                url: "http://localhost:8080/geoserver/wfs", 
                featurePrefix: "rural", //workspace from geoserver
                featureType: "komvoi_real", //layer name from geoserver
                        featureNS : "http://www.opengeospatial.net/rural", //namespace from geoserver
                        styles: "point"
                    )
                )

谢谢 D.

【问题讨论】:

【参考方案1】:

看来问题出在网络上。地理服务器和您的应用程序是否有代理? 您是否尝试过使用地理服务器界面来显示您的 WFS 文件而不是您的应用程序?

【讨论】:

以上是关于使用 Openlayers 的 WFS 请求中出现奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章

WFS 未覆盖在 openlayers3 的地图中

openlayers6结合geoserver利用WFS服务实现图层删除功能(附源码下载)

OpenLayers 3 中来自 QGIS 服务器的 WFS

使用 Openlayers/Geoserver 从我的 WFS 源更改 srsName

Openlayers 3 - wfs-t:更改几何字段的名称

如何使用 OpenLayers 将属性插入 WFS?