GIS开发进阶之路(一) SOE开发

SOE的使用

针对SOE的学习做了一个小的实验工程,从中加深对SOE开发流程的认识.SOE是在ArcGIS Server的的相关开发中很好的使用功能强大的AO,SOE在这两者当中起到了桥梁的作用.

SOE的生命周期:

1:MapServer初始化

2:SOE初始化

3:MapServer启动

4:SOE构造

5:SOE活动——REST/SOAP处理请求——SOE停止活动

如ResetOperation的构造构造函数中,第一个参数是扩展名称,也是使用请求时的名称,第二个参数是是传入函数的参数,第三个参数是传入函数的参数格式,第四个就是传入函数:

 

通过operationInput获得传入的参数值,利用这些值来对发布的地图进行操作,来获得我们想要的结果,以byte[]的形式传出,数据的载体是JSON.以上是SOE的一般开发流程,核心的AO代码就是在传入函数中实现.下面的图就是利用SOE做的一个简单功能:使用一个查询条件获得某一个点要素,然后再建立缓冲区(如半径1500),然后进行叠加分析,获得该缓冲区下所有的地铁站要素信息.

 

 

WebAPI的使用

MVC与WebAPI对比:

在MVC里面,默认路由机制是通过url路径去匹配对应的action方法,比如/Home/GetUser这个url,就表示匹配Home这个Controller下面的GetUser方法;

WebApi的默认路由是通过http的方法(get/post/put/delete)去匹配对应的action,也就是说webapi的默认路由并不需要指定action的名称.

Webapi的路由规则是通过http方法去匹配对应的action,那么,通过浏览器访问http://localhost:21528/api/Order这个路径的时候,浏览器默认通过url访问的都是get请求,于是webapi的路由引擎就会去找Order这个控制器里面的get请求的方法,由于没有参数,所以自动匹配到了无参数的get请求→GetAll()方法,所以请求成功.

新建一个WebApi服务的时候,会自动在WebApiConfig.cs文件里面生成一个默认路由:

路由匹配:

 

路由原理:

1、WebApi服务启动之后,会执行全局配置文件Global.asax.cs的protected void Application_Start(){GlobalConfiguration.Configure(WebApiConfig.Register);}方法,通过参数委托执行WebApiConfig.cs里面的public static void Register(HttpConfiguration config)这个方法,将所有配置的路由信息添加到HttpRouteCollection对象中(MVC里面可能是RoutCollection对象)保存起来.这里的HttpRoutCollection对象的实例名是Routes,这个很重要,后面要用到.

2、当我们发送请求到WebApi服务器的时候,比如我们访问http://localhost:21528/api/Order这个url的时候,请求首先还是会被UrlRoutingModule监听组件截获,然后,将截获的请求在Routes路由集合中匹配到对应的路由模板(如果匹配不到对应的路由模板,则返回404),得到对应的IHttpRoute对象.IHttpRoute对象是Routes集合里面匹配到的一个实体.

3、将IHttpRoute对象交给当前的请求的上下文对象RequestContext处理,根据IHttpRoute对象里面的url匹配到对应的controller,然后再根据http请求的类型和参数找到对应的action.这样一个请求就能找到对应的方法了.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值