在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 1819新增2个pointselectiontool, clientc ... -
添加数据库中的经纬度信息
2009-03-30 16:22 1780C# Code: 复制内容到剪贴板 代码: MapInfo ... -
MapXtreme 2005自定义图层控制代码(WEB)
2009-03-30 16:21 1582虽然MapXtreme 2005 6.7.1提供了图层控制的控 ... -
MapxTreme测试:绘制图标和文字标注
2009-03-30 16:19 3700代码: using System; using System ... -
mapxtreme 2004 改变feature颜色
2009-03-30 16:18 15841.C# code: 复制内容到剪贴板 代码: MapI ... -
MapxTreme2005地图打印
2009-03-30 16:18 1226MapxTreme2005地图打印 一、语言: c# net2 ... -
在C#应用中如何读取存在ORACLE(或SQL Server)中的MapInfo表
2009-03-30 16:17 1243using MapInfo.Data; ... -
MapXtreme 2005查找图元方法,web的
2009-03-30 16:16 1795先添加一个TextBox和 DropDownList控件 复 ... -
MapXtreme点取地图获得信息
2009-03-30 16:15 1895拖一个pointselectiontool到页面, 修改属性 ... -
MapXtreme查看整个地图的代码
2009-03-30 16:14 937Map map = mapControl1.Map; IMap ... -
MapXtreme 2005 鹰眼源代码
2009-03-30 16:13 1800研究了一段时间的MapXtreme2005 v6.6, 实现了 ... -
实现手动画线
2009-03-30 16:12 1247为了实现在地图上手动画线的功能,煞费了一翻苦心,不过最后实现的 ... -
两种方法实现动态轨迹
2009-03-30 16:11 1386在GIS中,动态轨迹的实现是非常有用的,可用GPS定位,热点跟 ... -
总结查找图元的三种方法
2009-03-30 16:10 1259在MapXtreme 2005中,查找图元提供了非常多的方法, ... -
添加标注图层
2009-03-30 16:08 1182在MapXtreme 2005中添加标注图层是非常容易的,只要 ... -
向图层中添加线段
2009-03-30 16:07 945向图层中添加线段和向图层中添加点是一样的,其本质都是向图层中添 ... -
向图层中添加点
2009-03-30 16:06 1037在添加点之前先要在地图上创建一个临时图层,创建临时图层请参考《 ... -
mapxtreme2005 改变选中的图元样式
2009-03-30 16:05 1089MapInfo.Styles.CompositeStyle c ... -
Mapxtreme2005 两点之间画直线
2009-03-30 16:04 1155private void DrawLine(MapInfo.D ... -
mapxtreme2005 创建各种样式
2009-03-30 16:04 1138public MapInfo.Styles.Composite ...
相关推荐
在如今的网络应用中,经常会遇到需要实现用户通过鼠标滚轮控制页面元素缩放的场景,例如图片查看器、地图应用等。本文将详细介绍如何使用JavaScript来实现通过鼠标滚轮控制图片缩放效果的方法,其中将涉及...
在本文中,我们将深入探讨如何使用Flex技术来实现在网页中通过鼠标滚动来实现图片的放大缩小,并且确保每次缩放都是以鼠标当前位置为中心进行的。Flex是一种强大的前端开发框架,它允许开发者创建灵活的、响应式的...
下面将详细介绍如何实现“页面中图片缩放拖动”的功能,并探讨相关技术及其应用。 一、图片缩放原理 图片缩放主要依赖CSS3和JavaScript技术。在CSS3中,我们可以使用`transform`属性来改变元素的大小,其中`scale...
在JavaScript(简称JS)编程中,实现鼠标拉框截图是一项常见的功能,特别是在Web应用中,如在线编辑器、协作工具等。这个功能的核心是通过监听鼠标事件,结合HTML5的Canvas API来完成图像的选择和捕获。以下是实现这...
在本文中,我们将深入探讨如何使用Silverlight 2.0技术实现一个独特的用户交互功能——鼠标滚动3D球形多级图片缩放。这个功能在Web应用中可以为用户提供一个富有视觉吸引力且交互性强的体验,尤其适用于图像展示、...
通过以上步骤,你可以实现C#中使用MSChart控件并利用鼠标滚轮进行缩放的功能。这个功能在查看大量数据或者需要精细分析图表细节时特别有用。记住,调整和优化代码以适应你的具体需求,如图表类型、数据源和用户交互...
在 PDF.js 中实现手势缩放可以增强用户的浏览体验,让他们更容易地查看文档的细节。 在参考链接《在pdf.js中添加手势缩放功能》中,开发者 evanyanglibo 提供了关于如何实现这一功能的详细步骤。首先,我们需要了解...
标题中的“echart_web页面_”表明我们正在讨论一个基于ECharts的数据可视化Web页面项目。ECharts是一款由百度开发的开源JavaScript图表库,它提供了丰富的图表类型,如柱状图、折线图、饼图等,用于在Web上进行数据...
【jQuery鼠标滚动缩放效果代码】是Web开发中一种常见的交互设计,主要应用于网页的可视化增强,提升用户体验。这个代码示例来源于WeBank微众银行,一个知名的金融科技公司,他们在网页设计上通常追求创新和用户体验...
在本话题中,我们将探讨如何利用VBScript实现鼠标滚轮控制图片缩放的特效,这在网页交互设计中是一项实用且吸引用户注意力的功能。 首先,我们需要了解VBScript的基本语法和事件处理。在HTML页面中,我们可以嵌入...
在这个示例中,jQuery被用来处理SVG元素的用户交互,如鼠标拖拽和滚动事件,以便实现平移和缩放功能。 首先,我们来看“test-svg”文件夹中的测试页面。这些页面可能包含了基本的SVG图形,用于验证和调试拖拽和平移...
在JavaScript中实现图片的缩放和拖动功能是一项常见的需求,尤其在开发交互式Web应用时。本篇文章将深入探讨如何使用JavaScript实现这一功能,并提供一个基础实例。 首先,我们需要理解图片缩放和拖动的基本原理。...
在地图应用中,鼠标滚轮通常被用来实现地图的缩放操作。当用户滚动鼠标滚轮时,地图会根据滚轮的方向进行放大或缩小,这极大地提高了用户的交互效率。 #### 三、实现方法 在OpenLayers中,可以通过`Navigation`...
在实际应用中,图片可能位于一个容器内,因此需要将鼠标的页面坐标转换为容器坐标,并计算出图片相对于容器的位置。这涉及到CSS的`getBoundingClientRect()`方法,它返回元素的尺寸和相对于视口的位置。 3. **图片...
在网页开发中,实现元素的放大、缩小、拖拽和移动功能是常见的需求,这能够增强用户的交互体验,尤其在创建交互式应用或富媒体网站时。本项目通过结合使用drag(拖拽)、jQuery和HTML技术,提供了一种实现此类功能的...
在当今的Web开发中,页面的移动端适配是非常重要的一环。随着智能手机的普及,越来越多的用户通过移动设备访问网页。而移动端的屏幕尺寸和分辨率各异,这就给Web开发人员带来了不小的挑战。如何使网页在不同分辨率和...
在本DEMO中,我们探讨的是如何在SVG环境中实现图形的缩放和拖动功能,这对于创建交互式地图、图表或者任何需要用户操作的矢量图形应用来说是至关重要的。 首先,SVG图形的缩放通常通过变换(transform)属性来实现...
标题中的“使用键盘平移或缩放1”指的是通过键盘快捷键来操控地图的移动和缩放行为,而不是依赖鼠标或其他输入设备。这种功能对于提升用户体验,特别是对有特殊需求或偏好使用键盘导航的用户来说非常重要。 首先,...
**基于canvas的Web页面mini导航面板插件——pagemap.js** 在现代Web开发中,为了提高用户体验,各种交互式和动态元素变得越来越普遍。其中,`pagemap.js` 是一个独特的JavaScript插件,它利用了HTML5的`<canvas>`...
在JavaScript中,我们可以使用谷歌地图API提供的方法来实现地图的平移、缩放和移动。例如,`panBy()`方法用于平移地图,`setZoom()`方法调整缩放级别,`setCenter()`方法改变地图的中心点。这些操作都需要响应用户的...