博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MapXtreme 2005 学习心得 在地图上创建点/线并显示标注(五)
阅读量:6112 次
发布时间:2019-06-21

本文共 2379 字,大约阅读时间需要 7 分钟。

hot3.png

新建示例

 

1:新建项目

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

 

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

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

 

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

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

说明:

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

 

GetDPoint 函数如下

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

05233313_vhQE.gif
05233313_w2ZV.gif Code
public
 
partial
 
class
 _Default : System.Web.UI.Page 
05233313_w2ZV.gif05233313_vhQE.gif
{
    
private
 
void
 Page_Load(
object
 sender, System.EventArgs e)
05233313_ycme.gif05233313_ROlt.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(
160
160
), GetDPoint(
300
160
), 
59
, Color.Red);
//
创建一条红色单箭头的线
        LayerManager.ShowValue(tableName, 
"
value
"
);
//
显示标注
    }
    
private
 DPoint GetDPoint(
int
 x,
int
 y)
05233313_ycme.gif05233313_ROlt.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)
05233313_ycme.gif05233313_ROlt.gif    
{
        StateManager.GetStateManagerFromSession().SaveState();
    }
}

5:运行结果

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

 

 

转载于:https://my.oschina.net/secyaher/blog/274116

你可能感兴趣的文章
Ext Js简单事件处理和对象作用域
查看>>
IIS7下使用urlrewriter.dll配置
查看>>
12.通过微信小程序端访问企查查(采集工商信息)
查看>>
WinXp 开机登录密码
查看>>
POJ 1001 Exponentiation
查看>>
HDU 4377 Sub Sequence[串构造]
查看>>
云时代架构阅读笔记之四
查看>>
WEB请求处理一:浏览器请求发起处理
查看>>
Lua学习笔记(8): 元表
查看>>
PHP经典算法题
查看>>
LeetCode 404 Sum of Left Leaves
查看>>
醋泡大蒜有什么功效
查看>>
hdu 5115(2014北京—dp)
查看>>
数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)...
查看>>
PHP读取日志里数据方法理解
查看>>
第五十七篇、AVAssetReader和AVAssetWrite 对视频进行编码
查看>>
Vivado增量式编译
查看>>
一个很好的幻灯片效果的jquery插件--kinMaxShow
查看>>
微信支付签名配置正确,但返回-1,调不出支付界面(有的手机能调起,有的不能)...
查看>>
第二周例行报告
查看>>