背景

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:\arcgisserver\directories\arcgisoutput....。该目录为虚拟路径,也就是可以通过url能够访问到,如 outputurl = "http://localhost:6080/arcgis/" + imagePath的形式

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

总结

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

soe结果为栅格的处理方式的更多相关文章

  1. (八)WebGIS中栅格图层的设计

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.    前言 我们在上一章里了解到WebGIS中栅格图层的本质—— ...

  2. (七)WebGIS中栅格、矢量图层设计之栅格、矢量图层的本质

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.何为栅格数据,何为矢量数据? 在GIS中,对于数据格式的分类,我们 ...

  3. ArcGIS Engine开发之地图基本操作(3)

    地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种: ...

  4. ArcEngine 栅格数据

    1.ArcEngine中的栅格数据组织方式(详细信息见:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/009t0000 ...

  5. AE 栅格数据使用总结

    RasterBand)的数据组成,一个波段就是一个数据矩阵.对于格网数据(DEM数据)和单波段的影像数据,表现为仅仅只有一个波段数据的栅格数据集,而对于多光谱影像数据则表现为具有多个波段的栅格数据集. ...

  6. ArcGIS Engine栅格数据使用总结

    jojojojo2002 原文 ArcGIS Engine栅格数据使用总结 简介:ArcGIS Engine栅格数据使用总结,一个栅格数据集由一个或者多个波段(RasterBand)的数据组成,一个波 ...

  7. MVAPI第一个版本架构图

    MVAPI采用矢量与栅格结合的方式进行移动地图的显示. 进过几个月,目前终于可以完成基本的地图显示及操作功能.还有待实现的是各种性能及效果优化.3D地物等. 发一个1.0的架构图留存一下.(虽然目前还 ...

  8. 玩转X-CTR100 l STM32F4 l 电机正交编码器

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的电机正交编码器,X- ...

  9. bootstrap3基本了解

    使用 BootCDN 提供的免费 CDN 加速服务(同时支持 http 和 https 协议) Bootstrap 中文网 为 Bootstrap 专门构建了免费的 CDN 加速服务,访问速度更快.加 ...

随机推荐

  1. windows server 2008 桌面图标

    1.开始-->"搜索"-->"icon"-->"显示桌面通用图标"

  2. Atitit.判断汉字的编码 regedit 注册表里面的reg_sz

    Atitit.判断汉字的编码 regedit 注册表里面的reg_sz 1. 可以判断出是unicode编码1 2. 有下面分割ucs2 大头小偷编码1 3. 使用小偷编码测试1 4. 注册表里面的r ...

  3. 深入浅出FPGA-2-让source insight 支持verilog HDL

    引言 工欲善其事,必先利其器.最近用verilog在FPGA上做一个简易的计算器,整个工程由6个模块组成,之前写的代码都是很小的,模块也很少,一般就一两个,没感觉出别扭.但是模块多了就发现,模块之间的 ...

  4. Linux高性能server编程——I/O复用

     IO复用 I/O复用使得程序能同一时候监听多个文件描写叙述符.通常网络程序在下列情况下须要使用I/O复用技术: client程序要同一时候处理多个socket client程序要同一时候处理用户 ...

  5. MapReduce实战(五)实现关联查询

    需求: 利用MapReduce程序,实现SQL语句中的join关联查询. 订单数据表order: id date pid amount 1001 20150710 P0001 2 1002 20150 ...

  6. Python之pandas

    official document: http://pandas.pydata.org/pandas-docs/stable/10min.html 基本数据结构:http://www.open-ope ...

  7. 关键字final 分别修饰一个类,一个方法,一个变量,各起什么作用

    关键字final 分别修饰一个类,一个方法,一个变量,各起什么作用 解答:final修饰类是不能被继承 fianl修饰方法不能在子类中被覆盖 final修饰变量,称为常量,初始化以后不能改变值.

  8. 【Python】求素数-稍加优化

    print 'Find prime number smaller then input number \n' print 'Please input a number:' import datetim ...

  9. Python相对完美的URL拼接函数

    首先说下什么叫URL拼接,我们有这么一个HTML片段:   <a href="../../a.html">click me</a> 做为一只辛苦的爬虫,我们 ...

  10. linux中的etc目录

    etc不是什么缩写,是and so on的意思 来源于 法语的 et cetera 翻译成中文就是 等等 的意思. 至于为什么在/etc下面存放配置文件, 按照原始的UNIX的说法(linux文件结构 ...