mapxtreme最新版_判断点是否在面内_mapxtreme
ce文件,用于保存当前地图的状态和环境。所谓地图的状态和环境主要是指:地图由哪些图层组成、图元用什么符号表示、标签用什么字段表示,还有图例、专题图、查询文件等。mapxtreme不过MapInfoProfessional生成的WorkSpace文件扩展名是.wor,并且.mws与.wor不能互换。
由此可知,要想在网页中载入MapInfo地图,就要用WorkSpaceManager对图层进行组织,生成.mws文件。
2。地图的别名(MapAlias)
对于MapInfo.WebControls,MapAlias是一个重要的属性,编程时,通常用MapAlias代表地图。MapAlias是字串型,MapAlias中的字串就是地图的别名。地图的初始别名在WorkSpace Manager中指定。指定的方法:
打开WorkSpaceManager,在左边的图层管理窗口中已经存在默认的地图别名Map1,选中Map1,点右键弹出快捷菜单,菜单中就有更改地图名称的命令。
3。在网页中载入地图
使用Microsoft Visual Studio的Visual C#开发环境。
向网页加载地图分设计时加载和运行时加载。
3.1。设计时加载
如果用MapInfo.Web.UI.WebControls,把地图控件拉入Web窗体后,点右键打开控件的属性窗口,从这里加载.mws文件。
用MapInfo.WebControls,把地图控件拉入Web窗体后,MapXtreme会自动在Web.config文件中写入加载.mws文件的配置语句:
<add key='MapInfo.Engine.Session.Workspace' value='c:\ProgramFiles\MapInfo\MapXtreme\6.6\Samples\Data\World.mws' />
如果你的.mws文件以及相关的.tab、.dat等MapInfo地图文件都放在当前开发的站点目录下,那么value自动加载.mws文件;如果当前站点没有.mws文件,value自动加载MapXtreme所带的示例工作空间World.mws,就如上边的语句<add....../>所示。这时你就要手动修改value值,把你想加载的工作空间路径及文件名写进去。
再把放大、缩小、移动等工具控件拉入Web窗体,编译生成.dll文件,一个最简单的网络地理信息系统就可以运行了。
<add key='MapInfo.Engine.Session.Workspace' value='......'/>这一条语句可以加载多个工作空间,只要在不同的工作空间之间用分号分隔开就行了。不过要注意的是,各个工作空间中地图的别名不要重名,以免引出错误。
3.2。mapxtreme运行时加载
对于MapInfo.Web.UI.Webcontrols,可使用如下例程(C#):
private void Page_Load(object sender, System.EventArgse)//这是页面载入事件函数
{
if (!Page.IsPostBack) {
MapInfo.Engine.Session.Current.MapFactory.Remove(MapControl1.MapAlias);
MapInfo.Engine.Session.Current.MapFactory.CreateEmptyMap(MapControl1.MapAlias,MapControl1.MapAlias, new Size(200,200));
MapInfo.Mapping.MapLoader ml =MapInfo.Mapping.MapLoader.CreateFromFile(@'World.tab');
//为地图指定新的会话
MapInfo.Mapping.Map map =MapInfo.Engine.Session.Current.MapFactory[MapControl1.MapAlias];
if (map != null) {
ml.Load(map);
MapControl1.Map = map;
}
}
}
4。状态管理(StateManager)
MapXtreme2005说,如果要为所使用的工具添加其它交互用法,那就要编写状态管理程序。状态管理程序要继承StateManager类,这个类属于MapInfo.WebControls名字空间。但是,MapXtreme2004没有这个类。
好可怕