mapx 视野无限放大和无限缩小控制

来源:互联网 发布:java编程环境搭建 编辑:程序博客网 时间:2024/05/18 22:54

 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;
            }

原创粉丝点击