彩票走势图

Flash地图控件AnyMap使用教程:Self Drilldown Maps

原创|使用教程|编辑:郝浩|2013-06-24 12:01:32.000|阅读 563 次

概述:AnyMap允许用户使用两种不同的方法创建钻取图——使用AnyChart JavaScript库和使用AnyChart Dashboard功能。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

Flash地图控件AnyMap允许用户使用两种不同的方法创建钻取图——使用AnyChart JavaScript库和使用AnyChart Dashboard功能。

用户可以很简单的创建自钻取地图——只需要创建几个地图图表 ( <chart plot_type="Map"> ) 节点,进行命名,并提供所需的行动。

在本文的这个示例中,我们将创建一个北美自钻取图,示例中的钻取功能仅限于USA、Canada、Mexico和Greenland等国家地图,其他国家将被禁用钻取功能。

我们将使用下面的".amap"文件:Northern America、USA、Canada、Mexico and Greenland。

》》》免费下载AnyMap最新版

第一步:Northern America地图设置

首先,我们将创建主图,这将显示第一个图表——美国北部的地图:

<?xml version="1.0" encoding="UTF-8"?>
<anychart>
  <charts>
    <chart plot_type="Map" name="Northern America">
      <chart_settings>
        <title>
          <text>Map of the Northern America</text>
        </title>
        <chart_background enabled="false" />
        <data_plot_background enabled="false" />
      </chart_settings>
      <data_plot_settings>
        <map_series source="world/north_america.amap">
          <projection type="orthographic" />
        </map_series>
      </data_plot_settings>
    </chart>
  </charts>
</anychart>

通过这些设置我们将创建如下地图:

Flash地图控件AnyMap使用教程:Self Drilldown Maps

调整交互选项

在这里我们假设只使用USA、Canada、Greenland和Mexico并禁用其他国家,所以我们将添加一系列点,对应于选定的国家——这地区将成为"defined"(调色板是用来自动着色):

<data>
  <series>
    <point name="United States" />
    <point name="Canada" />
    <point name="Mexico" />
    <point name="Greenland" />
  </series>
</data>

现在我们应该关闭交互性选项未定义区域(只留下悬停选项定义区域):

<map_series source="world/north_america.amap" id_column="REGION_NAME">
  <undefined_map_region>
    <interactivity allow_select="false" hoverable="false" use_hand_cursor="false" />
  </undefined_map_region>
  <defined_map_region>
    <interactivity allow_select="false" />
  </defined_map_region>
</map_series>

让我们看一个中间结果,选定的国家已经被设为彩色,并且悬停和可选择的,其他国家已经被禁用:

Flash地图控件AnyMap使用教程:Self Drilldown Maps

定义钻取行为

我们将定义钻取行为,需要添加行为节点到数据部分,如:

<data>
  <actions>
    <action type="updateChart" source_mode="internalData" source="{%REGION_NAME}" />
  </actions>
  <series palette="Default">
    <point name="United States" />
    <point name="Canada" />
    <point name="Mexico" />
    <point name="Greenland" />
  </series>
</data>

这个行为意味着当用户点击任何已定义的地区,当前的图表将被替换为当前XML文件的另一个图表,并且图表的名称应当与Northern America Map Reference中的REGION_NA的列值一致。

第二步——Country Maps

Country Maps将有非常类似的设置,并避免重复我们将创建一个模板,然后将它应用于所有国家地图。

总之,模板是图表或地图设置的一部分,所以我们将创建一个地图模板,将定义一个返回Northern America Map按钮,着色的地区,一些边界设置和设置工具提示显示Region Names:

<templates>
  <template name="SubRegion">
    <chart plot_type="Map">
      <chart_settings>
        <chart_background enabled="false" />
        <data_plot_background enabled="false" />
        <footer enabled="true">
          <text>Back to Northern America Map</text>
          <actions>
            <action type="updateChart" source_mode="internalData" source="Northern America" />
          </actions>
        </footer>
      </chart_settings>
      <data_plot_settings>
        <map_series>
          <projection flag="true" />
          <undefined_map_region palette="Default">
            <tooltip_settings enabled="true">
              <format>{%REGION_NAME}</format>
            </tooltip_settings>
          </undefined_map_region>
        </map_series>
      </data_plot_settings>
    </chart>
  </template>
</templates>

现在让我们看一个示例Canada Country Map XML,您可以看到,我们仅仅设置了地图名,定义的 ".amap" 文件和应用的"SubRegion"模板:

<chart plot_type="Map" name="Canada" template="SubRegion">
  <chart_settings>
    <title>
      <text>Canada</text>
    </title>
  </chart_settings>
  <data_plot_settings>
    <map_series source="north_america/canada.amap" />
  </data_plot_settings>
</chart>

最后,Northern America的钻取地图就完成了:

现在我们可以为Mexico、USA和Greenland创建相同的<chart>节点,将它们添加到<charts> 节点(别忘了添加&lt;templates>到<anychart>节点),之后Northern America的钻取地图就完成了,你可以测试它并在预览中查看完整的XML设置:

Flash地图控件AnyMap使用教程:Self Drilldown Maps


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP