在用户控件中使用 MapControl 的正确方法 mapxtreme载入地图

翻译|其它|编辑:郝浩|2007-10-26 14:26:04.000|阅读 3386 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

    private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面

            if(!Page.IsPostBack)
            
{
                
//载入MapControl

                string strRootPath=Server.MapPath("./ZH"+ "\ZH.mws";
                MapControl_PL.Map.Clear();

                MapInfo.Mapping.MapWorkSpaceLoader wl 
= new
  
MapInfo.Mapping.MapWorkSpaceLoader(strRootPath);

                    wl.Load(MapControl_PL.Map);

                    Load_ALL();

            }

        }

MapControl 在运行时的生命周期如下所示:
1. 在构造函数中,在创建所有默认工具的同时创建工具集合
2. 在 OnInit 中执行下列任务:
a. 尝试使用 Map 对象指向的 MapAlias 从 Session 中获取 Map 对象。如果该对象
不存在,则创建一个空地图。使用 Map 对象还可创建用于导出的 MapExport
对象。
b. 如果是第一次访问此页面并且 UseDesigntimeWorkspace 标记为 True,则将工作
空间加载到地图中。
3. 在 OnLoad 中,显示客户端上需要的所有信息,例如 javascript 和工具信息。
4. 在 RenderContents 中,渲染保存 MapControl 的标记和表示图像的 IMG 标记。工具
使用的其它信息用于客户端操作。LayerControl 以 javascript 变量的形式渲染。
在 Web 窗体的 Page_Load 方法运行时,可以从默认方法偏离并使用自己的 Map 对象。但
是,创建地图的别名必须与 MapControl 的 MapAlias 匹配。在将另一个工作空间加载到地
图时,请注意该地图的别名更改为工作空间中的别名

    private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面

            this.ListBox_Result.Attributes.Add("ondblclick"," ShowItem(0);");
            
this.ListBoxComLineCopy.Attributes.Add("ondblclick"," ShowItem(1);"
);
            
this.ListBoxPeoLineCopy.Attributes.Add("ondblclick"," ShowItem(3);"
);
            
this.ListBox_PreResult.Attributes.Add("ondblclick","ShowItem(2)"
);
            
if(!
Page.IsPostBack)
            
{
                
//载入MapControl

                string strRootPath=Server.MapPath("./ZH"+ "\ZH.mws";
                MapControl_PL.Map.Clear();
                MapInfo.Engine.Session.Current.MapFactory.Remove(MapControl_PL.MapAlias);
                MapInfo.Engine.Session.Current.MapFactory.CreateEmptyMap(MapControl_PL.MapAlias, MapControl_PL.MapAlias,
new Size(200,200
));
                MapInfo.Mapping.MapWorkSpaceLoader wl 
= new
 MapInfo.Mapping.MapWorkSpaceLoader(strRootPath);
                MapInfo.Mapping.Map map
=
MapInfo.Engine.Session.Current.MapFactory[MapControl_PL.MapAlias];
                
if(map!=null
)
                
{
                    wl.Load(MapControl_PL.Map);
                    wl.Load(map);
                    MapControl_PL.Map
=
map;
                    Load_ALL();
                }

            }

        }

官方的代码 VB的:

private void Page_Load(object sender, System.EventArgs e)
{
if
 (!Page.IsPostBack) {
// Remove the map from session; we want to
 use ours
MapInfo.Engine.Session.Current.MapFactory.Remove
(MapControl1.MapAlias);
// Create a empty map with same alias as
 MapControl
MapInfo.Engine.Session.Current.MapFactory.CreateEmptyMap
(MapControl1.MapAlias, MapControl1.MapAlias,
new Size(200,200
));
// Load the map with
 table.
MapInfo.Mapping.MapLoader ml 
=

MapInfo.Mapping.MapLoader.CreateFromFile(@
"World.tab");
// Get the map object out of
 session we just created
MapInfo.Mapping.Map map 
=

MapInfo.Engine.Session.Current.MapFactory
[MapControl1.MapAlias];
if (map != null) {
ml.Load(map);
MapControl1.Map 
=
 map;
}
}
}

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:csdn

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP