最近时间学习了MAPINFO的二次开发,主要做的是webgis这块的应用,趁着有时间总结一下,算是巩固
本人使用的是mapxtreme 2005 6.7.1 + vs2005
在安装完mapxtreme 2005 6.7.1 后,打开vs2005,新建项目的地方可看到
在填写位置和名称后,即可生成一个模板的MAPXTREME程序。
点击运行,可看到运行结果:
模板功能给出了基本的显示、放大、缩小、居中、平移,图层控制和缩放度显示的功能,
现在看一下生成的文件结构:
AppStateManager.cs 控制地图状态管理的一个类,默认生成的类主要是对放大、缩小、居中、图层控制等几个功能进行控制,可扩展。
MapXtremeWebResources 这个文件夹存放的是mapxtreme自带的图片、JS文件等,这里面存放的JS在WEB版中是很重要的。这个后面会讲到
MapForm.aspx 地图显示页面
web.config 配置页面
就这几个页面凑成了模板给与的所有功能,现在逐一解释一下:
web.config中,主要配置
这里主要是Pooled 、State 、sessionState
默认状态下使用 pooled =true State="Manual" sessionState="StateServer"
此配置意味着session对象将是对象池,并依靠程序员来保存每个用户的状态需求,session对象不会保存任何状态,此配置在性能和伸缩性上是最好的配置
pooled =true State="HttpSessionState"" sessionState="StateServer"
此配置意味着使用对象池,但是每个用户的状态都自动保存到StateServer中,
pooled =false State="HttpSessionState"" sessionState="InProc"
此配置下,意味着每个用户消耗自己的资源,因为pooled=false 所以state 的设备被屏蔽,因为使用INPROC,状态被永久保存,直到程序失效。
在连接池state="Manual"的情况下,AppStateManager.cs是有用的,否则要在MapForm.aspx.CS中注释掉所有的状态保存代码
上面这个代码存放了MAPINFO使用的基础数据。