天天看点

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

新建示例

1:新建项目

新建一个网站,选择mapxtreme 6.7.1 web application

在app_code中,我们新建一个类,起名叫:layermanager.cs

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

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

3:打开mapform.cs,在page_load代码里,添加如下代码

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

 string tablename = "tablename", layername = "layername";//随便定义两个名字

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

        layermanager.createlayer(tablename, layername);//创建图层

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

        layermanager.addpoint(layername, getdpoint(60,60), 35, color.red);//创建一个红色五角星的点

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

        layermanager.addline(layername, getdpoint(160, 160), getdpoint(300, 160), 59, color.red);//创建一条红色单箭头的线

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

        layermanager.showvalue(tablename, "value");//显示标注

说明:

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

getdpoint 函数如下

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

private dpoint getdpoint(int x,int y)

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

    {

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

        dpoint dp = new dpoint();

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

        system.drawing.point point = new system.drawing.point(x, y);//客户端坐标(相对地图)

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

        map map = mapinfo.engine.session.current.mapfactory[0];

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

        map.displaytransform.fromdisplay(point, out dp);//转成相应的经纬度坐标

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

        return dp;

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

    }

4:完整的页面代码如下

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

public partial class _default : system.web.ui.page 

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

{

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

    private void page_load(object sender, system.eventargs e)

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

        // if the statemanager doesn't exist in the session put it else get it.

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

        if (statemanager.getstatemanagerfromsession() == null)

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

            statemanager.putstatemanagerinsession(new appstatemanager());

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

        // now restore state

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

        statemanager.getstatemanagerfromsession().paramsdictionary[statemanager.activemapaliaskey] = mapcontrol1.mapalias;

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

        statemanager.getstatemanagerfromsession().restorestate();

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

        string tablename = "tablename", layername = "layername";//随便定义两个名字

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

    private dpoint getdpoint(int x,int y)

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

    // at the time of unloading the page, save the state

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

    private void page_unload(object sender, system.eventargs e)

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

        statemanager.getstatemanagerfromsession().savestate();

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

}

5:运行结果

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

继续阅读