地图导航控件。

命名空间:  SuperMap.UI
程序集:  SuperMap.UI.Controls (in SuperMap.UI.Controls)
版本: dll

语法

C#
[ToolboxBitmapAttribute(typeof(MapNavigationControl))]
public class MapNavigationControl : Component

备注

地图导航控件用于对 MapControl 控件中的地图进行导航操作,包括平移和缩放功能。

MapControl 控件中默认是不加载地图导航控件(MapNavigationControl 控件)的,如果需要在地图窗口中使用 MapNavigationControl 控件对地图进行平移、缩放操作,需要将 MapNavigationControl 控件与 MapControl 进行关联,关联操作通过 MapNavigationControl.MapControl 属性实现,或者在实例化一个新的 MapNavigationControl 对象时,通过 MapNavigationControl(MapControl mapControl) 构造函数实现 MapNavigationControl 对象与指定的 MapControl 对象关联。

如下图所示,为添加了 MapNavigationControl 控件的 MapControl 控件,同时,图中还指出 MapNavigationControl 控件各个部分所具有的功能。

当用户单击一次放大或者缩小按钮时,放大、缩小按钮之间的滑块会相应地向上或者向下移动一次,即移动一级,滑块在放大缩小按钮间可以移动的级数以及每一级对地图缩放的大小将由下面的情况来确定。

1. 默认状态:
默认状态是指用户没有设置 MapNavigationControl 对象的 MaxScale 和 MinScale 属性,同时也没有使用固定比例尺来显示地图。

放大缩小按钮之间存在21个级数,初始状态下,滑块停留在放大缩小按钮之间的中部位置,此处为0级,由此级别开始向上可以移动10级,向下可以移动10级,并且滑块每向上移动一级,地图将放大1倍,滑块每向下移动一级,地图将缩小1倍。

2. 设置 MaxScale 和 MinScale 属性时:
当用户设置了 MapNavigationControl 对象的 MaxScale 和 MinScale 属性,但是仍旧没有使用固定比例尺来显示地图时。

MaxScale 属性设置地图可以放大到的最大比例尺;MinScale 属性设置地图可以缩小到的最小比例尺,在此情况下,放大缩小按钮之间仍旧存在21个级数,放大缩小按钮之间的中部位置为0级,由0级开始向上可以移动10级,向下可以移动10级,每一级对地图的缩放大小由所设置的 MaxScale 和 MinScale 属性值计算获得。

3. 使用固定比例尺来显示地图时:
如果用户在显示地图时,设置了 Map.IsVisibleScalesEnabled 为 true,并且通过 Map.VisibleScales 属性提供了若干个比例尺,这种情况为”使用固定比例尺来显示地图“。

这种情况下,MapNavigationControl 控件可以将地图放大到的最大比例尺,以及缩小到的最小比例尺分别由所设置的 Map.VisibleScales 属性中的最大比例尺和最小比例尺来确定,并且 Map.VisibleScales 属性所设置的比例尺的个数将决定 MapNavigationControl 控件的放大缩小按钮之间的级数,例如:Map.VisibleScales 属性设置了 5 个比例尺,那么,放大缩小按钮之间有5个级别,每一个级别对应 Map.VisibleScales 属性值中的一个比例尺。

此外,如果用户只设置了 Map.IsVisibleScalesEnabled 为 true,并没有通过 Map.VisibleScales 属性指定比例尺,或者用户设置了 Map.IsVisibleScalesEnabled 为 false时,本情况都不生效。

示例

以下代码示范了如何创建并设置地图导航控件。假设已存在地图控件mapControl1。

CopyC#
private MapNavigationControl mapNavigationControl1;
private void InitializeMapNavigationControl()
{
    // 构造一个对象 
    mapNavigationControl1 = new MapNavigationControl();

    // 关联一个MapControl控件
    mapNavigationControl1.MapControl = mapControl1;

    // 设置通过此控件可以缩放的最大比例尺
    mapNavigationControl1.MaxZoomScale = 1.0/100;

    // 设置通过此控件可以缩放的最小比例尺
    mapNavigationControl1.MinZoomScale = 1.0/100000000;

    // 设置此控件相对于其关联的MapControl控件的位置
    mapNavigationControl1.Location = new Point(0, 0);

    // 设置此控件绑定到容器的边缘
    mapNavigationControl1.Anchor = (AnchorStyles)(AnchorStyles.Left | AnchorStyles.Top);
}

继承层次

System..::.Object
  System..::.MarshalByRefObject
    System.ComponentModel..::.Component
      SuperMap.UI..::.MapNavigationControl

请参见