首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ArcGIS Javascript将WFS层从Geoserver加载到WFS地图

使用ArcGIS Javascript将WFS层从Geoserver加载到WFS地图
EN

Stack Overflow用户
提问于 2017-06-09 10:28:38
回答 1查看 2K关注 0票数 2

我正在尝试加载一个存储在Geoserver中的wfs层,以便使用ArcGIS Javascript创建一个wfs地图。我已经在WMS中成功地做到了这一点,但是我无法让它使用WFSLayer来工作。有人知道这是否可能吗?

到目前为止我的代码是:

代码语言:javascript
复制
var layer = new WFSLayer();
var opts = { "url": "localhost:8080/geoserver/wfs";,
    "version": "1.0.0",
    "name": "RSAC:RSAC_Field_boundary_WGS84_2",
    "wkid": 4326,
    "maxFeatures": 100 }; 
esriConfig.defaults.io.proxyUrl = "/sproxy/";;
layer.fromJson(opts);
map.addLayer(layer); });
EN

回答 1

Stack Overflow用户

发布于 2017-07-02 02:00:53

您应该将proxy设置为您的web server.Because WFSLayer,要求在代码中使用代理page.So,spoxy字符串应该是您在本地计算机上的代理路径。

代码语言:javascript
复制
esriConfig.defaults.io.proxyUrl = "/sproxy/";

1.准备您的proxy.Esri提供了3种推荐的代理方式,包括dotnet、php和java.Let采取dotnet方式获取example.For详细信息或其他设置代理的方法,参见使用代理

下载dotnet代理文件;下载github Esri/资源-代理 zip文件,解压DotNet文件夹。

跟着dotnet代理指令走。

  • 打开IIS管理器;
  • 如果您将DotNet文件夹放在www.root中,右键单击它并选择“转换到应用程序”。
  • 确保“应用程序池”至少为4.0。

c.将proxy.config file.Add serverUrl元素编辑为serverUrls,以指示您希望代理哪个服务器url。

代码语言:javascript
复制
<serverUrls>
    <serverUrl url="http://services.arcgisonline.com"
               matchAll="true"/>
    <serverUrl url="http://suite.opengeo.org/geoserver/wfs"
               matchAll="true"/>
    <serverUrl url="http://localhost:8080/geoserver/wfs"
               matchAll="true"/>
</serverUrls>

2.在代码中设置代理url。

代码语言:javascript
复制
map = new Map("map", {
  basemap: "topo",
  center: [-122.836, 42.346],
  zoom: 13
});

var layer = new WFSLayer(); 

var opts = {
    "url": "http://suite.opengeo.org/geoserver/wfs",// your wfs layer url goes here
    "version": "1.1.0",
    "name": "citylimits",
    "wkid": 3857,
    "maxFeatures": 100
};

//relative path,namely: C:\inetpub\wwwroot\DotNet\proxy.ashx
esriConfig.defaults.io.proxyUrl = "/DotNet/proxy.ashx";

layer.fromJson(opts);

map.addLayer(layer);

最后一个code.Note:为了使代码正常运行,您应该根据上面的说明为您的web服务器设置代理。

代码语言:javascript
复制
<!DOCTYPE html>
<html>

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" />
  <title>WFS Layer</title>
  <link rel="stylesheet" href="https://js.arcgis.com/3.20/esri/css/esri.css">
  <style>
    html,
    body,
    #map {
      height: 100%;
      width: 100%;
      margin: 0;
      padding: 0;
    }
  </style>
  <script src="https://js.arcgis.com/3.20/"></script>
  <script>
    var map;

    require(["esri/map", "esri/InfoTemplate", "esri/layers/WFSLayer", "esri/config", "dojo/domReady!"], function(Map, InfoTemplate, WFSLayer, esriConfig) {
      map = new Map("map", {
        basemap: "topo",
        center: [-122.836, 42.346],
        zoom: 13
      });

      var layer = new WFSLayer();

      var opts = {
        "url": "http://suite.opengeo.org/geoserver/wfs",
        "version": "1.1.0",
        "name": "citylimits",
        "wkid": 3857,
        "maxFeatures": 100
      };

      //relative path,namely: C:\inetpub\wwwroot\DotNet\proxy.ashx
      esriConfig.defaults.io.proxyUrl = "/DotNet/proxy.ashx";

      layer.fromJson(opts);

      map.addLayer(layer);

    });
  </script>
</head>

<body>
  <div id="map"></div>
</body>

</html>

希望你能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44455453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档