1. 引言
在上一篇博客中主要了解了什么是SOE,然后我们创建了一个简单的SOE程序,但是那个程序几乎没什么价值,因为功能实现太简单了。在真实的项目中,用到SOE开发,必然是遇到了技术难题,需要借助AO扩展地图服务的功能。如果借助AO实现一些复杂的功能,我们必然要获得一些AO对象。在本篇博客中,将以一个小demo,来介绍如何在SOE中获得AO对象。
2.首先发布我们的地图服务。
- 为了下一篇博客做铺垫,我们发布一个地图服务(此服务可以进行几何网络分析)
- 将该图层发布为地图服务
- 发布成功
3.编写代码扩展地图服务
在本实例中先不实现复杂的功能,我们首先实现一个简单的功能:前台传入一个图层名称,然后SOE程序判断地图服务中几何网络图层的名称是否和我们传入的名称相同(注意这里是网络图层。)
3.1创建一个SOE程序,取名为MyGNServer
3.2 因为我们扩展MapServer,修改SOE扩展的类型
3.3 查看关键函数代码
private RestResource CreateRestSchema()
{
RestResource rootRes = new RestResource(soe_name, false, RootResHandler);
//创建一个操作,然后判断是否存在名称为GNName的网络图层
RestOperation sampleOper = new RestOperation("SearchGN",
new string[] {
"GNName"},
new string[] {
"json" },
SampleOperHandler