1、第一个mapxtreme的程序

最近时间学习了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中,主要配置

 

 <add key="MapInfo.Engine.Session.Pooled" value="true" />
 <add key="MapInfo.Engine.Session.State" value="Manual" />
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
  

 

 

 这里主要是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中注释掉所有的状态保存代码

 

 

    <add key="MapInfo.Engine.Session.Workspace" value="C:\Program Files\MapInfo\MapXtreme\6.7.1\Samples\Data\World.mws;c:\Program Files (x86)\MapInfo\MapXtreme\6.7.1\Samples\Data\World.mws" />

 

上面这个代码存放了MAPINFO使用的基础数据。

 

 

posted @ 2010-08-04 16:43  Sum_yang  阅读(1267)  评论(0编辑  收藏  举报