一、关于服务器上下文

1,服务器上下文(ServerContext)本质上是一个GIS服务器上的进程,它是服务器端编程的起点。

2,只有本地资源才能得到服务器上下文,通常得到服务器上下文的主线是:

MapResourceLocal——>ServerContextInfo——>ServerContext

3,在gis服务器上创建对象,只能通过ServerContext的CreateObject方法,而不能用new关键字,new关键字创建的是在本机上创建,而非gis服务器上。

4,CreateObject方法中的参数“类ID”不能写错,否则提示“无效的类别字符串”,当初很多时候由于写错了,被系统提示了不少次。

二、关于回调刷新

1,如果只刷新普通的html控件的内容,并把回调结果返回给此html控件,或者只是执行一段JavaScript代码

//回调结果实例
CallbackResult cr = new CallbackResult("div", "layerListDiv", "innercontent", returnString);//普通html控件
CallbackResult cr = new CallbackResult(null, null, "javascript", returnString);//js代码 //把回调结果实例增加到地图的回调结果集中
Map1.CallbackResults.Add(cr); //以字符串的形式返回地图的回调结果集
return Map1.CallbackResults.ToString();

2,只刷新Map控件

return Map1.CallbackResults.ToString();

3,刷新Toc控件

//将Toc1控件的回调结果集添加到Map1中的回调结果集中 Map1.CallbackResults.CopyFrom(Toc1.CallbackResults);
//返回Map1的回调结果集 return Map1.CallbackResults.ToString();

回调刷新小结:从上面我们可以知道无论是怎样的回调刷新,最后的回调结果集都要添加到map控件的回调结果集中,这是因为ESRI为我们写好的回调函数processCallbackResult()中对返回的字符串进行了解析,从解析中我们可以看到回调结果都是针对map的。。。

三、关于MapServer对象

在实际的开发过程中,我们经常要在gis服务器端编程,从而操作细粒度的AO,其入口是IMapServer对象,通过这个对象,我们可以得到IMapServerObject对象,进一步获取地图文档的核心对象。

ArcGIS Server 本地资源访问ArcObjects的IMapServer对象有两种方式

第一种方式

//直接通过本地资源得到地图服务对象 ImapServer mapServer = mapResourceLocal.MapServer;

第二种方式

//得到本地资源的服务上下文
IserverContext serverContext = mapResourceLocal.ServerContextInfo.ServerContext;
//通过服务器上下文得到服务对象(IServerObject),并把该服务对象强制转换为地图服务对象(IMapServer)
IMapServer mapServer = serverContext.ServerObject as IMapServer

在得到IMapServer对象之后 ,就可以得到IMapServerObject对象了。

由于MapServerClass类实现了IMapServer接口和IMapServerObject接口,故可对IMapServer进行接口查询(QI)得到IMapServerObject对象了,方法只是进行一次强制转换。

IMapServerObject mapServerObject = mapServer as IMapServerObject;

四、关于对 com 组件的调用

实际arcserver开发过程中,我遇到了很多次弹出内容为“对 com 组件的调用返回了错误 hresult e_fail”的网页警告框,刚开始真是头疼,google了下,也没找到合适自己的内容。后来仔细检查、调试,发现是函数传入参数时发生错误了。比如我们想要传入的参数是一个图层的ID,但是由于不小心,传入的是一个空值null或者空字符串,导致前面的结果。这个故事告诉我,以后一定要小心,小心,再小心啊。。。

