Dundas Map for ASP.NET:AJAX驱动的交互式地图

Dundas Map for ASP.NET是由Dundas Software推出的最新产品,于2006年9月12日发布。Dundas Map的主要目的是为数据提供地理上下文。与其姊妹产品Dundas Chart一样,Map控件巧妙地利用AJAX实现了其核心功能。此外,Dundas Map还提供了一个完整的结构,开发者可以通过使用AJAX添加额外的交互性。

AJAX(异步JavaScript和XML)是一种用于开发交互式Web应用程序的Web开发技术。通过客户端和服务器之间交换少量数据,AJAX提供了一种理想的手段,用于交付响应迅速、加载快速、用户友好的ASP.NET应用程序。

Dundas Map中的AJAX

Dundas Map for ASP.NET使用AJAX来管理以下内置功能:

  • 视图平移
  • 导航
  • 缩放

让更仔细地看看这些功能。

将地图控件拖放到工作区后,启用缩放、平移和面板驱动导航非常简单。可以通过属性浏览器、Dundas Map Wizard™或以编程方式启用这些属性,如下所示:

C# MapControl1.ZoomPanel.Visible = true; MapControl1.NavigationPanel.Visible = true; MapControl1.Viewport.EnablePanning = true;

启用这三个属性后,地图将采用默认的缩放和导航参数,例如最小和最大缩放。然后可以修改这些参数以满足地图应用程序的逻辑约束和美学需求。

使用缩放、平移和导航功能,用户可以轻松地控制地图,允许他们决定感兴趣的区域和地图的细节程度。在这个示例中,代表城市的符号附加到名为"LayerCities"的层。此层设置为从缩放级别250到1200可见。

当放大地图时,这些城市变得可见,为地图提供了更多的信息深度。通过几次鼠标操作,可以实现如图3所示的视图。这个视图是通过使用缩放面板放大、导航和平移至感兴趣的区域实现的,在本例中是东非。值得注意的是,有一个层属性LabelVisibleFromZoom。这个属性允许在低缩放级别和高符号密度的地图中使符号可见,同时隐藏它们的标签。

有了上述功能,可以通过几行代码轻松添加更多的用户驱动功能。使用AJAX,可以修改现有的符号。使用HTML复选框,可以让用户提供在标签隐藏时为符号添加工具提示的能力。

Client-side JavaScript function CheckboxCapitals_onclick() { var mapControl = document.getElementById("MapControl1"); var checkCities = document.getElementById("CheckboxCities"); mapControl.doCallback("CityVisibility", checkCities.checked); } Server-side C# callback routine protected void MapControl1_Callback(object sender, Dundas.Maps.WebControl.CallbackEventArgs e) { MapControl mapControl = e.MapControl; if (e.CommandName == "CityVisibility") { if (e.CommandArgument == "true") { mapControl.Layers[0].VisibleFromZoom = mapControl.Viewport.Zoom; foreach (Symbol city in mapControl.Symbols) { city.ToolTip = ""; } } else { foreach (Symbol city in mapControl.Symbols) { city.ToolTip = "#NAME"; } } e.ReturnCommandName = "UpdatePageElements"; } }

上述示例使用配置了回调事件的地图控件,该回调事件用于接收由地图创建的回调。回调例程本身使用从客户端传回的CommandName和CommandArgument来决定要采取的操作。CommandName用于指定要对地图进行的更改,这很重要,因为多个客户端操作可以链接到一个回调例程。CommandArgument参数用于向服务器提供参数以帮助其进行更改。在这个示例中,它用于传递一个简单的true或false字符串以确定客户端复选框的状态。

要实现图4中的地图,(以编程方式)将LayerCities的VisibleFromZoom属性等同于Viewport的当前缩放,使城市可见。还为每个城市添加了工具提示以帮助用户评估地图。(注意:需要将鼠标悬停在符号上才能显示其工具提示。)所有数据字段(在组、形状、符号和路径中)都可以通过在字段名称的开头添加"#"直接在代码中访问。这种直接访问允许数据轻松附加和从地图元素中分离。让通过显示现有地图中国家的人口来进一步探索这个功能。

要显示人口,需要创建一个ShapeRule。在此规则中,必须设置希望在颜色样本中反映的ShapeField值,在这种情况下是人口。同样,这些属性可以以编程方式设置,也可以通过ShapeRule Collection Editor设置。将ShapeField设置为POPULATION,并使用等分布对数据进行分组。经过一些美学更改后,地图将如下所示:

在要显示的数据位于外部数据库的情况下,可以使用DataBindingRules Collection Editor创建/编辑规则,指定BindingField和DataMember以等同于该字段。在这种情况下,实际数据直到运行时才并入地图。这将确保每次生成地图时都使用最新的信息。可以使用与修改符号工具提示相同的方式使用AJAX更新此数据。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485