【问题标题】:Adding WFS layer with OpenLayers使用 OpenLayers 添加 WFS 层
【发布时间】:2012-01-19 19:24:28
【问题描述】:

我正在尝试使用 geoserver 将包含的数据集之一添加到 openlayers 地图。我遵循了 opengeo 教程,在这里看到了类似的线程,但我似乎无法破解它。有人可以看看我的代码和地理服务器设置并告诉我哪里出错了吗?

这是我的代码:

            //WMS map
            world = new OpenLayers.Layer.WMS("Global Imagery", "http://maps.opengeo.org/geowebcache/service/wms", {
                layers : "openstreetmap",
                format : "image/png"
            });
            map.addLayer(world);

            //WFS
            parks = new OpenLayers.Layer.Vector("WFS", {
                strategies : [new OpenLayers.Strategy.BBOX()],
                protocol : new OpenLayers.Protocol.WFS({
                    url : "http://localhost:8081/geoserver/wfs",
                    featureType : "medford:parks",
                    featureNS : "http://medford.opengeo.org/medford"
                })
            });

            map.addLayer(parks);

            map.zoomToMaxExtent();

GeoServer 详细信息: 工作区名称 = medford,命名空间 URI = http://medford.opengeo.org 对于功能类型,我尝试过“parks”和“medford:parks”

该图层已启用、广告并具有 30 个功能返回限制。

我正在努力拼凑一张简单的地图

谢谢, 詹姆斯

【问题讨论】:

    标签: gis openlayers geoserver


    【解决方案1】:

    首先,您能否提供一些有关使用 firebug 等调试工具发生的任何错误的更多信息。我的第一个猜测是 geoserver 实例没有在同一个域上运行(这包括同一个域上的不同端口)并且对服务器的请求被跨站点脚本限制阻止。

    如果是这种情况,OpenLayers 会附带一些示例 CGI 代理脚本,以允许您代理对 geoserver 的调用。查看here 了解更多信息。

    希望对您有所帮助,如果没有,请发布与您看到的任何错误相关的更多信息。

    【讨论】:

    • 你是对的 - 很可能问题是 wfs 请求被发送到不同的域 - localhost:8081
    • 好的,我现在已经将我的代码移动到localhost:8081/apps/index.html 并更改了我的 featureNS。我现在可以看到响应中返回了 30 个特征...25NS/86427/741962.307 rpid:GROSS_AREA>。但是,我没有在我的地图上看到任何功能。当添加为 WMS 时,我可以看到它们很好。唯一的其他层是基础 WMS。
    • 这听起来可能与 openlayers 代码无关。也许是地理服务器中图层的样式问题? WFS 返回是否包含要素的位置信息?如果您可以在上面的问题中添加一些调试输出,例如 WFS 返回的 sn-p,我会看看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多