MapXtreme 2005 学习心得 使用WebTool工具(七)
工具 学习心得 2005 使用
2023-09-14 08:59:38 时间
将工具WebTool 拖到MapForm.aspx界面上,设置对应的地图如下:
cc1:WebTool ID="WebTool1" runat="server" MapControlID="MapControl1" /
客户端有三个重要的脚本:在项目MapXtremeWebResources文件夹下
1.Interaction.js---交互类型脚本
(已实现的有:ClickInteraction(单击)、RectInteraction(画矩形)..等等,基本是和已有工具对应的)
2.Command.js----命令发送请求脚本
(已实现的有:MapCommand(获取地图)、PanCommand(拖动地图)、DistanceCommand(测量)..等等,基本是和已有工具对应的)
3.Tool.js----------工具命令状态激活脚本
(在激活不同的工具时,改变命令的请求参数)
因此设置工具属性:ClientInteraction="ClickInteraction"
因此设置工具属性:ClientCommand="DistanceCommand"
cc1:WebTool ID="WebTool1" runat="server" MapControlID="MapControl1" ClientInteraction="ClickInteraction" Command="GetXY" ClientCommand="DistanceCommand" /
在App_Code里,我们新建一个类,叫WebInfoGetXY,让它继承自MapInfo.WebControls.MapBaseCommand
同时加上可序列化属性[Serializable],不加就报错了,配置文件那节里有说到
在构造函数里,写base.Name = "GetXY";//这个就对应了客户端发送的Command
[Serializable]
public class WebInfoGetXY:MapInfo.WebControls.MapBaseCommand
{
public WebInfoGetXY()
{
base.Name = "GetXY";
}
public override void Process()
{
MapControlModel model = MapControlModel.GetModelFromSession();
MapInfo.Mapping.Map map = model.GetMapObj(MapAlias);
System.Drawing.Point[] points = ExtractPoints(DataString);
MapInfo.Geometry.DPoint dpoint = new MapInfo.Geometry.DPoint();
map.DisplayTransform.FromDisplay(points[0], out dpoint);//屏幕xy转经纬度
string outText="屏幕xy:" + points[0].X + "," + points[0].Y;
outText+= " br 经纬度xy:" + dpoint.x +","+ dpoint.y;
HttpContext.Current.Response.Write(outText);
}
if (Session.IsNewSession)
{
MapInfo.WebControls.MapControlModel model = MapInfo.WebControls.MapControlModel.SetDefaultModelInSession();
model.Commands.Add(new WebInfoGetXY());
}
cc1:WebTool ID="WebTool1" runat="server" MapControlID="MapControl1" /
![复制代码](http://common.cnblogs.com/images/copycode.gif)
![ExpandedBlockStart.gif](http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1.Interaction.js---交互类型脚本
(已实现的有:ClickInteraction(单击)、RectInteraction(画矩形)..等等,基本是和已有工具对应的)
2.Command.js----命令发送请求脚本
(已实现的有:MapCommand(获取地图)、PanCommand(拖动地图)、DistanceCommand(测量)..等等,基本是和已有工具对应的)
3.Tool.js----------工具命令状态激活脚本
(在激活不同的工具时,改变命令的请求参数)
![复制代码](http://common.cnblogs.com/images/copycode.gif)
[现在开始处理自定义的客户端脚本请求]
2:设置工具属性事件为点击
交互:由于要实现的功能,交互类型也是通过点击引发的,交互就直接使用已有的ClickInteraction因此设置工具属性:ClientInteraction="ClickInteraction"
3:设置工具命令[使用测量工具的命令功能]
命令:由于要实现的功能,客户端类型在接收服务端返回的消息后,直接弹出,这点和测量功能是一样的,于是命令就直接使用DistanceCommand因此设置工具属性:ClientCommand="DistanceCommand"
4:自定义命令关键字
再设置一个自定义命令文本:Command="GetXY" --这个GetXY是随便起的名字,等一下对应服务端的请求命令
OK,至此,客户端处理完成,实际我们什么也没做,只是把工具往界面一拖,然后设置了一下属性:
cc1:WebTool ID="WebTool1" runat="server" MapControlID="MapControl1" ClientInteraction="ClickInteraction" Command="GetXY" ClientCommand="DistanceCommand" /
在App_Code里,我们新建一个类,叫WebInfoGetXY,让它继承自MapInfo.WebControls.MapBaseCommand
同时加上可序列化属性[Serializable],不加就报错了,配置文件那节里有说到
在构造函数里,写base.Name = "GetXY";//这个就对应了客户端发送的Command
代码如下:
[Serializable]
public class WebInfoGetXY:MapInfo.WebControls.MapBaseCommand
{
public WebInfoGetXY()
{
base.Name = "GetXY";
}
![复制代码](http://common.cnblogs.com/images/copycode.gif)
![复制代码](http://common.cnblogs.com/images/copycode.gif)
![ExpandedBlockStart.gif](http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
{
MapControlModel model = MapControlModel.GetModelFromSession();
MapInfo.Mapping.Map map = model.GetMapObj(MapAlias);
System.Drawing.Point[] points = ExtractPoints(DataString);
MapInfo.Geometry.DPoint dpoint = new MapInfo.Geometry.DPoint();
map.DisplayTransform.FromDisplay(points[0], out dpoint);//屏幕xy转经纬度
string outText="屏幕xy:" + points[0].X + "," + points[0].Y;
outText+= " br 经纬度xy:" + dpoint.x +","+ dpoint.y;
HttpContext.Current.Response.Write(outText);
}
![ExpandedBlockStart.gif](http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
{
MapInfo.WebControls.MapControlModel model = MapInfo.WebControls.MapControlModel.SetDefaultModelInSession();
model.Commands.Add(new WebInfoGetXY());
}
相关文章
- 线程同步工具(二)控制并发访问多个资源
- [Android Pro] 使用apktool工具遇到could not decode arsc file的解决办法
- OPPO手机宝藏的待办工具
- 如何使用浏览器的网页全文翻译工具
- JVM深入学习笔记五:JVM 监控工具
- MapXtreme 2005 学习心得 工具(六)
- 数据可视化工具大集合
- Java核心知识点学习----线程同步工具类,CyclicBarrier学习
- unity打aar包工具
- 直接拿来用!10款实用Android UI工具
- Atitit 重复文件清理工具 按照文件名 目录 1. 原理,1 1.1. If base filex exist dele other files1 1.2. Get getStartIdex
- RestTemplateUtils 转发工具类
- 一个短小精悍的在线jshint工具
- 【Android 插件化】Hook 插件化框架 ( 反射工具类 | 反射常用操作整理 )
- PostgreSQL的学习心得和知识总结(七十六)|深入理解PostgreSQL数据库客户端工具psql元命令 扩展表格式化模式 的作用原理和使用方法
- PostgreSQL的学习心得和知识总结(二十)|阿里开源ETL工具dataX的使用全解
- PostgreSQL的学习心得和知识总结(七)|分享工具以及select语句解析过程的分析树和语法树图示
- Selenium介绍:Selenium历史、Selenium工具套件、Selenium IDE、Selenium Grid
- Linux正则与文本处理工具
- FPGA知识汇集-FPGA设计开发需要熟悉哪些EDA工具呢?