在MapXtreme 2005中,在Windows应用程序中自带鼠标中键缩放的功能,而有Web应用程序中却没有,如果能够实现会显得更加人性化。在百度里面一搜,还真有位高人实现了,于是借鉴了一下,作了一些修改,在这里和大家共享一下,你可能通过修改程序代码,控制每次缩放的比例,也可以选择等差或等比的方式进行缩放,代码比较简单,只要稍作修改就可以实现。
复制内容到剪贴板
代码:
(1)在页面的</form>之前添加如下JavaScript代码:
<script type="text/javascript">
var Img = document.getElementById("MapControl1_Image");
if(Img != null)
{
Img.attachEvent('onmousewheel', GetMouseWheelEvent);
}
function GetMouseWheelEvent()
{
var mapImage = document.getElementById("MapControl1_Image");
var url = "MapController.ashx?Command=WheelZoom&Width=" + mapImage.width +"&Height=" + mapImage.height
+ "&ExportFormat=" + mapImage.exportFormat + "&Ran=" + Math.random() + "&wheelvalue=" + event.wheelDelta;
if (mapImage.mapAlias)
url += "&MapAlias=" + mapImage.mapAlias;
try
{
mapImage.src = url;
}
catch(e)
{
alert("Error!");
}
}
</script>
(2)在后台代码中,如自定义命令的文件CustomerCommands.cs中的添加如下类:
[Serializable]
public class WheelZoom : MapBaseCommand
{
public WheelZoom()
{
Name = "WheelZoom";
}
public override void Process()
{
int wheelvalue = int.Parse(System.Convert.ToString(HttpContext.Current.Request["wheelvalue"]));
MapControlModel model = MapControlModel.GetModelFromSession();
model.SetMapSize(MapAlias, MapWidth, MapHeight);
try
{
MapInfo.Mapping.Map map = model.GetMapObj(MapAlias);
MapInfo.Geometry.Distance d;
if (wheelvalue > 0)
{
d = new MapInfo.Geometry.Distance(map.Zoom.Value * 0.5, map.Zoom.Unit);
}
else
{
d = new MapInfo.Geometry.Distance(map.Zoom.Value * 2, map.Zoom.Unit);
}
map.Zoom = d;
}
finally
{
System.IO.MemoryStream ms = model.GetMap(MapAlias, MapWidth, MapHeight, ExportFormat);
StreamImageToClient(ms);
}
}
}
(3)在页面加载处注册Command:
if(Session.IsNewSession)
{
MapControlModel model = MapControlModel.SetDefaultModelInSession();
model.Commands.Add(new WheelZoom());
}
UID1 帖子177 精华1 积分489 阅读权限200 在线时间85 小时 注册时间2008-7-18 最后登录2009-3-13 查看详细资料
TOP
复制内容到剪贴板
代码:
(1)在页面的</form>之前添加如下JavaScript代码:
<script type="text/javascript">
var Img = document.getElementById("MapControl1_Image");
if(Img != null)
{
Img.attachEvent('onmousewheel', GetMouseWheelEvent);
}
function GetMouseWheelEvent()
{
var mapImage = document.getElementById("MapControl1_Image");
var url = "MapController.ashx?Command=WheelZoom&Width=" + mapImage.width +"&Height=" + mapImage.height
+ "&ExportFormat=" + mapImage.exportFormat + "&Ran=" + Math.random() + "&wheelvalue=" + event.wheelDelta;
if (mapImage.mapAlias)
url += "&MapAlias=" + mapImage.mapAlias;
try
{
mapImage.src = url;
}
catch(e)
{
alert("Error!");
}
}
</script>
(2)在后台代码中,如自定义命令的文件CustomerCommands.cs中的添加如下类:
[Serializable]
public class WheelZoom : MapBaseCommand
{
public WheelZoom()
{
Name = "WheelZoom";
}
public override void Process()
{
int wheelvalue = int.Parse(System.Convert.ToString(HttpContext.Current.Request["wheelvalue"]));
MapControlModel model = MapControlModel.GetModelFromSession();
model.SetMapSize(MapAlias, MapWidth, MapHeight);
try
{
MapInfo.Mapping.Map map = model.GetMapObj(MapAlias);
MapInfo.Geometry.Distance d;
if (wheelvalue > 0)
{
d = new MapInfo.Geometry.Distance(map.Zoom.Value * 0.5, map.Zoom.Unit);
}
else
{
d = new MapInfo.Geometry.Distance(map.Zoom.Value * 2, map.Zoom.Unit);
}
map.Zoom = d;
}
finally
{
System.IO.MemoryStream ms = model.GetMap(MapAlias, MapWidth, MapHeight, ExportFormat);
StreamImageToClient(ms);
}
}
}
(3)在页面加载处注册Command:
if(Session.IsNewSession)
{
MapControlModel model = MapControlModel.SetDefaultModelInSession();
model.Commands.Add(new WheelZoom());
}
UID1 帖子177 精华1 积分489 阅读权限200 在线时间85 小时 注册时间2008-7-18 最后登录2009-3-13 查看详细资料
TOP
发表评论
-
mapxtreme添加标记和删除标记
2009-03-30 16:23 1791新增2个pointselectiontool, clientc ... -
添加数据库中的经纬度信息
2009-03-30 16:22 1747C# Code: 复制内容到剪贴板 代码: MapInfo ... -
MapXtreme 2005自定义图层控制代码(WEB)
2009-03-30 16:21 1555虽然MapXtreme 2005 6.7.1提供了图层控制的控 ... -
MapxTreme测试:绘制图标和文字标注
2009-03-30 16:19 3660代码: using System; using System ... -
mapxtreme 2004 改变feature颜色
2009-03-30 16:18 15561.C# code: 复制内容到剪贴板 代码: MapI ... -
MapxTreme2005地图打印
2009-03-30 16:18 1190MapxTreme2005地图打印 一、语言: c# net2 ... -
在C#应用中如何读取存在ORACLE(或SQL Server)中的MapInfo表
2009-03-30 16:17 1220using MapInfo.Data; ... -
MapXtreme 2005查找图元方法,web的
2009-03-30 16:16 1761先添加一个TextBox和 DropDownList控件 复 ... -
MapXtreme点取地图获得信息
2009-03-30 16:15 1870拖一个pointselectiontool到页面, 修改属性 ... -
MapXtreme查看整个地图的代码
2009-03-30 16:14 907Map map = mapControl1.Map; IMap ... -
MapXtreme 2005 鹰眼源代码
2009-03-30 16:13 1769研究了一段时间的MapXtreme2005 v6.6, 实现了 ... -
实现手动画线
2009-03-30 16:12 1211为了实现在地图上手动画线的功能,煞费了一翻苦心,不过最后实现的 ... -
两种方法实现动态轨迹
2009-03-30 16:11 1353在GIS中,动态轨迹的实现是非常有用的,可用GPS定位,热点跟 ... -
总结查找图元的三种方法
2009-03-30 16:10 1234在MapXtreme 2005中,查找图元提供了非常多的方法, ... -
添加标注图层
2009-03-30 16:08 1158在MapXtreme 2005中添加标注图层是非常容易的,只要 ... -
向图层中添加线段
2009-03-30 16:07 917向图层中添加线段和向图层中添加点是一样的,其本质都是向图层中添 ... -
向图层中添加点
2009-03-30 16:06 1004在添加点之前先要在地图上创建一个临时图层,创建临时图层请参考《 ... -
mapxtreme2005 改变选中的图元样式
2009-03-30 16:05 1063MapInfo.Styles.CompositeStyle c ... -
Mapxtreme2005 两点之间画直线
2009-03-30 16:04 1123private void DrawLine(MapInfo.D ... -
mapxtreme2005 创建各种样式
2009-03-30 16:04 1108public MapInfo.Styles.Composite ...
相关推荐
VML以最简洁的标记代码,在WEB页快速绘制输出矢量...几乎支持CSS2样式表所有的样式属性(宽度、高度、3D-XYZ位置、鼠标形状、裁剪、排版缩进、缩放等等)。 这是我按网上的极道教程网页版做的CHM格式文件,利于阅读。
当该值设置为’true’的时候,会自动根据鼠标滚动播放列表。 displaywidth(number of pixes):设置显示区域的宽度,当设置的比较小的时候,播放列表会显示在显示区域的右侧而不是底部。 kenburns* (true,false): 用以...
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 PostMessage 将一条消息投递到指定窗口的消息队列 PostThreadMessage 将一条...
Map:Leaflet的核心组件,负责在页面中创建地图并操纵地图。Map对象可以通过构造函数`L.map()`或`new L.Map()`创建,需要传入一个div元素的ID和可选的地图选项对象。 构造函数:`L.Map( |String> id, <Map options>...
10.24 在列表框中实现加载更多效果 10.25 自定义选择菜单 10.26 使用多个选择菜单进行组合选择 10.27 使用多选菜单选择多个值 10.28 创建双重范围的滑块 10.29 实现开关效果的选择功能 10.30 创建主题化的表单效果 ...
9.23 用键盘上下键实现表格行的上下选择 9.24 用JavaScript隐藏或显示表格列 9.25 滚动的表格 9.26 交换表的行 9.27 动态拖放表格的宽度 9.28 可输入内容的表格 9.29 可以分级的表格隐藏 9.30 动态创建表格并实现...
9.23 用键盘上下键实现表格行的上下选择 9.24 用JavaScript隐藏或显示表格列 9.25 滚动的表格 9.26 交换表的行 9.27 动态拖放表格的宽度 9.28 可输入内容的表格 9.29 可以分级的表格隐藏 9.30 动态创建表格并实现...
17.滚屏效果-手指上下滑动或鼠标滚轮滚动切换页面,可自己配一些动效!!!!!!; 18.常用表单验证; 19.左滑删除; 20.复选框全选与取消选中; 21.内容拖动!!!!!!; 22.dom输入; 23.单例定时器; 24.ios软键盘弹出...
本次更新包含下列新特性: + 国际版加入标签同步...* 某特定页面鼠标手势和新建标签失效 * window.onstorage事件会重复触发 * File System API: requestFileSystem 初始化失败 [插件平台] * 解决一些接口实现问题
3.支持鼠标滚轴缩放图片大小 1.0.5更新内容 修正了加载XML数据缓存问题 右上上角广告可以自行设置,参数“rightHTML” 免费版赞助商广告从右下角弹出,定时消失 可以点击的地方全部加上鼠标样式 优化了...
名称:Audion ...4.您可以使用鼠标和滚轮进行平移和缩放。单击“自动调整”按钮以使图表适合面板内的大小。 访问GitHub以关注此项目、报告问题并做出贡献:https://github.com/GoogleChrome/audion
最近在使用的过程中发现其中上传的图片(或者插入已有的表情包图片)都无法正常缩放,选中图片,用鼠标点击并拖动图片边沿的小标签,图片只能缩小不能放大。尝试过很多方法都没办法解决,甚至检查了js源码,也没有...
中键关闭标签功能,F2 F3切换左右标签。 打开上次关闭页面 可选打开上次关闭页面,上次打开页面,本次关闭页面,本次过滤页面,功能非常强大。 默认浏览器功能 可默认所有网页在Webso打开。 标签置底功能 可...
*放大镜(镜头)图标:您可以通过双击鼠标将其隐藏,然后按住鼠标左键再单击鼠标右键以重新显示它,或者在“选项”页面中更改设置 (由于安全原因,扩展名无法在https://chrome.google.com/*上使用)(如果您使用的...
实现基本导航 导航历史记录和向后导航 命令基础知识 内容基础知识 教程 创建用户界面 创建自适应布局 设置控件的样式 布局 概述 页面布局 屏幕大小和断点 响应式设计技术 使用 XAML 的布局 显示多个视图 显示多个...
111 <br>0184 如何在ASP.NET中获取文件的扩展名 111 <br>0185 如何在ASP.NET中用URL在页面之间传值 112 <br>0186 如何使用IsPostBack实现ASP.NET页面加载 112 <br>0187 如何利用输出缓存技术缓存...
可通过自定义主题,完整的界面和字体大小缩放,页面缩放和鼠标支持进行访问 具有权限,缓存使用率,cookie管理,(自动)下载设置等的安全设置 具有split,Vexplore和Ctrl-w绑定的窗口拆分,用于多窗口浏览 映射命令...
- 控制:url、退后、重新加载、重缩放大小等等。 - Mipmap 模拟着色器:更快的纹理更新且无火花 - 拦截新窗口并为其创建场景内对象 - 极简 JSON 库 - 提供 Chromium 的公开编码支持(非实时的 YouTube 视频应能使用...
Kizmic是一个Web界面,旨在使您的手远离鼠标,而您不会注视着该奖项。禅与计算机的交互最好分开三个阵营。 用户可能想要查看当前适用于当前部分的操作,更改为其他部分或执行操作。 Kizmic将所有交互限制在这三个...
外部API示例:在ActionScript和Web浏览器中的JavaScript之间进行通信 第章:AIR中的XML签名验证 XML签名验证的基础知识 关于XML签名 实现IURIDereferencer接口 第章:客户端系统环境 客户端系统环境基础知识 使用...