ArcGIS Server中ExportMap使用方法

目的:为了得到某一范围的地图服务图片;

存在问题:

1、由于数据量比较大,利用动态图的方式获取,服务响应太慢;

2、由于数据经常更新,利用切片图的方式获取,存在随时需要重新切片;

3、解决问题的办法:利用ArcGISServer中的ExportMap方法;

ExportMap中支持的参数:

1、F:返回类型,支持html | json | image | kmz四种格式,我们请求的是图片,选择f=image即可;

2、Bbox:地图的左下角坐标和右上角坐标,排列顺序是<xmin>, <ymin>, <xmax>, <ymax>。例如bbox=-104,35.6,-94.32,41;

3、Size:返回图片的大小,宽度和长度,例如:size=600,550;

4、imageSR:请求图片的坐标系统;

5、format:请求图片的格式,有以下几种:png | png8 | png24 | jpg | pdf | bmp | gif | svg | png32

6、layers:请求图片的图层,有四个关键词:show(显示)hide(隐藏)include(包括)exclude(不包括);例如:show:1(表示显示第一层数据),同样hide:1(表示隐藏第一层数据);

7、layer Definitions:表示获取满足当前条件的数据,相当于where条件或者是Filter;例如:layerdefs=0:COM1='COPPER'(表示第0层,字段COM1中的值等于“COPPER”)的所有要素;

8、transparent:透明度,只对png格式有效;

注意事项:

1、 有效的EpxortMap请求示例:

http://192.168.1.47/ArcGIS/rest/services/test/MapServer/export?bbox=-197.259167,-84.50000035,208.475833,87.83333335&bboxSR=&layers=&layerDefs=0:COM1%3D%27COPPER%27&size=&imageSR=4326&format=&transparent=false&dpi=&f=html

2、 使用ExportMap需要注意的问题:

1)、地图发布的服务,不管是动态服务还是切片服务,都可以使用ExportMap方法;

2)、自己使用的时候,测试后感觉,切片服务的请求速度要比动态服务的请求速度要快;

3)、如果使用切片服务,需要在建立Tiled的时候,将所有需要的级别都添加上,可以不做缓存处理;如果不加上级别,当请求的范围较小时,图片会寻找当前裁切比例尺的最适合的级别显示,将会出现不正确的图片,当加上比例尺后,虽然没有做缓存处理,仍然可以获得正确的图片;

4)、裁切服务时,可以选择分图层裁切,在Advance options里可以选择;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以在Vue项目使用ArcGIS API for JavaScript来调用ArcGIS服务器地图服务。首先,您需要将ArcGIS API添加到您的项目。 您可以使用以下命令安装ArcGIS API for JavaScript ``` npm install esri-loader ``` 然后在Vue组件加载ArcGIS API并使用它来调用地图服务。您可以使用以下代码示例作为参考: ```javascript <template> <div id="map"></div> </template> <script> import { loadModules } from 'esri-loader' export default { name: 'Map', data() { return { map: null, view: null } }, async created() { const [Map, MapView] = await loadModules([ 'esri/Map', 'esri/views/MapView' ]) this.map = new Map({ basemap: 'streets-navigation-vector' }) this.view = new MapView({ container: "map", map: this.map, center: [-118.80500, 34.02700], zoom: 13 }) const layer = { url: 'https://sampleserver6.arcgisonline.com/arcgis/rest/services/Water_Network/MapServer' } const mapLayer = await loadModules(['esri/layers/MapImageLayer']) .then(([MapImageLayer]) => { return new MapImageLayer(layer) }) this.map.add(mapLayer) } } </script> ``` 该组件使用esri-loader库加载ArcGIS API for JavaScript,并在地图使用MapImageLayer来添加地图服务。请注意,此示例使用的是静态的地图服务。如果您需要使用动态地图服务,请使用DynamicMapLayer。 请注意,您需要使用合适的ArcGIS许可证才能使用ArcGIS API for JavaScript和ArcGIS服务器地图服务。同时,不要忘记在Vue项目包含ArcGIS API for JavaScript所需的样式表和资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值