mapx 运行过程中发现当地图无线缩小时 地图 突然之间 将所有缩放图层全部显示在一个很小的区域,故而死机。我估计应该是 无线缩小时map对象的zoom 值溢出所致,无限放大也非我想看到的。固用了点小伎俩 将其控制。
1. ToolUsed 事件中 加入
if (Map.CurrentTool == MapXLib.ToolConstants.miZoomInTool)
{
if (Map.Zoom <= zoommin)
{
e.enableDefault = false;
return;
}
if (e.distance <= zoommin && e.distance > 0.0)
{
e.enableDefault = false;
Map.ZoomTo(zoommin, (e.x1 + e.x2) / 2, (e.y1 + e.y2) / 2);
}
return;
}
if (Map.CurrentTool == MapXLib.ToolConstants.miZoomOutTool)
{
if (Map.Zoom >= zoommax)
{
e.enableDefault = false;
return;
}
if ((Map.Zoom / e.distance) * Map.Zoom > zoommax && e.distance > 0.0)
{
e.enableDefault = false;
Map.ZoomTo(zoommax, (e.x1 + e.x2) / 2, (e.y1 + e.y2) / 2);
}
return;
}
2.MouseWheelEvent 事件中加入
if ((Map.Zoom > zoommax && e.zDelta < 0) || (Map.Zoom < zoommin && e.zDelta > 0))
{
e.enableDefault = false;
}