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

简介:

新建示例

 

1:新建项目

新建一个网站,选择MapXtreme 6.7.1 Web Application

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

 

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

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

 

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

ExpandedBlockStart.gif
 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 函数如下

ExpandedBlockStart.gif
private DPoint GetDPoint(int x,int y)
ExpandedBlockStart.gif    
{
        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:完整的页面代码如下

ExpandedBlockStart.gif
public partial class _Default : System.Web.UI.Page 
ExpandedBlockStart.gif
{
    
private void Page_Load(object sender, System.EventArgs e)
ExpandedSubBlockStart.gif    
{
        
// 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)
ExpandedSubBlockStart.gif    
{
        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)
ExpandedSubBlockStart.gif    
{
        StateManager.GetStateManagerFromSession().SaveState();
    }

}

5:运行结果

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

 

相关文章
|
9月前
|
数据可视化 前端开发 搜索推荐
数据可视化大屏百度地图GPS轨迹位置感知状态开发实战案例解析(百度地图jsAPI,包含缩放控件、点线覆盖物、弹窗、标注图标分类功能)
数据可视化大屏百度地图GPS轨迹位置感知状态开发实战案例解析(百度地图jsAPI,包含缩放控件、点线覆盖物、弹窗、标注图标分类功能)
184 0
|
4月前
游戏开发实战教程(15):形状放置预提示
游戏开发实战教程(15):形状放置预提示
23 0
|
6月前
|
定位技术
ArcMap | 出图小技巧——比例尺、鹰眼图、表格、文本、图片
ArcMap | 出图小技巧——比例尺、鹰眼图、表格、文本、图片
154 0
|
定位技术 C# Windows
C#编程学习(05):使用webbroswer控件显示地图并标注点位坐标
C#编程学习(05):使用webbroswer控件显示地图并标注点位坐标
|
9月前
|
JSON 定位技术 API
百度地图高级开发:获取某范围半径圆形区域检索覆盖物内的所有标注的解决方案(1)
百度地图高级开发:获取某范围半径圆形区域检索覆盖物内的所有标注的解决方案(1)
159 0
|
9月前
|
JavaScript 前端开发 定位技术
地图开发实战案例:高德地图弧线连接线标注
地图开发实战案例:高德地图弧线连接线标注
101 0
|
9月前
|
前端开发 定位技术
地图开发实战案例:高德地图的标注、信息窗口的实战实例
地图开发实战案例:高德地图的标注、信息窗口的实战实例
117 0
|
9月前
|
JavaScript 前端开发 定位技术
地图开发实战案例:高德地图设置中心点和级别的行政区多边形加载效果
地图开发实战案例:高德地图设置中心点和级别的行政区多边形加载效果
114 0
|
9月前
|
定位技术
Echarts实战案例代码(27):地理坐标图视觉引导线及富文本提示框的案例
Echarts实战案例代码(27):地理坐标图视觉引导线及富文本提示框的案例
215 0
|
图形学 异构计算
Unity 2018.3地形功能更新介绍
Unity 2018.3将更新地形系统,此次更新涉及改进的工具和利用GPU实现的更高性能。它还添加了HDRP高清晰渲染管线和LWRP轻量级渲染管线的支持,同时兼容内置渲染管线和现有Unity地形系统。
1768 0