ArcGIS JS API 在当前(4.15版本)提供有WebTileLayer、WMSLayer、WMTSLayer等图层类,但并没有提供加载WFS服务的图层类。所以使用FeatureLayer来实现加载。
WFS,Web Feature Service,网络要素服务
思路
手动构造FeatureLayer的source 属性。
1 | st=>start: Start |
WFS请求
GetCapabilities
参数说明:
| 参数 | 是否必须 | 默认值 |
|---|---|---|
| SERVICE | Y | WFS |
| REQUEST=GetCapabilities | Y |
请求示例:
1 | http://www.someserver.com/wfs? |
GetFeature
参数说明:
| 参数 | 是否必须 | 默认值 |
|---|---|---|
| VERSION | Y | 1.1.0 |
| SERVICE | Y | WFS |
| REQUEST=GetFeature | Y | |
| TYPENAME | Y | |
| OUTPUTFORMAT | text/xml; subtype=gml/3.1.1 | |
| BBOX | ||
| FILTER | ||
| SORTBY | ||
| MAXFEATURES | ||
| PROPERTYNAME | ||
| SRSNAME | ||
| FEATUREID | ||
| EXPIRY | ||
| RESULTTYPE | results | |
| FEATUREVERSION |
请求示例:
1 | http://www.someserver.com/wfs? |
解析XML
从返回的XML中解析数据,构造Features数组。
解析过程示例代码:
1 | const parser = new DOMParser(); |
Features数组:
1 | const features = [ |
实例化FeatureLayer
1 | const layer = new FeatureLayer({ |