arcserver开发小结(二)的更多相关文章

  1. arcserver开发小结(三)

    一.关于网络数据集的制作 由于要做实现网络分析的功能,而手中却没有网络数据集,关于网络数据集的制作,网上也有不少的资料.我参考的是ESRI为我们提供的帮助文档(Network_Analyst_Tuto ...

  2. arcserver开发小结(一)

    一.关于属性查询 由于要做属性查询,又重新玩起了arcmap中的select by attribute,有很多自己当初玩弄arcmap多年还不是很清楚的东西 1,字段名 (1)file geodata ...

  3. Android 即时通讯开发小结(二)

    <Android 即时通讯开发小结>基于IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对IM 开发做一个全面的总结. 相关推荐阅读:. Android 即时通讯 ...

  4. vue开发小结(下)

    前言 继前几天总结了vue开发小结(上)后,发现还有很多的点没有能列举出来,于是还是打算新建一个下篇,再补充一些vue开发中需要注意的细节,确实还是都是细节的问题,我只是在这里强调下,希望对大家有帮助 ...

  5. Android 即时通讯开发小结(一)

    <Android 即时通讯开发小结>基于IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对IM 开发做一个全面的总结. 相关推荐阅读:. Android 即时通讯 ...

  6. Java开发学习(二十四)----SpringMVC设置请求映射路径

    一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 < ...

  7. Java开发学习(二十五)----使用PostMan完成不同类型参数传递

    一.请求参数 请求路径设置好后,只要确保页面发送请求地址和后台Controller类中配置的路径一致,就可以接收到前端的请求,接收到请求后,如何接收页面传递的参数? 关于请求参数的传递与接收是和请求方 ...

  8. Java开发学习(二十七)----SpringMVC之Rest风格解析及快速开发

    一.REST简介 REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格 当我们想表示一个网络资源的时候,可以使用两种方式: 传统风格资源描 ...

  9. SQL开发技巧(二)

    本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上-- 文章系列目录 SQL开发技巧(一) SQL开 ...

随机推荐

  1. 微信小程序开发中如何实现侧边栏的滑动效果?

    原文链接:https://mp.weixin.qq.com/s/7CM18izpZqf0oc0D75IGmQ 1 概述 在手机应用的开发中侧边栏滑动是很常见的功能,当然在小程序中也不会例外,很多特效还 ...

  2. Android系统开发(1)——GCC编译器的编译和安装过程

    GCC编译器介绍 GCC编译器(GNG C Compiler)是GNU项目中符合ANSI C标准的编译系统,能够编译C  C++  Object C等语言编写的程序,同时GCC也是一个交叉编译器,特别 ...

  3. java根据xml配置文件导出excel通用方法

    java web项目中时常会用到导出功能,而导出excel几乎是每个项目必备的功能之一.针对形形色色的导出方法及个人平时的工作经验,特将导出excel方法整理成通用的方法,根据xml配置来实现特定的导 ...

  4. adb常用命令 分类: H1_ANDROID 2013-09-08 15:22 510人阅读 评论(0) 收藏

    安装软件  adb install apk文件名称.apk  重新安装该软件  adb install -r apk文件名称.apk  卸载apk软件  adb uninstall apk包名.apk ...

  5. 建立空间参考 ISpatialReference

    转自原文建立空间参考 ISpatialReference ISpatialReferenceFactory spatialReferenceFactory = new SpatialReference ...

  6. php面试题12(多态web服务器共享session的方法:将session存到数据库)($val=&$data[$key];)

    php面试题12(多态web服务器共享session的方法:将session存到数据库)($val=&$data[$key];) 一.总结 1.多态web服务器共享session的方法: ...

  7. Android java.lang.IllegalStateException: Already logged in to server.

    今晚在搞openfire时,无意中发现了这样的一个问题:问题描述: java.lang.IllegalStateException: Already logged in to server.原因:wh ...

  8. [NPM] Create a node script to replace a complex npm script

    In this lesson we will look at pulling out complex npm script logic into an external JavaScript file ...

  9. ssh和SSH服务(包含隧道内容)

    ssh和SSH服务(包含隧道内容) 72.16.10.6:/etc/fstab-->/172.16.10.3:/tmp/a.txt. [root@xuexi ~]# scp 172.16.10. ...

  10. 《Erlang程序设计》学习笔记-第2章 并发编程

    http://blog.csdn.net/karl_max/article/details/3977860 1. 并发原语: (1) Pid = spawn(Fun) %% 创建一个新的并发进程,用于 ...