• MapXtreme在asp.net中的使用之加载地图(转)


    MapXtreme在asp.net中的使用之加载地图(转)

    Posted on 2010-05-04 19:44 Happy Coding 阅读(669) 评论(0) 编辑 收藏

    1.地图保存在本地的文件系统中,一定要有访问权限(否则无法打开),通过例子可以知道,使用web.config可以配置默认的工作空间.

    <add key="MapInfo.Engine.Session.Workspace" value="D:Program FilesMapInfoMapXtreme6.8.0SamplesHZhangzhou.mws" />

    2.如果要加载地图,为了不与其它的地图要混淆,我决定采用mapAlias的方式,也就是使用别名。如果你有入门示例的话,我们来找到加载地图的点函数。找来找去,发现地图的过程在函数

    private Map GetMapObj(string mapAlias)中,示例的代码处理逻辑目前不能满足我们的需要,因为在mapAlias不存的时候,直接返回了地图中的首个地图。

    map = MapInfo.Engine.Session.Current.MapFactory[mapAlias];
    if (map == null)
    {
    map = MapInfo.Engine.Session.Current.MapFactory[0];

    }

    3.为了加载地图,我查阅了网上的的文章,但不幸的是,方法都无效。从上面的代码可以得知,使用mapFactory类可以加载地图。因此方法如下:

    创建workspaceloader对象,以方便从项目文件中加载地图的table

    MapLoader mws = MapWorkSpaceLoader.CreateFromFile(@"F:Gisyiwudituyiwuditu.mws");

    利用MapFactory类的CreateEmptyMap方法,创建一个新的空地图,地图的别名就是我们想要设置的别名(注:别名是不能重复的)

    Map map = MapInfo.Engine.Session.Current.MapFactory.CreateEmptyMap("hangzhou",alias,new System.Drawing.Size(300,300));

    接下来,利用map的load方法,载入地图就可以了.

    map.Load(mws);

    4.这个功能是我们的系统中一定要完成的功能,因为涉及的地图比较多,所以必须采用动态加载 的方法,但无论是API文档,示例程序还是网上,都无法找到满意的结果,不过也难怪,这种操作其实用脑子想下就能明白的。

    目前出现了两个地图相互干扰的情况,还没有解决,初步估计是Application变量的共用问题。明天试着解决下

  • 相关阅读:
    PSE Access Service
    The JXTA Migration
    JXSE 2.5 : What's Cool #6 PeerGroup Executor and ScheduledExcutor
    JXTA Kitchen
    LookupListener中的resultChanged方法是在EDT中执行么?
    同一台机器启动两个结点时的端口冲突问题
    (转)OpenSSL中对称加密算法的统一接口
    关于“未能加载文件或程序集“System.Core, Version=3.5.0.0
    暗香浮动的夜晚
    java xml序列化与反序列化
  • 原文地址:https://www.cnblogs.com/yasepix/p/4973641.html
Copyright © 2020-2023  润新知