MapXtreme 2005 学习心得 在地图上创建点线并显示标注(五)

    xiaoxiao2022-07-08  214

    新建示例

     

    1:新建项目

    新建一个网站,选择MapXtreme 6.7.1 Web Application 在App_Code中,我们新建一个类,起名叫:LayerManager.cs

     

    2:把上节函数放到类LayerManager中

    把上一节的函数代码全copy过来,还有using的名称空间

     

    3:打开MapForm.cs,在Page_Load代码里,添加如下代码

     string tableName = "tableName", layerName = "layerName";//随便定义两个名字        LayerManager.CreateLayer(tableName, layerName);//创建图层        LayerManager.AddPoint(layerName, GetDPoint(60,60), 35, Color.Red);//创建一个红色五角星的点        LayerManager.AddLine(layerName, GetDPoint(160160), GetDPoint(300160), 59, Color.Red);//创建一条红色单箭头的线        LayerManager.ShowValue(tableName, "value");//显示标注

    说明:

    里面有一个GetDPoint(int x,int y)函数,主要是传入客户端的坐标,返回地图的经纬度

     

    GetDPoint 函数如下

    private DPoint GetDPoint(int x,int y)    {        DPoint dp = new DPoint();        System.Drawing.Point point = new System.Drawing.Point(x, y);//客户端坐标(相对地图)        Map map = MapInfo.Engine.Session.Current.MapFactory[0];        map.DisplayTransform.FromDisplay(point, out dp);//转成相应的经纬度坐标        return dp;    }

    4:完整的页面代码如下

    public partial class _Default : System.Web.UI.Page {    private void Page_Load(object sender, System.EventArgs e)    {        // If the StateManager doesn't exist in the session put it else get it.        if (StateManager.GetStateManagerFromSession() == null)            StateManager.PutStateManagerInSession(new AppStateManager());        // Now Restore State        StateManager.GetStateManagerFromSession().ParamsDictionary[StateManager.ActiveMapAliasKey] = MapControl1.MapAlias;        StateManager.GetStateManagerFromSession().RestoreState();        string tableName = "tableName", layerName = "layerName";//随便定义两个名字        LayerManager.CreateLayer(tableName, layerName);//创建图层        LayerManager.AddPoint(layerName, GetDPoint(60,60), 35, Color.Red);//创建一个红色五角星的点        LayerManager.AddLine(layerName, GetDPoint(160160), GetDPoint(300160), 59, Color.Red);//创建一条红色单箭头的线        LayerManager.ShowValue(tableName, "value");//显示标注    }    private DPoint GetDPoint(int x,int y)    {        DPoint dp = new DPoint();        System.Drawing.Point point = new System.Drawing.Point(x, y);//客户端坐标(相对地图)        Map map = MapInfo.Engine.Session.Current.MapFactory[0];        map.DisplayTransform.FromDisplay(point, out dp);//转成相应的经纬度坐标        return dp;    }    // At the time of unloading the page, save the state    private void Page_UnLoad(object sender, System.EventArgs e)    {        StateManager.GetStateManagerFromSession().SaveState();    }}

    5:运行结果

    OK,保存,浏览,即可在页面上看到在相应的地方上,创建了一个五角星和一个红色单向箭头线

     

    版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

    http://www.cnblogs.com/cyq1162/archive/2009/11/02/1594564.html

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)