arcgis api for js 地图输出

1 篇文章 0 订阅
1 篇文章 1 订阅

需要知道的似乎很多,需要说的似乎很少

桌面版的GIS制图工具(ArcMap等)可以配置地图、打印页面大小、地图范围、比例尺、地图图饰、自定义的文本,然后直接导出图片、pdf各种格式,或者直接打印。
在webgis中,有两种选择:

  1. 前端直接渲染出图。
  2. 使用服务器的渲染能力,以服务调用的方式出图。

前端渲染

  1. 首先当然是找api是不是自己提供了。在arcgis api for js4.10中MapView提供了takeScreenshot方法可以前端输出地图,试了下非常消耗浏览器内存。截个小图还可以。
  2. 然后就是抛开api,用html——canvas——文件输出的方式。地图是绘制在dom元素中的,dom元素可以转成canvas,再转成图片输出。这个试了下没成功,好像有人在3.1x版本中成功过。

前端出图,感觉不是爽。

服务器打印服务

arcgis有个web地图的打印工具。相应的,arcgis server默认发布了一个web地图打印的服务。
一般在:
http://:6080/arcgis/rest/services/Utilities/PrintingTools/GPServer目录下。
服务怎么调用,自己找一找。

这里有个布局模板的参数(LayoutTemplate):

默认是空字符(和map-only一样),就直接出个图。没有标题、图例等信息。

还有的是Server安装目录下的Templates/ExportWebMapTemplates路径下的一些mxd文档表示的布局模板文件。可以打开看下,文件预定了地图位置大小、页面大小、标题位置、图例位置等等,可以自行定义设计。然后前端传参的时候,传个模板文件名字,就可以了。

有一个问题是,前端不论使用Print组件,还是PrintTask,进行打印功能开发,前端是不能直接看到布局状态的,MapView的大小和模板文件中地图点的大小和长宽比例不一样,输出来的图和前端地图的样子不是完全一致的。

想要个和桌面端的制图软件一样,地图调整成啥样,输出就是啥样的。

想到的就是还是通过服务获取布局模板文件的详细信息,页面尺寸、地图尺寸、位置等等。然后使用获取到的信息,重新设定MapView的尺寸。(这里需要注意布局模板文件的尺寸单位、dpi的值,注意修改打印的时候比例尺的具体值)

在GPServer目录下有个Get Layout Templates Info Task的服务,就是用来获取这些信息的。看了下只有页面尺寸和地图尺寸。我们可以在arcmap的toolbox中服务器工具——打印路径下,找到“获取布局模板信息”。我们也可以照着这个重新写个python脚本工具,发布新服务,来返回更多的信息。

可以获取页面大小、地图框大小、位置、文本框、比例尺等等信息,前端还是要自己解析这些信息,布局页面的布局。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值