天天看点

MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)

一:新建示例 

首先,打开vs2005,新建网站,选择mapxtreme 6.7.1 web application

救命网站目录关键结构如下:

1:app_code文件夹

有一个自定义的appstatemanager.cs类,继承自statemanager,主要是实现自定义的地图保存与还原,地图都存在session中的,而且还是序列化成二进制存进去的

2:mapxtremewebresources文件夹

MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)

主要有几个关键的js,比如:

interaction.js,交互用的js,比如是实现点击,双击,还是鼠标移动,还是画圈之类的.

command.js,发送命令用的,比如是getmap,请求一个地图,还是zoomout放大地图,或是zoomin缩小地图

tool.js,就是界面上拉的那些控件工具用的,比如点击一个控件,才能引发相应的点击,并发送命令

MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)

3:global.asax

主要是一些地图出错后的处理

4:mapform.aspx

主要的示例界面,里面拖了一个地图显示控件,和一些工具控件在里面

后台有几句代码,主要是用于访问时,初始化状态管理,并还原地图显示;退出时,就保存地图当前的状态

5:web.config:相关的地图配置

<add key="mapinfo.engine.session.pooled" value="true" />

说明:是否开启session池,一般都开了

MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)

<add key="mapinfo.engine.session.state" value="manual" />

有两个选项httpsessionstate和manual

httpsessionstate时,系统自动管理地图的保存

manual时,手动来决定是否保存用户状态了。就像页面退出时,调了个方法,来手动保存地图状态

MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)
MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)
MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)

<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" />

地图的工作空间,可以有多个,用“,”号分隔。有一个mapfactory[索引]来取相应的地图

一般都是通过地图别名来取,很奇怪的我这里就是用别名取不到,只能取mapfactory[0]即第一个

所以一般工作空间就一个了

可以参考自c:\program files\mapinfo\mapxtreme\6.7.1\documentation\pdf\mapxtreme2005_devguide.pdf中的文档第六章中的a detailed look at manual state management下的application settings即关于webconfig的说明

MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)

<assemblies>程序集</assemblies>

没啥说的,copy就行

<httphandlers>和<httpmodules>

处理请求用的

MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)
MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)

<sessionstate mode="stateserver" stateconnectionstring="tcpip=127.0.0.1:42424" sqlconnectionstring="data source=127.0.0.1;trusted_connection=yes" cookieless="false" timeout="20" />

这个就是sesstion是保存到数据库中的了,和以往的inproc不一样了

所以相关的地方就是当你要用到session的时候,存的东西必即是可序列化的,不然就报错了

比如httpcontext.session[实体类],如果实体类不是可序列化的,就报错了

MapXtreme 2005 学习心得 了解新建MapXtreme项目结构(二)

ok,就先介绍到这里了...

继续阅读