2017-06-09 16 views
2

Geoserverに保存されたwfsレイヤをロードして、ArcGIS Javascript APIを使用してWebマップを作成しようとしています。私はWMSでこれをOKにすることができましたが、WFSLayerを使用して動作させることはできません。これが可能なのか誰にも分かりますか?これまでArcGIS Javascript APIを使用してGeoserverからWebmapにWFSレイヤをロード

マイコード:

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); }); 
+1

あなたはすでに試したことを詳しく説明し、それがうまくいかなかった理由を説明できますか? –

+0

こんにちは、私のコードはこれまでのようになります: var layer = new WFSLayer(); "します。http:// localhost:8080/geoserver/WFS" は、 "バージョン": "1.0.0"、 "名": "RSAC:RSAC_Field_boundary_WGS84_2"、 「WKID varが= { "URL" を付き合え":4326, " maxFeatures ":100 }; esriConfig.defaults.io。proxyUrl = "/ sproxy /" ;; layer.fromJson(opts); map.addLayer(layer); });しかし、私のwfsレイヤーはマップに表示されません。 – user8136435

+0

質問にあなたのコードを追加しました(編集が受け入れられるまで表示されない場合があります)。構文エラーがいくつかあります。 2行目に余分なセミコロン( ';')があり、7行目に余分なセミコロンがあり、9行目に余分な終了オブジェクト定義( '})があります。これらがあなたのコードに存在するなら、私は何かの前にそれらを修正することを提案するでしょう。 –

答えて

1

あなたはあなたのウェブserver.Because WFSLayerためproxyを設定する必要がありますが、あなたのコード内のプロキシpage.Soを使用する必要があり、spoxy文字列は、ローカルコンピュータ上のプロキシパスをする必要があります。

esriConfig.defaults.io.proxyUrl = "/sproxy/"; 

は、あなたのproxy.Esriが提供している1.prepare 3はDOTNET、PHPとjava.Letがexample.Forの詳細や、プロキシを設定しUsing the proxyを参照するには、他の方法をDOTNET方法を取るなど、プロキシに方法をお勧めします。

a。 dotnetプロキシファイルをダウンロードします。 github Esri/resource-proxy zipファイルをダウンロードし、DotNetフォルダを展開します。

b。 dotnet proxy Instructionsに従ってください。

  • IISマネージャを開きます。

  • DotNetフォルダをwwwrootに配置する場合は、右クリックして[アプリケーションに変換]を選択します。

  • "アプリケーションプール"が4.0以上であることを確認してください。

c。 proxy.configファイルを編集してserverUrl要素をserverUrlsに追加し、プロキシを送信するサーバーURLを指定します。

<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を設定します。

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); 

最終コード注:コードを正常に実行するには、上記の手順に従ってWebサーバーのプロキシを設定する必要があります。

<!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>

enter image description here

それはあなたのことを願ってい。

関連する問題