一、 WMS相关的内容
1. 使用openlayers来调用ArcGIS Server 9.3发布的WMS服务
第一步:创建服务的同时勾选wms服务,并取出wms的web access路径
第二步:在ArcCatalog中添加路径获取wms服务 查看图层的参数name
当然,当你增加了wms服务之后。你也可以查看wms地图,如下图所示:
从上面可以得到结论,ArcGIS Server发布的WMS服务正常。
第三步:下载openlayers2.8 解压 以wms页面为例,在D:\temp\OpenLayers-2.8\examples目录下到wms.html文件进行修改,修改里面的参数如下。注意的是,图层名字直接使用0,1,2等来表达。如下图所示:
试运行一下。效果如下图所示:
当然也可以增加多个图层。直接在后面增加就可以了,如下图所示。
2. 使用其来添加ArcGIS Server 的rest服务,
到文件D:\temp\OpenLayers-2.8\examples\arcgis93rest.html并打开编辑,改为rest服务 注意 export
在Java 环境下,使用同样的方法来实现调用WMS和Rest服务,使用ArcGIS Server Manager来管理服务,并选择WMS服务选择项,使用ArcCatalog来测试服务运行状态及相关参数,要注意的就是图层的名称,在图层属性中可以查询得到,如下图所示:
3、使用其来添加ArcGIS Server的Kml服务
在Rest服务中创建KML文件,如:jamespc/ArcGIS/rest/services/EditingFeatures/MapServer/generatekml
把服务的一个图层或多个图层造成一个kmz文件。
保存成一个kmz文件,如下图所示:
并转换成kml文件。编辑kml-layer.html文件,并修改
4、ArcGIS Server Flex API调用WMS 服务
通过扩展 DynamicMapServiceLayer来调用WMS服务,相关代码如下:
////////////////////////////////////////////////////////////////////////////////////////////////
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="www.adobe/2006/mxml"
xmlns:esri="www.esri/2008/ags"
xmlns:samples="com.esri.ags.samples.*"
horizontalAlign="center"
fontFamily="Verdana" fontWeight="bold" fontSize="12"
pageTitle="Extending DynamicMapServiceLayer using ArcGIS API for Flex"
styleName="plain">
<!-- Problem:
How can I extend base layer classes to support other layer types such as
Open Geospatial Consortium Web Map Services (OGC WMS)?
Solution:
Extend the DynamicMapServiceLayer class.
The key method to overwrite is loadMapImage().
-->
<mx:Text text="By extending DynamicMapServiceLayer, this application can access dynamic services such as WMS."/>
<esri:Map>
<samples:CityStatesWMSLayer/>
</esri:Map>
</mx:Application>
///////////////////////////////////////////////////////////////////////////////////////////////
相关CityStatesWMSLayer.as的内容:help.arcgis/en/webapi/flex/samples/index.html
///////////////////////////////////////////////////////////////////////////////////////////////
注意:WMS服务发布后,请求时有个参数LAYERS,这个参数的值就是图层的名字,但是server93发布之后的图层名并不是mxd文档中所看到的图层名,而是被改过了,成了0、1、2、3这样的数字,所以你在访问的时候LAYERS参数要注意了。
查看这个0123可以在catalog里建一个wms服务器,然后就能看到图层名对应的数字了,具体是那一个数字可以使用ArcCatalog查询图层的属性。
查看这个0123可以在catalog里建一个wms服务器,然后就能看到图层名对应的数字了,具体是那一个数字可以使用ArcCatalog查询图层的属性。
二、 关于ArcGIS Server中的WFS服务调用
注意问题:点坐标表达的顺序问题(x,y)还是(y,x),如果这里不注意的话可能出现访问成功但是得不到地理要素的问题,可以通过设置配置文件来修改,帮助文档中相关部分,看看就明白了:这个跟你所使用的地理坐标系统所定义的有关系,有些定义其getfeature请求得到的
注意问题:点坐标表达的顺序问题(x,y)还是(y,x),如果这里不注意的话可能出现访问成功但是得不到地理要素的问题,可以通过设置配置文件来修改,帮助文档中相关部分,看看就明白了:这个跟你所使用的地理坐标系统所定义的有关系,有些定义其getfeature请求得到的
是坐标如下所示:<gml:Point> <gml:pos>48.4922165520043 122.630685732366</gml:pos> </gml::Point>
当然也有些坐标定义是基于(x,y)来返回的。要根据实际情况而定:
设置ArcGIS Server服务的WFS属性部分,停止Server的服务,并到ArcGIS Server的安装目录,如:c:\arcgis\server\user\cfg. 到对应的服务的配置文件,在WFS部分增加下面的信息:
<Extension>
<TypeName>WFSServer</TypeName>
<Enabled>true</Enabled>
<Properties>
<AxisOrderWFS11>longlat</AxisOrderWFS11>
<CustomGetCapabilities>false</CustomGetCapabilities>
<EnableTransactions>false</EnableTransactions>
gis字符串是什么<Name> EditingFeatures </Name>
<TypeName>WFSServer</TypeName>
<Enabled>true</Enabled>
<Properties>
<AxisOrderWFS11>longlat</AxisOrderWFS11>
<CustomGetCapabilities>false</CustomGetCapabilities>
<EnableTransactions>false</EnableTransactions>
gis字符串是什么<Name> EditingFeatures </Name>
<OnlineResource> jamespc/ArcGIS/services/EditingFeatures/MapServer/WFSServer </OnlineResource>
<AppSchemaURI> jamespc/ArcGIS/services/EditingFeatures/MapServer/WFSServer </AppSchemaURI>
<AppSchemaURI> jamespc/ArcGIS/services/EditingFeatures/MapServer/WFSServer </AppSchemaURI>
<AppSchemaPrefix> EditingFeatures</AppSchemaPrefix>
</Properties>
<Info>
<WebEnabled>true</WebEnabled>
</Info>
</Extension>
</Properties>
<Info>
<WebEnabled>true</WebEnabled>
</Info>
</Extension>
启动服务,这时WFS服务有效,同样你也可以直接使用arccatalog或arcgis server manager来进行相关的设置,如下图所示:
之后,可以通过以下方式进行调用,当然你也可以调用WFS的其他方法来得到结构等相关信息:如果得到请看后面的WFS介绍部分:例如得到表结构:jamespc/ArcGIS/services/EditingFeatures/MapServer/WFSServer?service=WFS&request=GetCapabilities
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论