MapXtreme for .net实现鼠标中键缩放地图

鼠标中键缩放地图要用到js,它的实现可以分为三步。

第一步,在页面的</form>之前添加如下JavaScript代码,(切忌一定要在</form>之前)

 

代码
 
   
< 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 >

第二步,在后台代码中,如自定义命令的文件CustomCommands.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);
}
}
}

 

 

第三步,在页面注册WheelZoom
 
   
if (Session.IsNewSession)
{
MapControlModel model
= MapControlModel.SetDefaultModelInSession();
model.Commands.Add(
new WheelZoom());
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值