soe结果为栅格的处理方式

背景

ArcGIS for Server通过rest的形式提供功能在很多的时候,不能满足实际的需求。在日常工作中需要对Server的功能进行扩展,esri提供的一种方式就是使用soe的形式。官方给出的sample中,都是将文本或者矢量的结果序列化成json的形式返回到前端。但是在实际的环境中,处理的结果不完全是矢量的情况,还有栅格图层。比如栅格分析的结果。rasterdataset直接返回到前端是不现实的,一个有效的处理方式,通过Arcobject的导出图片的相关接口,将rasterdatset数据类型保存成图片返回给前端

那么问题就来了,怎么将图片返回到前端呢?通常一般都采用下面的两种方式:

1.base64字符串的形式

通过将生成的图片使用base64编码,生成字符串返回到前端,在前端的image的src标签中添加该字符串。使用这种方式的便利之处在于少发一次请求,直接将字符串通过json的形式返回到前端。

C#生成base64参考该博主写的博客:http://blog.csdn.net/marquess/article/details/2732629

代码片段:html页面中加载base64的字符串


<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<img src="data:image/png;base64,adddtwxxxseeexseeext.....>
</html>

2.通过url的形式

arcgis for Server有个操作叫做export map。 该操作就是将图片生成在服务器端的output目录下,默认的路径C:arcgisserverdirectoriesarcgisoutput....。该目录为虚拟路径,也就是可以通过url能够访问到,如 outputurl = "http://localhost:6080/arcgis/" + imagePath的形式

参考sample:https://github.com/myyouthlife/DeveloperSumit2014/tree/master/Image_Services_SOE/Image_Services_SOE

总结

在实际的情况写,生成的图片需要叠加到地图上,这就需要传入图片的地图范围,bbox和图片的大小。具体可以参考上面的sample。

原文地址:https://www.cnblogs.com/myyouthlife/p/3962836.html