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

简介:

新建示例

 

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,保存,浏览,即可在页面上看到在相应的地方上,创建了一个五角星和一个红色单向箭头线

 


相关文章
|
5月前
|
安全 程序员 定位技术
程序员必知:地图显示的步骤
程序员必知:地图显示的步骤
65 8
|
前端开发
前端学习笔记202305学习笔记第二十三天-区域文字和立体设置
前端学习笔记202305学习笔记第二十三天-区域文字和立体设置
43 0
|
数据可视化 前端开发 搜索推荐
数据可视化大屏百度地图GPS轨迹位置感知状态开发实战案例解析(百度地图jsAPI,包含缩放控件、点线覆盖物、弹窗、标注图标分类功能)
数据可视化大屏百度地图GPS轨迹位置感知状态开发实战案例解析(百度地图jsAPI,包含缩放控件、点线覆盖物、弹窗、标注图标分类功能)
276 0
|
6月前
|
前端开发 定位技术
前端知识笔记(十七)———地图多点标注功能
前端知识笔记(十七)———地图多点标注功能
139 1
|
定位技术
ArcMap | 出图小技巧——比例尺、鹰眼图、表格、文本、图片
ArcMap | 出图小技巧——比例尺、鹰眼图、表格、文本、图片
364 0
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-地图区域样式设置1
前端学习笔记202305学习笔记第二十三天-地图区域样式设置1
45 0
前端学习笔记202305学习笔记第二十三天-地图区域样式设置1
|
JSON 定位技术 API
百度地图高级开发:获取某范围半径圆形区域检索覆盖物内的所有标注的解决方案(1)
百度地图高级开发:获取某范围半径圆形区域检索覆盖物内的所有标注的解决方案(1)
278 0
|
JavaScript 前端开发 定位技术
地图开发实战案例:高德地图设置中心点和级别的行政区多边形加载效果
地图开发实战案例:高德地图设置中心点和级别的行政区多边形加载效果
148 0
|
JavaScript 前端开发 定位技术
地图开发实战案例:高德地图弧线连接线标注
地图开发实战案例:高德地图弧线连接线标注
148 0
|
定位技术
Echarts实战案例代码(27):地理坐标图视觉引导线及富文本提示框的案例
Echarts实战案例代码(27):地理坐标图视觉引导线及富文本提示框的案例
403 0
下一篇
无影云桌面