企业级数据大屏设计如何实现

大屏是什么?

大屏设计是最近比较流行的概念,一般按照功能来分有几种:

1. 可交互的触摸屏,大多运用在互动教学课程或者报告演示现场,用户可结合交互操作来阐述具体内容。设计师需要对交互形式和传达内容作统一思考设计。

 

2. 为某些特定的大型活动设计的专属大屏,比如说产品发布会、双11购物狂欢节。这类大屏需要结合音乐、场景、动效、灯光等多方面元素统一烘托,最终效果酷炫震撼,所有展现的内容都是定制化设计和开发的。

 

3.专为企业提供服务的可视化数据大屏,这一类大屏在商业中有其应用价值,它的特性是数据展示能力强,用一些较为常见的图表,如柱状图、饼图等来展现业务情况,使客户快速读懂数据背后的含义。

 

 

数据大屏为客户提供了政务、电商、客服、安全、金融等多个应用场景。

 

 

数据大屏和数据报告的区别是什么?

先来看一下业务场景中的报告和大屏是如何展现的:

报告

 

 

大屏

 

1.用户

数据报告的用户一般是数据分析师,分析师制作完报告,会把结果反馈给业务人员或者公司高层,为决策提供参考。而大屏的用户会更广,整个企业内的有关人员甚至所有员工都能够看大屏。

 

2.交互

一份完整的报告一般包括详细的分析过程,用户无法在不交互的情况下了解完整数据,比如说筛选、钻取、查看详情等等,都是很常用的分析功能。而大屏依靠视觉、动效,来传递有效信息,用户并不需要交互即可直观迅速了解内容。

 

3.时间

报告偏向展示一段时间内的数据,某些企业甚至能通过报告的日期筛选查询到从接入系统开始所有的历史数据。大屏更多起到的是监测职能,反馈的是实时信息,显示的是当下的数据。

 

4.展示

报告的阅读场景决定了它展示的侧重点在“精确”和“完整”,要达到这两点,不可避免有时候会牺牲一些视觉表现。例如:数据项过多的情况下,视觉感受比较拥挤。

 

 

对于大屏来说,即使只有当下的数据,用户也很难在短时间内get到关键,所以重要的是如何在有限的时间内传递出有效信息,即如何迅速提炼出重点数据并展示,即使这样会牺牲数据的完整性。

如果用一句话总结数据大屏的设计的关键:重点突出大于面面俱到。

 

大屏产生的过程

大部分人制作大屏的方式,只是一种图表的堆砌,先把需要的单个图表做完,然后简单地罗列组合在一起,最后改变一下整体颜色,就完成了。整个过程虽然不能说错,但并没有把大屏的优势发挥出来。一个完整的大屏设计过程应该包括以下步骤:

 

 

1.提炼信息

首先,我们要对数据进行分析,得出自己的结论。同样一份数据,因为不同的角度和思考方式,可能得出的观点很不一样。例如同样都是关于销售额的数据,有人希望知道各地销售额对比,有人希望了解销售额排名前五的商品类型,拿来数据就画图会让设计显得杂乱无章,读者也不知道要读什么数据。

所以在大屏设计之前,需要先和客户确认他们想要传达给目标用户的重点,这个重点是他们希望用户在读完这个大屏之后能够理解并记住的主要信息,很多公司都错误的认为,把多个数据塞进一个大屏中可以帮助提高公司的专业度,实际上这只能显示他们有很多数据。

为什么重点这么重要,试想一下,看大屏的人可能只会驻足在屏幕前一分钟,他们和大屏仅有的互动就是快速扫过整张图,在这一分钟内,到底能记住多少信息?设计师在每个设计环节都要牢牢记住这一点。

可以尝试着问客户两个问题:

(1)如果整个大屏只能展示一个最重要的信息,你希望是什么?

(2)你希望展现这些信息的理由是什么?通过客户的回答,你能了解他希望用户的关注点在哪里,从而提炼出设计重点。如果只有一个重点,放在最显眼的位置,如果有几个重点,尽量集中放置,吸引视觉焦点。

没有什么比加粗高亮数字更简单直接,保险大屏想传递的重心在于

(1)保费总额 。

(2)各地贡献的保费情况。

 

 

网络安全大屏,首先让用户通过直接的数字感知总体安全情况,其次详细查看当前攻击发生的源头和目的地。

 

 

整个客户服务的场景中,员工们是非常忙碌的,可能只有偶尔休息的间隙查看一下实时的服务情况,最希望传达给客服的信息集中设计在左半屏,

(1)呼叫量。

(2)满意度。其他信息的优先级相对较低。

 

 

 

2.选择图表

明确需要表达的信息和主题后,需要根据这个信息的数据关系,决定选择何种图表类型,以及要对图表作何种特别处理。

图表种类各式各样,有些图表很难界定是属于哪种关系,我见过讲图表关系和图表功能比较好的平台是Ant v的墨者学院,有兴趣的小伙伴可以了解一下。

 

Ant v把数据关系分成了9个大类,当你确定了某个数据关系类型后,就可以根据该数据的使用场景查找出相对应的图表和使用建议,并在其中进行选择。

以一份购物城数据为例:

 

3.制作图表

 

当确定了要使用哪些图表做图后,开始进入制作流程,影响最终图表展现效果的元素一般分为两个层面:

 

非数据层:

 

不受数据影响样式的元素,比如说背景、网格线、外边框等等。这类元素起到的是辅助阅读作用,但如果不加处理全部放出,视觉上会显得杂乱和不够简洁,干扰到你真正想展示的信息。对于这类元素,应该尽量隐藏和弱化。

 

隐藏

 

·      去除不必要的背景填充

 

·      去掉无意义的颜色变化

 

·      去掉不必要的外框

 

弱化

 

·      坐标轴淡色或隐藏

 

·      网格线淡色或隐藏

 

数据层:

受数据影响样式的元素,比如说柱状图的柱条长度,柱条颜色,柱条展示个数,气泡图气泡大小等等,这类元素的展示效果和图表本身的数据息息相关,一旦图表本身的数据比较极端,有可能会使得最终视觉展现不尽如人意,我们无法改变具体的数据,是否就完全无法操控这些元素了呢?

这里挑选了几个大屏中应用较多的图表,总结了其数据层样式的调整方式。

 

调整范围

 

·      截断超大值

当某一个值特别大时,绘制出的条形远远长于其他类别,导致其他条形被压缩,不便于比较。某条特别长,也可能会影响到整个大屏的排版平衡,可以采用截断选项的方式。

 

 

·      数据可以不从0开始

很多数据可视化工具里都有“数轴是否包括零”这一个选项,用户可通过这个功能来控制坐标轴的显示范围,例如下图,折线的波动范围比较小,走势起伏不明显,这时可以选择数据不从零开始,清晰地看出了折线的走势情况。当然,如果在平时的数据报告中,这样显示有夸大差异的嫌疑,不建议频繁使用。

 

 

避免重叠

 

·      避免负值被遮盖

当一些数值有负数时,标签和柱条离得较远,不便于阅读,如果标签紧贴柱条,又会发生重叠,比较好的方式是标签根据柱条的方向分别显示在坐标轴的两侧。

 

 

 

·      轴标签太长可横向放置

 

当轴标签太长时,虽然斜放可以避免重叠,但歪着头查看内容在浏览大屏的场景下对用户不是很友好,可以考虑把柱条横向放置,把标签置于柱条空隙之间。

 

 

精简数据项

 

·      饼图分类5~7项

在做数据报告时,不管有多少数据项,为了完整和精确性,所有的内容都会显示出来,但在大屏中,如此满的数据展示,不但忽略了视觉体验,还会让用户抓不住重点,对于饼图来说,建议扇区个数不要超过5个,例如保留占比前5的扇区,剩下的非重点数据全部归到“其他”。

 

·      保留前五和后五

如果柱状图的数据项过多,展示时会过于密集,建议先把数据项按照数值大小排序,然后将中间用户可能不是最关心的柱条折叠起来,只保留前五和后五的数据项。

 

强调重点

 

·      视觉高亮重要信息

先来看一张对比图,虽然左图颜色更加丰富,但是没有重点,视觉传达给用户的信息是没有主次的,而右图很明显想传达:这个数值有异常!请关注我!在大屏中,为了在短时间内让用户get到关键信息,应该尽量排除其他不重要的数据项干扰。

 

折线图中,只高亮重要数据点比每个节点都标注更能传递有效信息

 

在饼图中,因为颜色块大小代表占比多少,所以高亮的方式并不一定适用,我们可以通过分离某一块扇区达到强调重点的效果。

 

·      尽量减少图例

 

大屏的图表中应该尽量避免图例,图例会让用户不断在数据项和颜色块之间往返比对,耗费时间,还容易忘记重点,由于柱条个数经特殊处理后并不会很多,所以数据项名称可以直接标注。

 

 

总结

如果要对大屏设计的特点作一个总结:全屏时突出重点图表,单表时突出重点数据。把握好这点,至少可以避过大部分的坑。但一个高水准的大屏,还少不了一些细节的把控。比如:

 

1.  大屏风格是否符合业务主题,是热烈?是专业?是冷静?

 

2.  是否需要一些个性化的控件:例如时间器、轮播欢迎语等。

 

3.  是针对固定屏的定制化开发,还是考虑延展性的模块纵横栅格布局,对不同屏的适配是如何?

 

4.  现场投放大屏后,内容是否方便阅读,动效是否符合预期,色差是是否需要调整等等。

 

由于篇幅原因,这里不一一详细展开,如果有小伙伴对我们大屏感兴趣,可以加微信群:1092912327。

 

 

大屏是我们用来分享、沟通、传播信息的有效途径之一。它将会进化成一种新的媒体形式,在品牌推广、政务接待、商业沟通、数据监控等各个场景发挥重要作用。本文主要整理了一些大屏设计过程中的方法和原则,希望能够为大家提供一些借鉴思路。

写了几篇实现思路文章:

 

https://www.cnblogs.com/luoyuhao/p/13867911.html SaaS系统怎么做物流行业年度经营报告,MVC+js+echarts实现

 

 

出处:https://www.cnblogs.com/luoyuhao/p/13901445.html

=======================================================================================

怎么实现员工和工资大数据分析,echarts+js实现

前言

 现如今市场上的人事系统五花八门,可做了大数据分析的人事系统少之又少,最近本人花了一个星期好好研究了大数据展示方面的内容,图表主要用的是echarts来实现的,官网地址:https://echarts.apache.org/zh/index.html

 

 

下面两张图片展示出我实现的员工和工资的大数据分析界面:

员工大数据分析中心

 

工资大数据分析中心

如何实现漂亮的图表

地图实现

首先引入js文件,去官网可以下载到这几个文件,引入到项目中就好了。

<script type="text/javascript" src="~/showdata/js/jquery.js"></script>
<script type="text/javascript" src="~/showdata/js/echarts.min.js"></script>
<script type="text/javascript" src="~/showdata/js/china.js"></script>
<script type="text/javascript" src="~/showdata/js/area_echarts_hr.js">

图层引入

<div class="map4" id="map_1"></div>

 

地图实现的js

$(function () {
    map();
})
var lightProvince = [];
var provinceMap = {
    台湾: 'taiwan',
    河北: 'hebei',
    山西: 'shanxi',
    辽宁: 'liaoning',
    吉林: 'jilin',
    黑龙江: 'heilongjiang',
    江苏: 'jiangsu',
    浙江: 'zhejiang',
    安徽: 'anhui',
    福建: 'fujian',
    江西: 'jiangxi',
    山东: 'shandong',
    河南: 'henan',
    湖北: 'hubei',
    湖南: 'hunan',
    广东: 'guangdong',
    海南: 'hainan',
    四川: 'sichuan',
    贵州: 'guizhou',
    云南: 'yunnan',
    陕西: 'shanxi1',
    甘肃: 'gansu',
    青海: 'qinghai',
    新疆: 'xinjiang',
    广西: 'guangxi',
    内蒙古: 'neimenggu',
    宁夏: 'ningxia',
    西藏: 'xizang',
    北京: 'beijing',
    天津: 'tianjin',
    上海: 'shanghai',
    重庆: 'chongqing',
    香港: 'xianggang',
    澳门: 'aomen'
};
var py_provinceMap = {
    china: '全国',
    hebei: '河北',
    shanxi: '山西',
    liaoning: '辽宁',
    jilin: '吉林',
    heilongjiang: '黑龙江',
    jiangsu: '江苏',
    zhejiang: '浙江',
    anhui: '安徽',
    fujian: '福建',
    jiangxi: '江西',
    shandong: '山东',
    henan: '河南',
    hubei: '湖北',
    hunan: '湖南',
    guangdong: '广东',
    hainan: '海南',
    sichuan: '四川',
    guizhou: '贵州',
    yunnan: '云南',
    shanxi: '陕西',
    gansu: '甘肃',
    qinghai: '青海',
    xinjiang: '新疆',
    guangxi: '广西',
    neimenggu: '内蒙古',
    ningxia: '宁夏',
    xizang: '西藏',
    beijing: '北京',
    tianjin: '天津',
    shanghai: '上海',
    chongqing: '重庆'
};
var cityMap = {
    北京市: '110100',
    天津市: '120100',
    上海市: '310100',
    重庆市: '500100',
    崇明县: '310200',
    湖北省直辖县市: '429000',
    铜仁市: '522200',
    毕节市: '522400',
    石家庄市: '130100',
    唐山市: '130200',
    秦皇岛市: '130300',
    邯郸市: '130400',
    邢台市: '130500',
    保定市: '130600',
    张家口市: '130700',
    承德市: '130800',
    沧州市: '130900',
    廊坊市: '131000',
    衡水市: '131100',
    太原市: '140100',
    大同市: '140200',
    阳泉市: '140300',
    长治市: '140400',
    晋城市: '140500',
    朔州市: '140600',
    晋中市: '140700',
    运城市: '140800',
    忻州市: '140900',
    临汾市: '141000',
    吕梁市: '141100',
    呼和浩特市: '150100',
    包头市: '150200',
    乌海市: '150300',
    赤峰市: '150400',
    通辽市: '150500',
    鄂尔多斯市: '150600',
    呼伦贝尔市: '150700',
    巴彦淖尔市: '150800',
    乌兰察布市: '150900',
    兴安盟: '152200',
    锡林郭勒盟: '152500',
    阿拉善盟: '152900',
    沈阳市: '210100',
    大连市: '210200',
    鞍山市: '210300',
    抚顺市: '210400',
    本溪市: '210500',
    丹东市: '210600',
    锦州市: '210700',
    营口市: '210800',
    阜新市: '210900',
    辽阳市: '211000',
    盘锦市: '211100',
    铁岭市: '211200',
    朝阳市: '211300',
    葫芦岛市: '211400',
    长春市: '220100',
    吉林市: '220200',
    四平市: '220300',
    辽源市: '220400',
    通化市: '220500',
    白山市: '220600',
    松原市: '220700',
    白城市: '220800',
    延边朝鲜族自治州: '222400',
    哈尔滨市: '230100',
    齐齐哈尔市: '230200',
    鸡西市: '230300',
    鹤岗市: '230400',
    双鸭山市: '230500',
    大庆市: '230600',
    伊春市: '230700',
    佳木斯市: '230800',
    七台河市: '230900',
    牡丹江市: '231000',
    黑河市: '231100',
    绥化市: '231200',
    大兴安岭地区: '232700',
    南京市: '320100',
    无锡市: '320200',
    徐州市: '320300',
    常州市: '320400',
    苏州市: '320500',
    南通市: '320600',
    连云港市: '320700',
    淮安市: '320800',
    盐城市: '320900',
    扬州市: '321000',
    镇江市: '321100',
    泰州市: '321200',
    宿迁市: '321300',
    杭州市: '330100',
    宁波市: '330200',
    温州市: '330300',
    嘉兴市: '330400',
    湖州市: '330500',
    绍兴市: '330600',
    金华市: '330700',
    衢州市: '330800',
    舟山市: '330900',
    台州市: '331000',
    丽水市: '331100',
    合肥市: '340100',
    芜湖市: '340200',
    蚌埠市: '340300',
    淮南市: '340400',
    马鞍山市: '340500',
    淮北市: '340600',
    铜陵市: '340700',
    安庆市: '340800',
    黄山市: '341000',
    滁州市: '341100',
    阜阳市: '341200',
    宿州市: '341300',
    六安市: '341500',
    亳州市: '341600',
    池州市: '341700',
    宣城市: '341800',
    福州市: '350100',
    厦门市: '350200',
    莆田市: '350300',
    三明市: '350400',
    泉州市: '350500',
    漳州市: '350600',
    南平市: '350700',
    龙岩市: '350800',
    宁德市: '350900',
    南昌市: '360100',
    景德镇市: '360200',
    萍乡市: '360300',
    九江市: '360400',
    新余市: '360500',
    鹰潭市: '360600',
    赣州市: '360700',
    吉安市: '360800',
    宜春市: '360900',
    抚州市: '361000',
    上饶市: '361100',
    济南市: '370100',
    青岛市: '370200',
    淄博市: '370300',
    枣庄市: '370400',
    东营市: '370500',
    烟台市: '370600',
    潍坊市: '370700',
    济宁市: '370800',
    泰安市: '370900',
    威海市: '371000',
    日照市: '371100',
    莱芜市: '371200',
    临沂市: '371300',
    德州市: '371400',
    聊城市: '371500',
    滨州市: '371600',
    菏泽市: '371700',
    郑州市: '410100',
    开封市: '410200',
    洛阳市: '410300',
    平顶山市: '410400',
    安阳市: '410500',
    鹤壁市: '410600',
    新乡市: '410700',
    焦作市: '410800',
    濮阳市: '410900',
    许昌市: '411000',
    漯河市: '411100',
    三门峡市: '411200',
    南阳市: '411300',
    商丘市: '411400',
    信阳市: '411500',
    周口市: '411600',
    驻马店市: '411700',
    省直辖县级行政区划: '469000',
    武汉市: '420100',
    黄石市: '420200',
    十堰市: '420300',
    宜昌市: '420500',
    襄阳市: '420600',
    鄂州市: '420700',
    荆门市: '420800',
    孝感市: '420900',
    荆州市: '421000',
    黄冈市: '421100',
    咸宁市: '421200',
    随州市: '421300',
    恩施土家族苗族自治州: '422800',
    长沙市: '430100',
    株洲市: '430200',
    湘潭市: '430300',
    衡阳市: '430400',
    邵阳市: '430500',
    岳阳市: '430600',
    常德市: '430700',
    张家界市: '430800',
    益阳市: '430900',
    郴州市: '431000',
    永州市: '431100',
    怀化市: '431200',
    娄底市: '431300',
    湘西土家族苗族自治州: '433100',
    广州市: '440100',
    韶关市: '440200',
    深圳市: '440300',
    珠海市: '440400',
    汕头市: '440500',
    佛山市: '440600',
    江门市: '440700',
    湛江市: '440800',
    茂名市: '440900',
    肇庆市: '441200',
    惠州市: '441300',
    梅州市: '441400',
    汕尾市: '441500',
    河源市: '441600',
    阳江市: '441700',
    清远市: '441800',
    东莞市: '441900',
    中山市: '442000',
    潮州市: '445100',
    揭阳市: '445200',
    云浮市: '445300',
    南宁市: '450100',
    柳州市: '450200',
    桂林市: '450300',
    梧州市: '450400',
    北海市: '450500',
    防城港市: '450600',
    钦州市: '450700',
    贵港市: '450800',
    玉林市: '450900',
    百色市: '451000',
    贺州市: '451100',
    河池市: '451200',
    来宾市: '451300',
    崇左市: '451400',
    海口市: '460100',
    三亚市: '460200',
    三沙市: '460300',
    成都市: '510100',
    自贡市: '510300',
    攀枝花市: '510400',
    泸州市: '510500',
    德阳市: '510600',
    绵阳市: '510700',
    广元市: '510800',
    遂宁市: '510900',
    内江市: '511000',
    乐山市: '511100',
    南充市: '511300',
    眉山市: '511400',
    宜宾市: '511500',
    广安市: '511600',
    达州市: '511700',
    雅安市: '511800',
    巴中市: '511900',
    资阳市: '512000',
    阿坝藏族羌族自治州: '513200',
    甘孜藏族自治州: '513300',
    凉山彝族自治州: '513400',
    贵阳市: '520100',
    六盘水市: '520200',
    遵义市: '520300',
    安顺市: '520400',
    黔西南布依族苗族自治州: '522300',
    黔东南苗族侗族自治州: '522600',
    黔南布依族苗族自治州: '522700',
    昆明市: '530100',
    曲靖市: '530300',
    玉溪市: '530400',
    保山市: '530500',
    昭通市: '530600',
    丽江市: '530700',
    普洱市: '530800',
    临沧市: '530900',
    楚雄彝族自治州: '532300',
    红河哈尼族彝族自治州: '532500',
    文山壮族苗族自治州: '532600',
    西双版纳傣族自治州: '532800',
    大理白族自治州: '532900',
    德宏傣族景颇族自治州: '533100',
    怒江傈僳族自治州: '533300',
    迪庆藏族自治州: '533400',
    拉萨市: '540100',
    昌都地区: '542100',
    山南地区: '542200',
    日喀则地区: '542300',
    那曲地区: '542400',
    阿里地区: '542500',
    林芝地区: '542600',
    西安市: '610100',
    铜川市: '610200',
    宝鸡市: '610300',
    咸阳市: '610400',
    渭南市: '610500',
    延安市: '610600',
    汉中市: '610700',
    榆林市: '610800',
    安康市: '610900',
    商洛市: '611000',
    兰州市: '620100',
    嘉峪关市: '620200',
    金昌市: '620300',
    白银市: '620400',
    天水市: '620500',
    武威市: '620600',
    张掖市: '620700',
    平凉市: '620800',
    酒泉市: '620900',
    庆阳市: '621000',
    定西市: '621100',
    陇南市: '621200',
    临夏回族自治州: '622900',
    甘南藏族自治州: '623000',
    西宁市: '630100',
    海东地区: '632100',
    海北藏族自治州: '632200',
    黄南藏族自治州: '632300',
    海南藏族自治州: '632500',
    果洛藏族自治州: '632600',
    玉树藏族自治州: '632700',
    海西蒙古族藏族自治州: '632800',
    银川市: '640100',
    石嘴山市: '640200',
    吴忠市: '640300',
    固原市: '640400',
    中卫市: '640500',
    乌鲁木齐市: '650100',
    克拉玛依市: '650200',
    吐鲁番地区: '652100',
    哈密地区: '652200',
    昌吉回族自治州: '652300',
    博尔塔拉蒙古自治州: '652700',
    巴音郭楞蒙古自治州: '652800',
    阿克苏地区: '652900',
    克孜勒苏柯尔克孜自治州: '653000',
    喀什地区: '653100',
    和田地区: '653200',
    伊犁哈萨克自治州: '654000',
    塔城地区: '654200',
    阿勒泰地区: '654300',
    自治区直辖县级行政区划: '659000',
    台湾省: '710000',
    香港特别行政区: '810100',
    澳门特别行政区: '820000'
};

var lightColor = {
    河北: '#ffa259',
    山西: '#fe6845',
    辽宁: '#fa4252',
    吉林: '#3fc5f0',
    黑龙江: '#c72c41',
    江苏: '#f4efd3',
    浙江: '#c72c41',
    安徽: '#e13a9d',
    福建: '#e13a9d',
    江西: '#cf56a1',
    山东: '#fa697c',
    河南: '#a3f7bf',
    湖北: '#3ed4ff',
    湖南: '#9dab86',
    广东: '#a6c84c',
    海南: '#ffa259',
    四川: '#cfb495',
    贵州: '#f09595',
    云南: '#4f98ca',
    陕西: '#617be3',
    甘肃: '#9aceff',
    青海: '#9aceff',
    新疆: '#02a8a8',
    广西: '#fbdff0',
    内蒙古: '#42e6a4',
    宁夏: '#02a8a8',
    西藏: '#f6c3e5',
    北京: '#a278b5',
    天津: '#d6e5fa',
    上海: '#fbe3b9',
    重庆: '#bac7a7'
};

var geoCoordMap = {
    '新疆': [86.22, 44.30],
    '九江': [116.00, 29.70],
    '新乡': [116.402217, 35.311657],
    ' ': [79.92, 37.12],
    '  ': [86.85, 47.70],
    '若羌县': [88.17, 39.02],
    '上海': [121.4648, 31.2891],
    '东莞': [113.8953, 22.901],
    '东营': [118.7073, 37.5513],
    '中山': [113.4229, 22.478],
    '临汾': [111.4783, 36.1615],
    '临沂': [118.3118, 35.2936],
    '丹东': [124.541, 40.4242],
    '丽水': [119.5642, 28.1854],
    '乌鲁木齐': [87.9236, 43.5883],
    '佛山': [112.8955, 23.1097],
    '保定': [115.0488, 39.0948],
    '兰州': [103.5901, 36.3043],
    '包头': [110.3467, 41.4899],
    '北京': [116.4551, 40.2539],
    '北海': [109.314, 21.6211],
    '南京': [118.8062, 31.9208],
    '南宁': [108.479, 23.1152],
    '南昌': [116.0046, 28.6633],
    '南通': [121.1023, 32.1625],
    '厦门': [118.1689, 24.6478],
    '台州': [121.1353, 28.6688],
    '合肥': [117.29, 32.0581],
    '呼和浩特': [111.4124, 40.4901],
    '咸阳': [108.4131, 34.8706],
    '哈尔滨': [127.9688, 45.368],
    '唐山': [118.4766, 39.6826],
    '嘉兴': [120.9155, 30.6354],
    '大同': [113.7854, 39.8035],
    '大连': [122.2229, 39.4409],
    '天津': [117.4219, 39.4189],
    '太原': [112.3352, 37.9413],
    '威海': [121.9482, 37.1393],
    '宁波': [121.5967, 29.6466],
    '宝鸡': [107.1826, 34.3433],
    '宿迁': [118.5535, 33.7775],
    '常州': [119.4543, 31.5582],
    '广州': [113.5107, 23.2196],
    '廊坊': [116.521, 39.0509],
    '延安': [109.1052, 36.4252],
    '张家口': [115.1477, 40.8527],
    '徐州': [117.5208, 34.3268],
    '德州': [116.6858, 37.2107],
    '惠州': [114.6204, 23.1647],
    '成都': [103.9526, 30.7617],
    '扬州': [119.4653, 32.8162],
    '承德': [117.5757, 41.4075],
    '拉萨': [91.1865, 30.1465],
    '无锡': [120.3442, 31.5527],
    '日照': [119.2786, 35.5023],
    '昆明': [102.9199, 25.4663],
    '杭州': [119.5313, 29.8773],
    '枣庄': [117.323, 34.8926],
    '柳州': [109.3799, 24.9774],
    '株洲': [113.5327, 27.0319],
    '武汉': [114.3896, 30.6628],
    '汕头': [117.1692, 23.3405],
    '江门': [112.6318, 22.1484],
    '沈阳': [123.1238, 42.1216],
    '沧州': [116.8286, 38.2104],
    '河源': [114.917, 23.9722],
    '泉州': [118.3228, 25.1147],
    '泰安': [117.0264, 36.0516],
    '泰州': [120.0586, 32.5525],
    '济南': [117.1582, 36.8701],
    '济宁': [116.8286, 35.3375],
    '海口': [110.3893, 19.8516],
    '淄博': [118.0371, 36.6064],
    '淮安': [118.927, 33.4039],
    '深圳': [114.5435, 22.5439],
    '清远': [112.9175, 24.3292],
    '温州': [120.498, 27.8119],
    '渭南': [109.7864, 35.0299],
    '湖州': [119.8608, 30.7782],
    '湘潭': [112.5439, 27.7075],
    '滨州': [117.8174, 37.4963],
    '潍坊': [119.0918, 36.524],
    '烟台': [120.7397, 37.5128],
    '玉溪': [101.9312, 23.8898],
    '珠海': [113.7305, 22.1155],
    '盐城': [120.2234, 33.5577],
    '盘锦': [121.9482, 41.0449],
    '石家庄': [114.4995, 38.1006],
    '福州': [119.4543, 25.9222],
    '秦皇岛': [119.2126, 40.0232],
    '绍兴': [120.564, 29.7565],
    '聊城': [115.9167, 36.4032],
    '肇庆': [112.1265, 23.5822],
    '舟山': [122.2559, 30.2234],
    '苏州': [120.6519, 31.3989],
    '莱芜': [117.6526, 36.2714],
    '菏泽': [115.6201, 35.2057],
    '营口': [122.4316, 40.4297],
    '葫芦岛': [120.1575, 40.578],
    '衡水': [115.8838, 37.7161],
    '衢州': [118.6853, 28.8666],
    '西宁': [101.4038, 36.8207],
    '西安': [109.1162, 34.2004],
    '贵阳': [106.6992, 26.7682],
    '连云港': [119.1248, 34.552],
    '邢台': [114.8071, 37.2821],
    '邯郸': [114.4775, 36.535],
    '郑州': [113.4668, 34.6234],
    '鄂尔多斯': [108.9734, 39.2487],
    '重庆': [107.7539, 30.1904],
    '金华': [120.0037, 29.1028],
    '铜川': [109.0393, 35.1947],
    '银川': [106.3586, 38.1775],
    '镇江': [119.4763, 31.9702],
    '长春': [125.8154, 44.2584],
    '长沙': [113.0823, 28.2568],
    '长治': [112.8625, 36.4746],
    '阳泉': [113.4778, 38.0951],
    '青岛': [120.4651, 36.3373],
    '韶关': [113.7964, 24.7028]
};

var provinces = ['shanghai', 'hebei', 'shanxi', 'neimenggu', 'liaoning', 'jilin', 'heilongjiang', 'jiangsu', 'zhejiang', 'anhui', 'fujian', 'jiangxi', 'shandong', 'henan', 'hubei', 'hunan', 'guangdong', 'guangxi', 'hainan', 'sichuan', 'guizhou', 'yunnan', 'xizang', 'shanxi1', 'gansu', 'qinghai', 'ningxia', 'xinjiang', 'beijing', 'tianjin', 'chongqing', 'xianggang', 'aomen', 'taiwan']
var provincesText = ['上海', '河北', '山西', '内蒙古', '辽宁', '吉林', '黑龙江', '江苏', '浙江', '安徽', '福建', '江西', '山东', '河南', '湖北', '湖南', '广东', '广西', '海南', '四川', '贵州', '云南', '西藏', '陕西', '甘肃', '青海', '宁夏', '新疆', '北京', '天津', '重庆', '香港', '澳门', '台湾']
var planePath = 'path://M.6,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705';
var convertData = function (data) {
    var res = [];
    for (var i = 0; i < data.length; i++) {
        var dataItem = data[i];
        var fromCoord = geoCoordMap[dataItem.fromName];
        var toCoord = geoCoordMap[dataItem.toName];
        if (fromCoord && toCoord) {
            res.push({
                fromName: dataItem.fromName,
                toName: dataItem.toName,
                coords: [fromCoord, toCoord]
            });
        }
    }
    return res;
};
function SetMap() {
    var url = '../showdata/mapset.html';
    $("#iframeWin").show();
    //var name = 'add';
    //var iWidth = 500;
    //var iHeight = 500;
    ////获得窗口的垂直位置 
    //var iTop = (window.screen.availHeight - 30 - iHeight) / 2;
    ////获得窗口的水平位置 
    //var iLeft = (window.screen.availWidth - 10 - iWidth) / 2;
    //window.open(url, name, 'height=' + iHeight + ',,innerHeight=' + iHeight + ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=0,titlebar=no');
};
var series = [];
var mapSelected = 'china';
var showMapText = false;
var count = 0;
var seriesIndex;
var dataLength;
var dataIndex;
var timeTicket;
var geoData = {};
var mapJsonData;
var color = ['#ffa259', '#fe6845', '#fa4252', '#3fc5f0', '#c72c41', '#f4efd3', '#c72c41', '#e13a9d', '#e13a9d', '#ffd800', '#51eaea', '#a3f7bf', '#3ed4ff', '#ffa022', '#a6c84c'];
var chartOption = {
    title: {
        show: true,
        text: '实时货量流向图',
        target: null,
        subtext: '地图设置',
        //sublink: '../showdata/mapset.html',
        sublink: 'javascript:SetMap();',
        subtarget: 'self',
        x: 'center',
        y: 'top',
        textAlign: null,
        backgroundColor: 'rgba(0,0,0,0)',
        borderColor: '#ccc',
        borderWidth: 0,
        padding: 5,
        itemGap: 10,
        textStyle: {
            fontSize: 30,
            fontStyle: 'normal',
            fontWeight: 'normal',
            color: 'white'
        }
    },
    tooltip: {
        trigger: 'item',
    },
    legend: {
        orient: 'vertical',
        top: 'bottom',
        left: 'right',
        data: [],
        textStyle: {
            color: '#fff'
        },
        selectedMode: 'single'
    },
    geo: {
        label: {
            normal: {
                show: showMapText,
                color: 'white',
                fontSize: 13
            },
            emphasis: {
                show: false
            }
        },
        roam: false,
        layoutCenter: ['50%', '50%'],
        layoutSize: "110%",
        itemStyle: {
            normal: {
                areaColor: '#101f32',
                borderColor: '#43d0d6'
            },
            emphasis: {
                areaColor: '#617be3'
            }
        },
        regions: []
    },
    series: []
};

var isProvince = function (name) {
    return provincesText.some(function (province) {
        return province === name
    })
};
var isCity = function (name) {
    var cityvalue = cityMap[name];
    if (cityvalue != undefined) {
        return true;
    }
    return false;
};
var facheList = function () {
    series.push({
        type: 'lines',
        zlevel: 12,
        effect: {
            show: true,
            period: 3,
            trailLength: 0.7,
            color: '#fff',
            symbol: 'arrow',
            symbolSize: 8,
            xAxisIndex: 0,
            yAxisIndex: 0,
            polarIndex: 0,
            geoIndex: 0,
            calendarIndex: 0,
        },
        lineStyle: {
            normal: {
                color: 'white',
                width: 1,
                opacity: 0.8,
                curveness: 0.2
            }
        },
        data: convertData(geoData.facheList)
    }, {
        type: 'lines',
        zlevel: 12,
        effect: {
            show: true,
            period: 3,
            trailLength: 0,
            symbol: planePath,
            symbolSize: 8
        },
        lineStyle: {
            normal: {
                color: '#9b45e4',
                width: 1,
                opacity: 0.6,
                curveness: 0.2
            }
        },
        data: convertData(geoData.facheList)
    });

    playFaCheList(geoData.facheList);
};
var cityList = function () {
    for (let i = 0; i < geoData.cityList.length; i++) {
        var ci = geoData.cityList[i];
        series.push({
            name: ci.name,
            type: 'effectScatter',
            coordinateSystem: 'geo',
            zlevel: 2,
            rippleEffect: {
                period: 4,
                scale: 2.5,
                brushType: 'stroke'
            },
            label: {
                normal: {
                    //show: true,
                    position: 'right',
                    offset: [1, 0],
                    formatter: '{b}'
                }
            },
            symbolSize: 10,
            itemStyle: {
                normal: {
                    color: '#00ffff'
                },
                emphasis: {
                    color: 'green'
                }
            },
            tooltip: {
                trigger: 'item',
                padding: 0,
                enterable: true,
                transitionDuration: 1,
                textStyle: {
                    color: '#000',
                    decoration: 'none',
                },
                showDelay: 2,
                formatter: function (params) {
                    var tipHtml = '';
                    tipHtml = '<div style="width:200px;height:120px;background:rgba(22,80,158,0.8);border:1px solid rgba(7,166,255,0.7)">'
                        + '<div style="width:100%;height:40px;line-height:40px;border-bottom:2px solid rgba(7,166,255,0.7);padding:0 20px">' + '<i style="display:inline-block;width:8px;height:8px;background:#16d6ff;border-radius:40px;">' + '</i>'
                        + '<span style="margin-left:10px;color:#fff;font-size:16px;">' + params.name + '</span>' + '</div>'
                        + '<div style="padding:10px">'
                        + '<p style="color:#fff;font-size:15px;">发货库存:' + params.data.fhkc + '</p>'
                        + '<p style="color:#fff;font-size:15px;">在途库存:' + params.data.ztkc + '</p>'
                        + '<p style="color:#fff;font-size:15px;">到货库存:' + params.data.dhkc + '</p>'
                        + '</div>' + '</div>';
                    return tipHtml;
                },
                axisPointer: {
                    show: true,
                    type: 'cross',
                    lineStyle: {
                        type: 'dashed',
                        width: 1
                    }
                }
            },
            data: [{
                name: ci.name,
                value: geoCoordMap[ci.name],
                fhkc: ci.fhkc,
                ztkc: ci.ztkc,
                dhkc: ci.dhkc
            }]
        });
    };
};
var playList = function () {
    series.push({
        name: '',
        type: 'effectScatter',
        coordinateSystem: 'geo',
        zlevel: -2,
        rippleEffect: {
            period: 0,
            scale: 0,
            brushType: 'stroke'
        },
        label: {
            normal: {
                show: false,
                position: 'right',
                offset: [5, 0],
                formatter: '{b}'
            }
        },
        symbolSize: 0,
        itemStyle: {
            normal: {
                color: '#ffa259'
            },
            emphasis: {
                color: 'green'
            }
        },
        tooltip: {
            trigger: 'item',
            padding: 0,
            enterable: true,
            transitionDuration: 1,
            textStyle: {
                color: '#000',
                decoration: 'none',
            },
            showDelay: 2,
            formatter: function (params) {
                var tipHtml = '';
                tipHtml = '<div style="width:200px;height:120px;background:rgba(22,80,158,0.8);border:1px solid rgba(7,166,255,0.7)">'
                    + '<div style="width:100%;height:40px;line-height:40px;border-bottom:2px solid rgba(7,166,255,0.7);padding:0 20px">' + '<i style="display:inline-block;width:8px;height:8px;background:#16d6ff;border-radius:40px;">' + '</i>'
                    + '<span style="margin-left:10px;color:#fff;font-size:16px;">' + params.name + '</span>' + '</div>'
                    + '<div style="padding:10px">'
                    + '<p style="color:#fff;font-size:15px;">发货库存:' + params.data.fhkc + '</p>'
                    + '<p style="color:#fff;font-size:15px;">在途库存:' + params.data.ztkc + '</p>'
                    + '<p style="color:#fff;font-size:15px;">到货库存:' + params.data.dhkc + '</p>'
                    + '</div>' + '</div>';
                return tipHtml;
            },
            axisPointer: {
                show: true,
                type: 'cross',
                lineStyle: {
                    type: 'dashed',
                    width: 1
                }
            }
        },
        data: geoData.cityList.map(function (ci) {
            return {
                name: ci.name,
                value: geoCoordMap[ci.name],
                fhkc: ci.fhkc,
                ztkc: ci.ztkc,
                dhkc: ci.dhkc
            };
        })
    });
};

var seriesData = function () {

    series = [];

    facheList();

    cityList();

    //playList();

    count = 0;
    timeTicket = null;
    seriesIndex = series.length - 1;
    dataLength = series[seriesIndex].data.length;
    dataIndex = 0;

    chartOption.series = series;
};

var loadMap = function (param) {
    var url = "../showdata/js/map/" + param + ".js";
    $.ajax({
        url: url,
        dataType: "json"
    }).done(function (data) {
        mapJsonData = data;
        echarts.registerMap(param, mapJsonData);

        if (param != 'china' && param != '全国') {
            showMapText = true;
        }
        else {
            showMapText = false;
        }

        chartOption.geo.map = param;
        chartOption.geo.label.normal.show = showMapText;

        for (let i = 0; i < lightProvince.length; i++) {
            let city = lightProvince[i];
            chartOption.geo.regions.push({
                name: city,
                itemStyle: {
                    normal: {
                        areaColor: lightColor[city]
                    }
                },
                label: {
                    normal: {
                        show: true
                    },
                    emphasis: {
                        show: true
                    },
                }
            });
        }
        myMapChart.hideLoading();
        myMapChart.setOption(chartOption);
    });
};

var playFaCheList = function (data) {
    //var html = '<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta name="author" content="" /> <style type="text/css">  *{margin:10px;padding:10px;border:0px; }body{font-size:20px;color:"white";}  #demo{   overflow:hidden;   height:100px;   width:280px;   margin:90px auto;   position:relative;  }  #demo1{   height:auto;   text-align:left;  }  #demo1 li{   list-style-type:none;   height:22px;   text-align:left;   text-indent:15px;  } </style></head><body><div id="demo"> <ul id="demo1">  '
    //for (let i = 0 ; i < data.length; i++) {
    //    var item = data[i];
    //    html += '<li>' + item.fromName + '=>' + item.toName + '</li>'
    //}
    //html += '</li> </ul> <div id="demo2"></div></div><script type="text/javascript"> var speed=80 ;  var demo=document.getElementById("demo");    var demo1=document.getElementById("demo1");    function Marquee(){   if(demo.scrollTop>=demo1.offsetHeight){ demo.scrollTop=0;   }   else{    demo.scrollTop=demo.scrollTop+1;   } };var MyMar=setInterval(Marquee,speed);  demo.onmouseover=function(){clearInterval(MyMar)};  demo.onmouseout=function(){MyMar=setInterval(Marquee,speed)};</script></body></html>'
    //var x = document.getElementById("iframe_play_fc");
    //x.srcdoc = html;
    var ul = document.getElementById("fachelist_ul");
    for (let i = 0 ; i < data.length; i++) {
        let item = data[i];
        let li = document.createElement("li");
        li.innerHTML = '<li><a href="#">'
            + (i + 1) + ' . '
            + item.billdate + ' '
            //+ item.inonevehicleflag
            + ' 车牌:' + item.vehicleno + ' '
            + '<span style="color:#ff8ba7">' + item.fromName + '=》'
            + item.full_toName + '</span> '
            + '</a></li>';
        
        ul.appendChild(li);
    }
}
function map() {

    myMapChart = echarts.getInstanceByDom(document.getElementById('map_1'));
    if (myMapChart == undefined) {
        myMapChart = echarts.init(document.getElementById('map_1'));
    }

    myMapChart.showLoading({
        text: '正在加载数据.....',
        color: '#fff',
        textColor: '#fff',
        maskColor: '#46b3e6',
        zlevel: 0
    });

    $.ajax({
        url: "/BI/GetgeoCoordData",
        type: "GET",
        data: { cache: false },
        dataType: 'json',
        cache: false,
        success: function (result) {
            if (result.status) {
                if (result.data.length > 0) {
                    var data = JSON.parse(result.data);
                    geoCoordMap = $.extend(geoCoordMap, data);
                    lightProvince = data.provinceList;
                    
                    $.ajax({
                        url: "/BI/GetgeoData",
                        type: "GET",
                        data: { cache: false },
                        dataType: 'json',
                        cache: false,
                        success: function (result) {
                            if (result.status) {
                                if (result.data.length > 0) {
                                    var data = JSON.parse(result.data);
                                    geoData = data;


                                    seriesData();

                                    $.ajax({
                                        url: "/BI/GetProvinceCode",
                                        type: "GET",
                                        dataType: 'json',
                                        success: function (result) {
                                            if (result.status) {
                                                if (result.data.length > 0) {
                                                    if (result.data == 'china') {
                                                        mapSelected = 'china';
                                                    }
                                                    else {
                                                        mapSelected = py_provinceMap[result.data];
                                                    }
                                                    loadMap(result.data);
                                                }
                                            }
                                        },
                                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                                            return;
                                        },
                                        dataType: "json"
                                    }).fail(function (jqXHR, textStatus) {
                                        console.log("Ajax Error: ", textStatus);
                                    });

                                    window.addEventListener("resize", function () {
                                        myMapChart.resize();
                                    });

                                    var setProvinceCode = function (provinceCode) {
                                        $.ajax({
                                            url: "/BI/SetProvinceCode",
                                            type: "GET",
                                            data: { provinceCode: provinceCode },
                                            dataType: 'json',
                                            cache: false,
                                            success: function (result) {
                                                return;
                                            },
                                            error: function (XMLHttpRequest, textStatus, errorThrown) {
                                                return;
                                            },
                                            dataType: "json"
                                        }).fail(function (jqXHR, textStatus) {
                                            console.log("Ajax Error: ", textStatus);
                                        });
                                    };

                                    myMapChart.on('click', function (ev) {
                                        if (isProvince(ev.name)) {
                                            mapSelected = ev.name
                                            console.log(mapSelected)
                                            loadMap(provinceMap[ev.name]);
                                        }
                                        else if (isCity(ev.name)) {
                                            mapSelected = ev.name;
                                            loadMap(cityMap[ev.name]);
                                        }
                                        else {
                                            mapSelected = 'china'
                                            loadMap(mapSelected)
                                        }
                                    });

                                    //timeTicket && clearInterval(timeTicket);
                                    //timeTicket = setInterval(function () {
                                    //    myMapChart.dispatchAction({
                                    //        type: 'showTip',
                                    //        seriesIndex: seriesIndex,
                                    //        dataIndex: dataIndex
                                    //    });
                                    //    count++;
                                    //    dataIndex++;
                                    //    if (dataIndex >= dataLength) {
                                    //        dataIndex = 0;
                                    //    }
                                    //}, 5000);

                                    //myMapChart.on('mouseover', function (params) {
                                    //    console.log(params)
                                    //    clearInterval(timeTicket);
                                    //    myMapChart.dispatchAction({
                                    //        type: 'showTip',
                                    //        seriesIndex: seriesIndex,
                                    //        dataIndex: dataIndex
                                    //    });
                                    //    count++;
                                    //    dataIndex++;
                                    //    if (dataIndex >= dataLength) {
                                    //        dataIndex = 0;
                                    //    }
                                    //}, 5000);

                                    //myMapChart.on('mouseout', function (params) {
                                    //    timeTicket && clearInterval(timeTicket);
                                    //    timeTicket = setInterval(function () {
                                    //        myMapChart.dispatchAction({
                                    //            type: 'showTip',
                                    //            seriesIndex: seriesIndex,
                                    //            dataIndex: dataIndex
                                    //        });
                                    //        count++;
                                    //        dataIndex++;
                                    //        if (dataIndex >= dataLength) {
                                    //            dataIndex = 0;
                                    //        }
                                    //    }, 5000)
                                    //});
                                }
                            }
                        },
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            return;
                        },
                        dataType: "json"
                    }).fail(function (jqXHR, textStatus) {
                        console.log("Ajax Error: ", textStatus);
                    });
                }
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            return;
        },
        dataType: "json"
    }).fail(function (jqXHR, status) {
        console.log("Ajax Error: ", status);
    });
}
View Code

 

 

 最后既可实现如上效果,点中相应的图例还进行预览。

图表

 

 

 以这个图表为例,这个是柱状图。

同样先引入div图层

<div class="allnav" id="echart5_1"></div>

js调用实现

  //员工学历分布
    function echarts_GetXLData() {
        var myChart = echarts.init(document.getElementById('echart5_1'));

        var itemStyle = {
            normal: {
                color: new echarts.graphic.LinearGradient(
                    0, 1, 0, 0, [{
                        offset: 0,
                        color: '#2af598'
                    }, {
                        offset: 1,
                        color: '#009efd'
                    }]
                ),
                barBorderRadius: 4
            },
            emphasis: {
                color: new echarts.graphic.LinearGradient(
                    0, 1, 0, 0, [{
                        offset: 0,
                        color: '#2af598'
                    }, {
                        offset: 1,
                        color: '#009efd'
                    }]
                ),
                barBorderRadius: 4
            }
        };

        // 指定图表的配置项和数据
        var option = {
            options: []
        };
        myChart.setOption(option);

        $.ajax({
            url: "/paymentWelfare/GetSalaryBigDataBYXL",
            type: "GET",
            data: { cache: false },
            dataType: 'json',
            cache: false,
            success: function (result) {
                if (result.status) {
                    if (result.data.length > 0) {
                        var data = JSON.parse(result.data);
                        var namearr = [];
                        var valuearr = [];
                        for (let i in data) {
                            namearr.push(data[i].name);
                            valuearr.push(data[i].value);
                        }
                        myChart.setOption({
                            tooltip: {
                                trigger: 'axis',
                                textStyle: {
                                    color: "#ffffff"
                                },
                                formatter: function (data) {
                                    var x = data[0];
                                    if (x == undefined) {
                                        return "";
                                    }
                                    return x.name + "<br/>" + x.seriesName + ":" + x.data;
                                }
                            },
                            legend: {
                                show: true,
                                x: 'right',
                                top: 15,
                                data: ['学历'],
                                textStyle: {
                                    color: 'white',
                                    fontSize: 15
                                }
                            },
                            //calculable: true,
                            grid: {
                                y: 40,
                                y2: 80,
                                left: '12%',
                                right: '4%',
                                bottom: '10%'
                            },
                            xAxis: [{
                                type: 'category',
                                axisLabel: {
                                    interval: 0,
                                    rotate: 0,
                                    textStyle: { fontSize: 12, color: '#ffffff' }
                                },
                                axisLine: {
                                    lineStyle: {
                                        color: 'white',
                                        width: 1
                                    }
                                },
                                data: namearr
                            }],
                            yAxis: [{
                                "axisTick": {
                                    "show": false
                                },
                                //"splitLine": {
                                //    "show": false
                                //},
                                type: 'value',
                                nameTextStyle: {
                                    color: "white",
                                    fontSize: 15,
                                    padding: 10
                                },
                                axisLabel: {
                                    textStyle: { color: 'white', fontSize: 12 },
                                    title: { textStyle: { color: 'white' } }
                                },
                                axisLine: {
                                    lineStyle: {
                                        color: 'white',
                                        width: 1
                                    }
                                },
                                splitLine: {
                                    lineStyle: {
                                        type: 'dashed',
                                        color: '#0d48e0'
                                    }
                                },
                            }],
                            series: [{
                                name: '学历',
                                yAxisIndex: 0,
                                type: 'bar',
                                itemStyle: itemStyle,
                                barWidth: 25,
                                label: {
                                    normal: {
                                        show: true,
                                        position: 'top',
                                        //formatter: '{c}' + '万元',
                                        color: 'white'
                                    }
                                },
                                data: valuearr
                            }]
                        });
                    }
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                return;
            },
            dataType: "json"
        }).fail(function (jqXHR, textStatus) {
            console.log("Ajax Error: ", textStatus);
        });

        window.addEventListener("resize", function () {
            myChart.resize();
        });
    }
View Code

后端代码调用,获取数据

复制代码
        /// <summary>
        /// 学历
        /// </summary>
        /// <param name="cache"></param>
        /// <returns></returns>
        public ActionResult GetSalaryBigDataBYXL(bool cache = false)
        {
            string fileName = "xl.json";

            if (cache == true)
            {
                string jsonData = GetData(fileName);
                if (string.IsNullOrEmpty(jsonData) == false)
                {
                    return Json(new { status = true, data = jsonData }, JsonRequestBehavior.AllowGet);
                }
            }

            DataTable dt = GetHrBigData().Tables[3];
            List<nameValue> data = new List<nameValue> { };

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                data.Add(new nameValue(dt.GetFieldValue<string>("name", i).ToStr(),
                    decimal.Round(dt.GetFieldValue<decimal>("count", i).ToDecimal(), 1)));
            }

            string json = data.ToJson();
            SaveData(fileName, json);

            return Json(new { status = true, data = json }, JsonRequestBehavior.AllowGet);
        }
复制代码

以上完成既可实现漂亮的图表了,其他饼图,折线图等等即同理实现,更新的实现效果多看看官网的帮助文档,你也可以实现漂亮的图表了,一起来交流学习吧!

消息滚动

 <div class="xpanel xpanel-r-t">
                        <div class="title"><span>员工提醒信息播报</span></div>
                        <div class="scrollDiv" id="fachelist_div" style="height:70%;">
                            <ul id="fachelist_ul"></ul>
                        </div>
                    </div>
复制代码
 (function ($) {
            $.fn.extend({
                Scroll: function (opt, callback) {
                    //参数初始化
                    if (!opt) var opt = {};
                    var _this = this.eq(0).find("ul:first");
                    var lineH = _this.find("li:first").height(),
                        //line = opt.line ? parseInt(opt.line, 10) : parseInt(this.height() / lineH, 10),
                        line = 1,
                        speed = opt.speed ? parseInt(opt.speed, 10) : 2000,
                        timer = opt.timer ? parseInt(opt.timer, 10) : 3000;
                    if (line == 0) line = 1;
                    var upHeight = 0 - line * lineH;
                    scrollUp = function () {
                        _this.animate({
                            marginTop: upHeight
                        }, speed, function () {
                            for (i = 1; i <= line; i++) {
                                _this.find("li:first").appendTo(_this);
                            }
                            _this.css({
                                marginTop: 0
                            });
                        });
                    }
                    _this.hover(function () {
                        clearInterval(timerID);
                    }, function () {
                        timerID = setInterval("scrollUp()", timer);
                    }).mouseout();
                }
            });
        })(jQuery);

        $(document).ready(function () {
            $("#fachelist_div").Scroll({
                line: 4,
                speed: 500,
                timer: 4000
            });
        });
复制代码

js文件获取数据代码

复制代码
    //消息提醒数据
    function echarts_GetMsgData() {
        var ul = document.getElementById("fachelist_ul");
        $.ajax({
            url: "/paymentWelfare/GetSalaryBigDataBYMsg",
            type: "GET",
            data: { cache: false },
            dataType: 'json',
            cache: false,
            success: function (result) {
                if (result.status) {
                    if (result.data.length > 0) {
                        var data = JSON.parse(result.data);
                        for (let i = 0 ; i < data.length; i++) {
                            let item = data[i];
                            let li = document.createElement("li");
                            li.innerHTML = '<li>' + '<span style="color:#FFFFFF">'
                                + (i + 1) + ' . '
                               + item.name + ' ' + '</span> '
                                + '</li>';
                            ul.appendChild(li);
                        }
                    }
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                return;
            },
            dataType: "json"
        }).fail(function (jqXHR, textStatus) {
            console.log("Ajax Error: ", textStatus);
        });
    }
复制代码

后台获取数据

复制代码
        /// <summary>
        /// 获取消息
        /// </summary>
        /// <param name="cache"></param>
        /// <returns></returns>
        public ActionResult GetSalaryBigDataBYMsg(bool cache = false)
        {
            string fileName = "msg.json";

            if (cache == true)
            {
                string jsonData = GetData(fileName);
                if (string.IsNullOrEmpty(jsonData) == false)
                {
                    return Json(new { status = true, data = jsonData }, JsonRequestBehavior.AllowGet);
                }
            }

            DataTable dt = GetHrBigData().Tables[5];
            List<nameValue> data = new List<nameValue> { };

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                data.Add(new nameValue(dt.GetFieldValue<string>("name", i).ToStr(),
                    decimal.Round(dt.GetFieldValue<decimal>("count", i).ToDecimal(), 1)));
            }

            string json = data.ToJson();

            SaveData(fileName, json);

            return Json(new { status = true, data = json }, JsonRequestBehavior.AllowGet);
        }
复制代码

以上完成既可以实现消息的滚屏显示

 

 

 以上从代码实现的角度介绍了我是怎么实现的这样一个效果的过程,工资大数据实现同人事一样,都是相同的控件去实现。

结束语

做好大数据分析任重道远,本人也是今年在这方面投入了大力气去学习,之前用WPF实现了一个,可以看我上一篇写的博文,就有介绍过,实现以上两个界面的大数据是用BS来实现的,图表全部用的是echarts,实现出来的图表费用漂亮,其实在做好这样的一个效果出来首先还得去网上找一个好的模板,再去做调整,完成从一个全新开发可能难度较大,样式布局啥的都不会这么专业,我其实是省去了前面部分的工作了,只花了三四天时间既完成了以上效果,速度还是挺快的,公司领导层对这效果也是非常满意的,以后会加强在这方面的研发,让公司的业务,财务数据都能很好在图表方面进行呈现出来,这样客户也会非常喜欢的。

 

以上个人愚见,一起加强学习进步!

附件:工资模块实现的最初模板。

下载地址:https://files.cnblogs.com/files/luoyuhao/echartssjmoban8947202005210009.zip

 备用下载:echarts+js实现

可加QQ群:186841119 

 

出处:https://www.cnblogs.com/luoyuhao/p/13541260.html

=======================================================================================

WPF实现大数据分析

开头语

        经过一段时间研究,终于实现CS和BS相同效果的大数据展示平台了。首先来看看实现的效果,超炫的效果,客户特别喜欢,个人也非常满意,分享给各位,同大家一起交流学习。

大数据展示平台

从上图可以看出,分为左中右三栏,左右主要是展示图标为主,中间部分展示地图,这种展示主要使用于物流行业,亮点是中间的地图,物流覆盖的地方和线路在地图中显示的淋漓尽致,效果非常炫,用WPF去现实的,图片进行切片,研究了四个晚上做了这效果。

按快捷键Ctrl+F1可以对数据库进行设置

按快捷键Ctrl+F2可以对系统标题,企业愿景和公司最新动态,公司公告和地图的颜色和线路进行设置,这样就适用于大多数客户。

这样即可完全自定义了,适应于多个客户,由于我公司是很多客户的,所以必须进行公版话,进行自定义设置,这里就适用于很多了客户了。

实现代码

数据获取代码就不再展示了,下面分享下部分代码,首先是地图部分,由Canvas去画线就好了,这样就生成了地图。

  <Canvas Margin="-100,0,0,0">

                                        <Polygon Name="hainan" ToolTip="海南" Points="536.396,694.058 532.068,692.389 528.406,691.387 525.076,689.718 523.745,688.716 522.746,687.714 522.08,683.708 521.747,679.033 522.08,675.027 522.413,673.357 523.079,671.688 526.075,670.686 527.74,670.018 529.072,669.351 529.405,663.007 530.403,662.339 531.069,662.005 532.734,662.339 534.399,662.673 535.73,662.673 536.729,662.673 545.386,657.999 560.701,656.997
562.033,657.665 563.365,658.666 564.696,660.336 566.028,662.339 566.028,665.678 565.362,667.013 564.696,668.349 561.034,673.691 559.369,676.362 558.038,679.367 557.039,681.704 556.373,683.374 555.374,684.709 551.379,686.713 547.716,689.05 541.058,693.39 536.396,694.058"/>
                                        <Polygon Name="guangdong" ToolTip="广东" Points="548.573,653.146 547.237,652.144 546.235,651.141 545.233,649.47 544.231,645.794 539.556,639.444 539.556,636.436 539.89,634.765 540.892,633.763 542.561,632.426 543.229,627.747 543.897,626.076 544.565,624.405 545.567,623.068 546.903,621.731 550.577,618.723 555.253,613.71 557.59,611.705 560.262,609.7 565.272,603.684 570.281,598.671 572.285,597 573.621,595.329
574.623,593.324 575.291,590.985 575.291,588.311 575.625,586.64 575.959,585.303 576.627,584.301 578.297,582.63 579.633,581.627 580.969,579.956 580.301,570.264 581.971,568.593 582.972,566.588 583.306,564.583 583.64,562.577 585.978,558.567 589.318,558.567 594.996,563.914 598.335,563.914 598.669,563.246 599.003,562.577 599.337,560.572 599.671,557.898 596.331,554.222
597.333,553.888 613.364,553.888 615.368,554.222 618.374,554.222 621.379,553.888 623.049,553.22 624.051,552.551 626.055,552.551 626.055,555.893 619.042,563.914 619.376,566.254 620.044,567.256 620.711,567.925 621.713,568.259 623.049,568.593 627.057,568.927 636.408,564.583 639.748,564.583 641.752,566.588 643.756,566.254 645.426,565.585 649.099,563.246 651.103,562.243
653.107,561.575 655.445,561.241 658.117,561.909 663.126,567.925 670.474,577.951 670.474,580.624 667.134,580.958 665.13,581.627 664.128,582.63 663.126,583.632 661.122,585.303 660.455,585.972 660.121,587.308 660.121,588.311 661.122,589.982 661.122,590.985 657.115,592.99 653.107,595.329 649.099,597.669 645.426,599.674 642.754,602.347 641.752,602.347 640.75,602.013
640.082,601.345 639.748,600.676 636.742,600.676 634.738,603.35 632.401,603.35 631.733,602.347 631.065,601.679 630.397,601.345 629.729,601.345 628.727,601.345 627.391,601.679 627.391,605.69 626.389,606.358 625.721,607.026 624.385,607.361 623.717,607.361 623.049,608.029 622.715,609.032 622.047,610.368 620.044,610.034 619.376,609.7 619.042,609.366 618.374,608.363
617.706,607.026 616.704,607.026 612.362,603.016 609.69,603.016 608.688,605.021 607.686,607.695 604.347,613.042 602.009,614.045 600.673,615.047 599.337,616.384 598.001,618.389 595.997,618.723 594.328,619.058 590.654,622.4 587.982,622.4 585.978,622.734 584.642,623.068 583.306,623.737 582.304,625.742 580.301,625.742 577.629,624.739 575.959,624.739 574.623,625.408
572.619,626.076 562.934,629.752 559.594,630.086 556.922,630.421 554.919,631.757 552.581,633.763 552.247,637.773 550.243,638.441 548.907,639.444 548.239,640.781 548.239,643.12 549.575,644.123 551.579,645.794 552.581,647.131 553.249,648.133 553.917,649.47 553.917,651.141 552.581,651.81 550.911,652.478 548.573,653.146"/>
                                        <Polygon Name="yunnan" ToolTip="云南" Points="398.202,638.707 395.856,636.705 393.846,635.037 391.835,634.036 389.825,633.035 390.16,630.033 390.16,627.698 389.825,625.696 389.155,624.028 387.479,622.693 385.804,622.693 384.464,623.027 383.124,623.361 382.118,624.028 380.108,625.696 378.433,627.698 373.742,626.697 371.396,623.361 370.391,622.026 369.386,621.359 366.705,618.023 365.7,617.022 365.03,616.688
364.025,616.355 362.684,616.355 358.999,616.355 358.329,615.02 357.658,613.686 357.323,612.351 356.988,611.017 356.988,608.681 356.988,606.68 357.994,604.011 358.329,601.342 357.994,599.006 357.658,598.006 357.323,597.005 353.303,596.004 351.292,595.003 350.957,594.669 350.957,594.002 350.957,591.667 349.282,585.995 347.271,582.993 346.266,579.323 345.596,577.989
344.926,577.321 343.921,576.654 342.916,576.321 339.9,575.987 335.209,578.656 332.864,579.657 330.853,579.99 330.518,579.323 330.183,564.978 332.864,558.973 335.544,555.97 337.89,553.635 340.57,551.299 344.256,548.63 348.277,544.961 348.612,537.955 350.287,534.952 350.287,531.282 350.287,527.613 350.957,524.61 351.292,523.276 351.962,522.608 352.297,519.606
352.632,517.271 352.297,514.935 351.292,512.934 344.256,506.928 344.256,501.59 345.931,501.59 347.606,501.257 351.292,499.922 351.627,497.921 351.627,495.919 351.627,493.917 351.292,491.916 350.287,488.579 350.287,486.911 349.952,485.243 351.292,484.242 352.632,483.242 353.303,483.242 353.973,483.242 354.978,483.909 355.983,484.576 358.664,490.581 360.004,494.251
361.009,498.254 361.679,499.255 362.349,499.589 365.03,499.922 365.7,498.588 366.37,497.587 366.705,494.918 366.705,490.581 368.716,488.913 369.721,490.581 370.726,492.583 372.401,497.921 375.082,501.924 376.757,504.259 379.103,506.928 385.804,507.929 391.835,519.272 397.866,527.279 398.202,529.948 396.861,531.616 395.856,532.951 395.521,534.285 395.521,537.287
397.196,539.289 398.536,540.957 400.882,542.625 402.222,542.959 403.898,543.626 405.908,544.961 407.248,545.962 409.259,546.629 413.95,546.295 426.347,540.957 427.352,538.288 428.022,536.287 428.357,533.951 428.357,531.616 427.017,529.614 426.012,528.613 423.667,526.945 423.667,522.942 423.667,521.608 424.672,520.273 427.017,518.939 429.698,517.271 432.043,515.269
434.054,512.934 434.054,508.596 433.383,506.261 432.378,504.593 431.708,503.592 430.703,502.591 430.368,501.257 433.048,500.59 434.389,498.922 435.394,497.254 436.064,495.252 436.734,494.251 437.739,493.917 439.75,493.917 442.765,494.251 446.451,503.926 448.126,505.928 449.467,507.262 451.142,508.596 457.173,508.596 459.854,506.595 462.534,504.593 463.539,506.261
463.539,508.596 463.204,511.599 462.534,514.602 461.864,515.936 460.859,517.271 458.513,517.938 456.168,517.938 450.807,515.269 446.451,515.269 443.435,515.936 442.095,516.27 440.755,517.271 437.739,519.606 435.729,522.608 435.729,525.945 435.729,527.613 436.734,529.948 437.069,531.616 437.739,532.617 438.409,533.618 439.415,534.619 440.42,534.952 441.76,534.619
443.435,533.951 446.116,533.618 447.121,533.284 448.461,533.284 449.131,533.951 449.802,534.619 450.137,536.287 450.472,538.288 448.126,546.295 446.786,548.297 445.781,549.965 445.781,551.633 446.116,552.967 447.121,554.302 448.461,555.303 450.472,556.304 453.152,557.305 452.817,561.975 452.482,564.31 451.477,566.979 451.477,568.314 451.477,569.982 451.812,571.316
452.482,572.651 457.508,578.656 468.9,581.658 470.241,582.659 471.246,583.327 472.586,583.994 476.942,584.327 477.947,587.997 476.942,589.332 476.272,590.666 472.586,593.001 469.571,594.336 467.225,594.336 465.215,594.669 463.204,595.337 461.529,596.004 458.178,597.672 454.828,600.007 453.487,602.676 452.147,604.344 450.807,605.679 444.441,605.679 441.09,609.349
440.085,610.016 439.079,610.683 437.739,611.017 436.734,611.017 435.394,609.015 434.054,607.681 432.713,607.013 431.373,607.013 430.033,607.347 428.692,608.014 426.347,609.682 424.672,610.016 423.331,610.016 421.991,609.682 421.321,609.349 419.646,608.014 418.305,606.68 416.295,606.346 414.955,606.346 413.615,606.346 412.609,607.013 411.604,607.681 410.934,608.348
409.594,610.683 408.589,611.35 407.583,611.684 406.243,611.684 405.238,611.35 403.227,610.349 402.222,609.349 399.542,609.349 397.866,611.017 396.861,612.351 396.526,614.019 396.191,617.022 397.531,619.023 398.872,621.025 399.207,622.026 399.207,623.361 399.207,625.029 398.872,626.697 398.872,628.698 399.542,631.034 399.877,633.703 400.547,637.039 399.207,638.04
398.202,638.707"/>
                                        <Polygon Name="guangxi" ToolTip="广西" Points="529.649,632.45 529.649,629.438 528.98,629.438 528.645,629.103 527.976,628.099 525.968,627.764 525.634,626.425 524.964,625.422 524.295,624.417 523.626,624.083 522.957,624.083 522.288,624.083 520.615,624.417 519.611,628.768 508.234,629.438 501.207,628.099 495.519,627.43 490.835,622.409 489.162,619.063 488.492,619.063 487.823,616.72 488.158,614.712 488.827,613.038
489.831,611.365 489.831,607.014 485.816,604.337 485.816,603.333 478.12,602.998 471.762,602.329 468.081,600.655 466.408,596.639 471.762,596.304 473.101,595.635 474.774,594.631 477.785,591.954 479.124,589.276 479.458,586.933 479.124,584.925 478.12,582.917 473.435,582.583 471.428,581.244 469.085,580.24 465.07,578.901 461.055,577.562 457.709,576.224 455.366,573.212
454.697,571.873 454.363,571.204 456.37,568.191 457.374,566.853 458.043,566.183 459.382,565.514 460.386,565.179 462.393,564.845 464.735,564.845 469.42,566.518 474.439,570.869 476.112,571.204 478.12,571.204 480.462,571.204 483.139,570.869 485.816,568.191 488.827,565.179 491.504,561.833 494.181,559.155 494.515,555.474 498.531,555.139 500.204,557.482 501.877,558.151
503.55,559.155 505.892,560.494 508.569,561.498 511.58,561.498 518.607,559.155 520.949,557.147 522.957,555.808 524.964,554.47 527.641,553.131 528.31,552.127 529.649,551.123 531.656,548.445 532.995,547.776 533.999,546.772 537.01,545.768 540.356,545.433 546.379,545.099 549.725,542.756 552.737,540.748 554.075,540.078 555.748,539.409 557.756,539.074 560.098,539.074
563.779,545.099 566.79,548.111 564.113,552.796 562.44,555.139 561.436,557.816 561.102,562.502 561.771,562.837 563.109,562.837 566.79,562.837 568.463,567.857 569.801,569.865 577.163,569.195 578.167,570.869 578.836,573.212 579.505,575.889 579.505,578.901 578.167,580.575 577.163,581.579 575.824,582.248 575.49,582.917 575.155,583.252 574.486,583.587 573.482,591.284
572.478,593.292 571.474,595.635 569.467,596.974 568.463,597.643 568.463,598.647 566.79,599.317 565.452,600.321 564.113,601.994 562.775,603.667 560.432,607.014 559.094,608.353 557.421,609.357 557.086,610.026 556.417,610.696 554.744,611.7 552.402,614.042 550.06,616.72 549.725,617.055 549.725,617.389 549.056,617.389 549.056,618.393 548.052,618.393 547.383,618.728
545.71,620.067 543.368,622.744 541.025,628.434 538.349,629.103 536.006,630.107 534.333,631.111 532.326,632.45 529.649,632.45"/>
                                        <Polygon Name="taiwan" ToolTip="台湾" Points="734.538,608.384 729.259,600.309 727.61,599.636 726.62,598.963 725.63,597.954 725.301,597.281 724.311,595.599 723.651,593.58 721.012,590.215 721.342,586.178 722.002,582.477 722.331,579.112 722.331,577.43 722.002,576.084 722.002,572.047 722.661,569.355 723.651,567 725.96,564.308 727.28,557.916 730.909,549.841 733.548,546.476 735.857,543.785 738.166,541.43
741.135,539.074 748.063,539.411 749.053,540.084 750.042,544.121 750.372,546.476 750.372,548.832 749.383,551.187 748.723,553.542 748.393,556.234 748.393,558.925 748.723,564.981 749.053,570.701 748.063,573.056 747.073,575.748 740.476,590.215 738.826,606.029 737.177,607.711 735.857,608.047 734.538,608.384"/>
                                        <Polygon Name="fujian" ToolTip="福建" Points="672.546,579.024 672.546,578.02 672.211,577.016 671.206,575.343 670.202,574.005 669.197,573.336 669.197,572.332 659.487,560.286 656.474,559.617 654.13,559.283 651.786,559.283 650.112,558.948 649.777,556.271 649.777,553.594 650.782,549.245 651.116,547.906 651.451,546.903 651.451,544.56 651.451,542.218 651.116,540.211 656.474,534.188 657.143,530.173 656.809,524.819
656.809,522.477 657.143,521.473 657.478,520.804 659.822,519.466 662.166,518.127 665.514,514.447 666.853,511.435 666.853,508.424 665.849,506.416 665.514,504.743 665.179,503.74 665.514,502.736 666.184,501.732 667.188,501.063 669.867,499.055 671.876,498.721 673.885,498.386 676.229,498.051 678.572,497.048 680.247,495.709 681.586,493.702 682.925,491.36 683.93,489.352
684.934,489.017 685.939,489.017 687.278,489.352 688.617,490.021 689.287,491.694 689.622,493.702 690.961,497.717 691.631,499.725 692.97,501.732 694.309,503.405 696.653,505.078 706.028,505.747 707.033,504.743 708.372,504.409 711.051,503.405 714.399,503.405 717.413,503.07 719.087,504.074 716.408,506.416 715.404,507.755 714.064,509.762 713.729,515.116 710.381,514.781
707.033,514.781 706.028,515.451 705.024,516.12 704.354,517.123 704.689,519.131 706.363,520.135 708.037,522.142 710.716,523.815 708.372,526.158 708.372,527.496 708.037,529.169 707.033,532.18 707.033,533.853 706.698,535.526 707.033,536.865 707.702,538.538 709.377,539.876 709.377,540.545 708.372,540.211 703.685,540.211 703.015,541.214 703.015,542.218 703.35,543.222
703.015,545.229 700.671,546.903 699.332,548.241 698.662,549.914 697.992,553.26 696.318,555.267 694.644,557.275 688.617,557.61 687.948,558.613 687.948,559.617 688.282,560.956 689.957,562.628 687.948,563.298 686.273,564.301 684.599,565.305 683.26,566.644 680.581,569.32 677.903,572.666 677.568,575.008 676.229,576.347 674.889,577.351 672.546,579.024"/>
                                        <Polygon Name="guizhou" ToolTip="贵州" Points="477.547,569.397 474.545,568.058 472.543,566.719 471.209,565.38 469.874,564.376 466.205,563.037 462.869,563.037 460.534,563.037 458.533,563.707 456.197,565.38 453.529,569.063 453.529,567.054 453.862,565.38 454.863,563.037 455.197,556.007 447.858,552.66 448.191,550.651 448.859,548.978 451.527,539.939 452.194,539.27 452.194,538.266 452.194,536.592 451.527,533.914
449.192,531.236 447.191,531.571 445.189,531.905 440.852,532.91 439.852,532.91 439.185,532.24 438.851,531.905 438.517,530.901 438.517,529.562 438.517,528.893 437.517,526.884 437.85,524.206 438.184,522.198 439.185,520.524 440.185,519.52 441.52,518.515 443.188,517.846 447.524,516.842 449.859,516.842 452.528,518.181 455.197,519.185 456.531,519.52 458.199,519.854
459.867,519.52 461.535,518.85 463.87,516.172 464.871,513.159 466.539,512.825 467.206,513.494 468.54,513.829 471.876,514.164 479.548,514.498 480.549,513.159 481.216,512.155 481.55,510.816 481.884,509.477 481.884,507.134 481.884,504.79 480.216,503.117 478.881,502.113 475.879,500.439 470.208,498.43 469.874,497.091 469.541,496.087 469.541,495.083 469.874,494.413
470.542,494.079 471.209,493.744 473.544,493.409 477.213,496.087 483.885,497.426 486.554,497.091 489.222,496.422 491.891,495.083 494.56,493.744 496.895,491.735 498.896,489.727 500.564,487.718 501.899,485.375 502.232,484.036 502.566,482.697 503.233,481.693 504.234,481.023 505.234,480.689 506.569,480.354 509.571,480.354 510.572,481.023 511.573,482.027 512.573,483.032
513.574,484.371 514.909,487.718 515.576,491.4 519.912,496.757 522.247,499.434 525.25,502.113 530.587,504.121 531.254,506.129 531.921,508.808 531.921,510.147 531.921,511.82 531.588,513.159 530.587,514.498 528.586,515.503 526.584,516.507 523.582,517.511 522.581,518.515 521.914,519.52 521.914,521.528 521.914,524.206 523.915,524.206 526.25,523.537 532.922,523.202
532.255,534.918 532.922,536.257 533.589,537.261 536.258,539.939 538.593,543.622 535.924,543.956 533.589,544.626 529.92,546.969 528.586,548.643 527.251,549.982 524.249,552.325 520.913,554.668 517.911,557.346 515.242,558.016 512.573,559.02 509.905,559.355 507.57,559.355 502.899,556.677 500.231,553.999 499.564,553.664 498.896,553.329 497.228,553.329 494.56,553.329
493.559,553.664 492.892,554.334 492.558,558.016 487.888,562.702 485.887,565.046 483.885,567.724 481.884,568.728 480.216,569.063 477.547,569.397"/>
                                        <Polygon Name="hunan" ToolTip="湖南" Points="579.215,568.916 577.877,567.911 576.873,567.576 575.869,567.241 574.865,567.241 572.858,567.911 570.85,568.581 569.512,565.901 569.177,563.892 568.843,562.552 567.839,561.882 566.835,561.547 565.831,561.212 564.827,561.212 562.82,561.547 562.82,559.202 566.166,552.838 567.839,549.823 568.508,547.144 564.827,543.124 563.824,541.114 563.154,539.44 561.482,537.765
560.143,537.095 559.139,537.095 557.801,537.095 552.447,538.435 550.774,540.109 549.102,541.114 545.756,543.459 540.067,543.794 539.733,542.119 539.398,540.779 538.06,538.77 536.387,537.095 535.049,536.09 534.379,534.415 534.379,521.352 528.357,521.687 526.014,522.022 523.672,522.692 523.672,521.017 524.007,520.012 524.341,519.677 525.011,519.007 526.684,518.672
529.026,518.002 530.03,517.332 531.033,516.662 532.706,514.318 533.71,511.973 534.045,509.628 531.703,499.579 531.368,487.856 530.364,483.836 531.368,483.166 532.706,482.161 534.379,480.152 535.718,477.807 537.056,475.127 539.398,473.452 541.74,472.113 542.744,471.443 544.083,471.443 545.756,471.443 547.429,471.778 548.767,471.778 550.105,471.108 551.109,470.438
551.778,469.098 551.444,467.088 551.109,465.413 550.105,464.408 549.102,463.739 549.771,462.734 550.44,462.399 551.444,462.064 552.782,462.399 555.793,463.069 558.805,464.073 563.489,464.743 569.512,467.758 572.523,469.433 575.869,471.443 580.888,473.452 585.907,473.452 589.253,469.433 590.591,469.768 592.264,470.773 593.937,472.113 595.61,474.122 598.956,475.797
601.633,477.137 604.31,478.812 607.321,481.491 609.663,484.506 610.667,487.521 611.002,490.535 611.002,492.21 611.002,493.885 610.667,495.895 609.998,497.904 606.317,501.924 604.979,503.599 604.31,505.609 603.975,507.618 603.975,509.963 604.979,512.643 606.317,515.657 607.321,519.007 607.656,519.677 608.325,521.017 609.329,524.366 611.002,531.4 612.34,533.745
612.675,535.755 612.675,538.1 612.005,541.114 612.005,545.804 612.675,548.818 613.678,551.833 594.941,552.503 594.607,553.173 594.607,553.843 595.276,555.518 596.949,557.527 598.287,559.202 597.618,562.217 596.614,562.217 595.276,561.547 593.268,559.872 590.926,557.192 585.238,556.857 582.227,561.547 581.892,563.222 581.557,565.231 580.554,567.241 579.884,568.246
579.215,568.916"/>
                                        <Polygon Name="jiangxi" ToolTip="江西" Points="625.24,567.472 624.236,566.47 623.232,566.137 621.225,565.803 621.225,564.801 627.918,556.12 627.583,552.781 626.914,550.778 624.571,550.778 622.898,551.112 621.559,551.779 620.221,552.447 615.536,552.447 613.528,545.769 613.862,542.097 614.197,538.758 614.532,535.419 614.197,534.083 614.197,532.414 612.524,530.745 612.189,528.741 611.854,526.738 610.516,522.731
609.177,519.059 608.173,515.72 606.5,512.047 606.165,510.711 605.831,509.042 605.496,507.706 605.831,506.371 606.5,505.035 607.504,503.366 608.173,503.032 608.843,502.364 610.516,500.361 612.524,496.354 612.524,487.673 610.516,482.331 609.177,480.662 613.193,477.323 615.87,476.655 617.878,475.987 618.547,475.653 618.882,475.319 620.221,475.319 621.225,473.984
622.563,472.648 625.91,470.311 629.256,468.308 632.268,466.304 633.607,464.969 634.945,463.967 636.953,463.3 638.961,462.632 643.311,461.63 645.319,460.962 647.327,459.961 648.331,457.624 648.666,456.956 649,456.622 650.674,456.288 653.016,456.288 653.351,464.301 654.355,464.969 655.359,465.303 658.036,465.637 659.04,464.635 659.375,463.633 660.044,461.964
660.713,459.961 661.048,459.293 661.382,458.625 662.052,460.295 663.056,462.298 664.06,463.3 665.064,463.967 666.068,464.635 667.406,465.303 669.749,465.303 671.757,464.969 674.099,464.301 676.442,463.3 679.453,463.3 678.784,464.301 677.78,465.303 676.107,467.306 675.438,468.642 674.768,469.643 674.768,470.979 674.768,472.314 677.111,474.986 679.119,477.657
681.127,480.662 683.469,484.334 683.135,488.341 682.465,489.009 681.796,490.01 680.792,492.682 679.119,494.351 677.446,495.686 676.107,496.354 674.768,496.688 671.757,497.022 670.083,497.356 668.41,498.024 665.733,500.027 664.394,501.696 663.725,502.364 663.725,503.366 663.725,507.039 664.729,508.374 665.064,510.044 664.729,511.713 664.06,513.716 660.378,517.389
657.032,520.06 656.028,520.728 655.359,521.73 655.024,523.065 655.024,524.401 655.693,529.743 654.355,534.417 652.012,536.421 650.674,538.09 650.004,539.092 649.67,540.093 649.67,543.432 650.004,547.439 649.335,549.776 648.331,552.447 647.996,555.786 647.996,558.791 649,561.462 642.977,564.801 641.638,563.465 639.965,562.798 638.292,562.464 636.953,562.798
635.28,563.465 633.607,564.133 630.26,565.469 627.918,566.47 625.24,567.472"/>
                                        <Polygon Name="sichuan" ToolTip="四川" Points="410.189,545.331 408.515,544.663 405.837,542.991 403.494,541.654 401.485,540.651 399.477,539.314 397.134,536.64 397.134,533.965 398.473,532.294 399.477,530.288 399.811,528.951 399.477,527.279 399.142,525.942 398.473,524.605 396.464,521.93 395.125,520.593 394.121,518.922 392.112,515.913 390.773,513.238 389.1,510.898 387.761,507.555 387.091,506.887 386.422,506.218
385.752,505.884 385.083,505.884 382.405,505.884 379.392,504.546 375.375,498.863 372.363,490.171 370.019,487.163 367.676,487.163 366.337,488.166 365.333,489.168 364.998,490.84 364.998,494.517 364.664,496.189 363.994,498.195 362.655,497.526 362.32,494.517 361.316,491.509 360.312,489.168 359.642,486.828 360.312,486.16 360.647,485.491 360.981,484.154 360.981,481.814
361.651,475.462 360.312,472.119 359.642,469.11 359.308,466.102 359.642,463.427 361.316,461.421 362.99,459.415 362.32,451.726 358.638,446.378 356.964,440.026 356.295,437.686 355.291,435.68 351.943,431.668 349.265,427.991 346.922,424.314 346.253,422.642 345.918,420.971 339.893,416.959 338.888,415.287 337.884,415.287 337.884,411.276 337.884,409.27 338.219,407.933
339.558,407.264 340.562,406.261 341.232,405.258 341.566,403.921 341.901,401.581 342.236,398.907 337.884,393.892 337.884,390.215 350.27,389.546 351.609,390.215 353.282,391.886 354.956,393.892 356.63,396.232 356.63,398.238 357.299,400.244 358.303,401.915 359.308,403.921 362.32,407.598 365.668,410.941 367.007,410.941 368.346,411.276 369.015,411.61 369.685,411.944
371.358,414.284 372.697,413.95 374.036,413.95 375.375,413.282 377.384,411.944 378.388,411.944 379.392,412.613 379.392,413.282 379.727,413.95 380.396,414.284 381.066,414.619 383.074,414.953 385.083,415.287 386.422,416.959 389.769,416.959 392.782,414.619 400.481,413.282 401.15,412.279 401.82,411.276 401.82,409.27 401.15,406.93 400.146,402.918 399.477,400.912
399.142,398.907 399.477,397.569 399.811,396.566 400.816,397.235 402.155,398.572 403.494,399.575 405.837,400.912 406.841,402.25 408.85,402.918 411.193,402.918 413.536,402.918 416.214,402.25 418.892,399.575 418.557,396.232 417.888,393.892 417.218,392.221 416.883,390.549 418.557,388.543 420.566,386.872 421.905,385.869 422.909,385.534 424.248,385.534 425.921,386.203
426.591,388.209 427.595,389.88 429.269,391.552 431.947,393.892 436.298,395.564 437.972,397.569 440.315,399.575 442.993,401.915 444.332,403.253 445.337,405.258 446.675,408.601 447.68,410.607 449.353,412.947 451.362,414.953 452.701,415.956 454.04,416.29 465.756,416.29 467.43,415.287 469.438,414.284 471.447,413.616 473.79,413.616 481.489,416.29 488.518,416.29
491.866,419.299 493.874,420.302 497.222,420.636 500.569,423.645 500.569,432.003 498.226,435.011 496.217,438.354 494.878,441.697 493.539,445.375 489.857,450.389 485.171,455.404 482.828,456.072 481.154,456.072 479.48,455.738 478.476,455.404 476.468,453.398 473.79,451.392 472.785,450.389 471.781,449.386 469.773,448.383 468.099,448.049 466.425,448.049 465.756,449.386
465.756,456.072 466.425,458.078 467.095,460.084 467.095,462.424 467.095,465.433 466.76,467.773 466.091,470.782 466.091,473.791 466.425,477.134 469.103,479.808 470.108,480.477 471.112,481.48 472.116,482.817 473.12,484.488 473.455,486.16 473.455,487.831 473.12,489.503 471.781,491.174 469.438,492.512 468.434,493.514 468.099,494.183 467.764,495.186 467.764,498.195
468.769,499.198 469.773,500.2 472.785,501.538 476.468,502.875 478.476,504.212 480.15,505.549 479.815,509.227 479.48,511.233 478.811,511.901 478.476,512.904 474.794,512.57 471.112,512.235 468.099,511.567 465.756,510.564 465.421,508.224 465.086,506.218 464.417,504.546 463.747,502.875 462.408,503.209 461.069,503.209 459.396,504.212 457.722,505.549 456.048,506.552
451.697,506.552 450.023,505.215 448.684,503.543 447.68,502.206 447.01,500.535 446.006,497.192 445.337,494.517 443.328,491.843 438.976,491.843 437.303,491.843 436.298,492.177 435.294,492.846 434.625,493.849 433.955,495.52 433.62,497.526 432.282,498.529 430.943,499.198 429.938,499.532 428.599,500.2 428.599,503.209 429.938,504.546 431.277,506.887 431.947,507.889
432.282,509.227 432.282,510.564 431.947,512.235 431.277,513.573 430.273,514.576 427.595,516.247 422.909,519.256 421.57,520.927 421.57,527.613 422.239,528.616 422.909,529.285 424.582,530.288 425.252,530.956 425.921,532.294 426.256,533.965 426.591,536.305 425.252,538.98 423.244,539.983 421.235,540.986 410.189,545.331"/>
                                        <Polygon Name="xizhuang" ToolTip="西藏" Points="259.87,515.971 258.867,515.637 256.862,514.967 252.517,514.633 245.833,514.633 243.494,515.637 240.486,514.967 238.815,514.298 238.146,513.964 237.812,513.629 237.812,512.291 238.481,510.952 239.149,509.614 240.152,507.941 240.82,506.268 240.82,502.588 238.815,501.584 237.144,500.915 236.141,500.246 235.139,499.242 234.804,498.238 234.47,497.234 233.802,494.892
232.799,493.22 228.12,493.22 224.11,492.216 221.436,488.201 218.094,487.197 215.086,485.859 212.747,484.52 211.076,483.517 209.07,482.513 203.055,482.513 201.384,483.851 199.713,485.524 197.708,487.197 195.368,488.201 193.363,490.208 192.026,492.885 191.358,496.231 190.689,499.577 188.016,498.907 187.013,498.573 186.344,497.904 185.342,496.231 185.008,494.558
185.008,492.55 185.676,490.543 186.344,488.535 187.347,486.862 187.347,484.186 185.008,482.847 183.671,482.178 181.331,482.178 172.976,483.851 169.634,484.855 166.292,486.528 164.621,486.193 162.95,485.859 161.613,485.189 160.611,484.52 158.605,482.513 157.269,480.505 154.929,477.829 141.561,477.829 140.224,476.825 139.221,475.821 137.885,473.144 136.882,470.468
135.879,468.126 133.206,467.457 132.537,466.787 131.869,465.784 128.193,463.107 121.508,460.765 119.169,458.757 117.832,457.085 116.83,455.412 116.161,454.073 115.827,452.735 115.827,451.397 115.493,447.382 113.822,444.036 106.469,444.37 103.461,443.032 102.459,442.363 101.79,441.694 101.122,440.021 100.788,437.679 99.1166,436.006 97.7798,435.002 95.4403,433.329
88.7562,427.641 83.0747,418.273 79.0642,418.273 77.7274,418.607 76.0564,419.277 74.0511,420.28 72.0459,421.619 66.0302,421.619 64.025,419.946 62.6881,418.607 61.6855,416.934 60.6829,415.262 59.6803,411.916 59.3461,408.57 54.333,400.874 52.3277,398.867 50.3225,397.529 47.9831,396.19 45.9778,395.187 41.6331,393.514 37.6227,392.175 36.2858,391.172 35.6174,390.168
35.6174,389.164 35.6174,388.16 35.9516,386.487 36.9542,385.149 37.9569,384.145 38.6253,383.142 39.2937,381.134 39.9621,369.089 38.6253,365.743 38.2911,364.739 37.9569,364.07 38.2911,363.736 38.9595,363.401 41.6331,363.067 43.6384,364.405 44.641,366.412 45.3094,367.751 46.312,368.754 47.3146,369.424 48.6515,369.758 49.9883,369.089 51.3251,367.751 52.9961,363.067
51.9935,352.36 48.9857,343.995 48.3172,340.315 48.3172,338.642 48.6515,337.304 48.9857,335.965 49.6541,334.962 50.6567,333.623 51.9935,332.619 53.6646,329.943 60.0145,332.619 66.0302,332.619 67.367,331.616 68.7038,330.612 70.0407,329.608 71.7117,328.27 73.3827,324.255 75.388,321.244 76.3906,319.905 78.0616,318.567 81.7379,316.225 83.4089,316.225 86.4168,317.229
94.1035,321.913 94.4377,323.251 95.1061,324.255 96.1088,324.589 97.1114,324.589 100.119,324.255 102.793,323.251 108.809,322.247 111.482,319.571 112.151,318.567 113.153,317.898 114.156,317.898 115.159,317.898 116.83,318.567 118.501,319.905 118.835,322.582 118.835,323.586 119.169,324.255 120.84,325.593 123.848,327.601 129.864,329.943 134.877,329.943 137.216,328.939
139.556,328.27 142.229,327.601 145.571,327.266 148.913,325.593 150.25,325.259 151.587,325.259 152.59,325.259 154.261,325.593 158.271,327.601 165.289,327.601 166.626,326.262 167.295,325.259 168.297,324.255 169.968,323.586 173.31,320.909 174.981,319.905 176.652,319.236 178.324,319.236 180.329,319.236 183.002,320.24 185.676,321.244 190.355,321.244 195.368,320.574
200.381,320.24 205.728,320.24 210.407,322.582 212.747,324.924 214.752,326.262 217.091,327.266 217.426,331.281 218.762,332.954 220.434,335.296 221.102,336.634 221.436,337.973 221.436,339.646 221.102,341.653 218.094,346.672 218.094,353.029 218.428,357.379 218.762,361.394 218.762,365.409 219.431,369.758 220.099,373.773 221.436,377.788 222.439,379.461 223.776,381.469
225.112,383.476 226.783,385.149 230.46,387.491 232.465,388.495 234.804,389.833 242.157,390.837 243.494,393.179 245.165,395.187 247.17,396.859 249.175,398.198 251.515,399.202 254.188,400.205 256.862,400.874 260.204,401.544 262.878,403.551 265.551,405.559 266.888,406.228 268.559,406.897 270.564,407.566 272.904,407.901 290.951,407.566 294.962,408.904 300.643,412.585
303.985,420.28 304.654,423.292 305.656,425.299 307.327,427.307 310.335,430.318 314.011,430.318 316.017,427.307 319.024,426.972 319.359,427.641 319.359,428.31 320.695,429.314 322.366,429.983 324.372,430.318 330.387,426.637 332.058,424.295 333.729,421.953 335.4,419.277 337.072,417.269 337.74,416.934 338.743,418.273 340.414,419.277 344.424,421.953 344.758,423.626
345.761,425.634 347.766,429.314 350.774,432.994 354.116,437.009 357.458,448.051 358.795,450.058 360.132,452.4 361.134,455.077 361.469,456.75 361.469,458.423 359.463,461.099 358.127,463.107 357.792,465.449 357.792,469.799 358.461,472.141 359.463,474.817 359.798,476.49 360.132,477.829 359.798,479.502 359.463,481.174 359.463,484.855 358.461,484.855 358.461,484.186
358.127,483.851 357.124,482.847 356.121,482.178 355.119,481.509 352.445,481.844 350.774,482.513 349.771,483.182 348.435,484.52 348.435,486.528 349.103,488.87 350.106,494.558 349.771,498.907 347.432,499.577 343.421,499.577 338.074,492.55 335.735,491.881 333.395,491.547 331.724,492.216 330.053,493.22 329.051,494.892 328.382,496.565 328.382,498.907 328.716,501.584
327.714,502.922 327.045,504.261 324.706,503.926 322.701,503.257 320.695,502.253 319.693,501.584 319.024,497.904 316.017,496.231 313.009,495.227 308.33,493.554 306.325,491.212 302.982,491.212 301.98,491.547 300.977,491.881 299.64,493.22 297.301,495.227 289.948,499.242 286.941,500.246 285.938,500.58 284.935,501.249 283.933,502.922 281.927,505.599 277.917,505.934
276.58,506.603 275.578,506.937 274.575,507.607 273.572,508.61 271.233,511.956 269.562,513.294 266.554,513.964 264.215,514.633 259.87,515.971"/>
                                        <Polygon Name="zhejiang" ToolTip="浙江"  Points="703.055,504.42 699.723,503.751 697.724,503.083 696.058,502.08 694.725,501.077 691.059,490.047 687.727,487.373 684.728,487.039 685.061,484.365 684.395,482.025 683.395,479.685 682.396,477.68 680.73,475.674 679.063,474.003 676.731,471.329 676.731,470.326 677.064,469.324 678.397,467.652 679.73,465.981 681.063,464.644 681.063,463.307 681.396,462.639 682.062,461.636
682.729,461.302 684.728,459.965 686.394,458.962 688.393,455.619 688.393,450.606 688.393,448.266 688.727,446.929 690.06,446.595 691.726,445.592 692.392,445.258 693.392,445.258 694.391,445.258 695.391,445.926 700.056,445.926 701.056,445.258 702.055,444.589 703.388,444.255 704.721,444.255 707.72,444.923 710.386,445.592 712.052,446.929 714.051,447.932 715.051,448.266
716.384,448.6 717.717,448.266 719.05,447.932 720.716,446.595 722.382,444.923 723.382,444.589 724.381,444.255 725.381,444.589 726.714,445.592 730.712,447.263 737.377,447.932 736.71,448.934 735.377,449.937 732.045,452.277 730.712,453.948 729.713,455.285 729.379,456.288 729.379,456.956 729.379,457.625 730.046,458.293 735.044,458.293 737.043,456.288 737.377,457.959
737.377,459.296 736.71,460.299 734.378,460.967 733.045,461.636 730.379,462.973 730.712,466.315 734.044,467.987 733.378,471.998 733.378,477.011 733.711,478.348 734.044,480.02 733.711,482.359 733.378,483.028 733.045,484.03 731.712,484.365 731.379,482.025 730.712,481.691 730.046,481.691 728.713,482.025 727.38,483.028 726.047,484.365 723.382,487.039 721.715,489.044
721.049,490.715 720.383,492.052 720.049,501.746 718.383,501.411 713.718,501.746 710.053,502.08 706.721,503.083 703.055,504.42"/>
                                        <Polygon Name="chongqing" ToolTip="重庆"  Points="529.754,502.013 527.742,501.014 525.729,499.683 524.051,498.351 522.374,496.686 519.69,493.69 517.678,490.694 517.007,487.698 516,484.702 514.659,482.371 512.981,480.374 510.633,479.042 509.627,478.709 508.62,478.376 507.278,478.376 505.936,478.709 504.595,479.042 503.253,479.708 501.24,481.705 500.569,482.704 500.234,484.702 498.892,487.032 496.879,489.03
492.853,492.691 492.853,493.357 491.847,493.357 491.512,493.69 490.841,494.356 487.151,495.688 483.125,495.355 479.435,494.356 476.416,493.024 475.074,492.359 473.732,491.36 475.074,488.697 475.074,486.366 474.738,484.369 474.403,482.038 470.042,478.043 468.7,476.046 467.694,474.048 469.036,460.066 467.694,454.407 467.358,452.409 467.358,450.079 468.029,449.746
473.732,453.408 478.093,457.403 479.77,458.069 481.112,458.069 482.79,458.069 484.467,457.403 485.809,456.737 487.151,456.071 489.834,453.741 492.182,450.745 493.86,447.749 495.537,444.419 496.879,441.423 502.582,432.435 502.582,424.778 506.272,422.78 509.627,422.447 512.981,422.114 514.994,422.447 516.671,422.78 518.684,423.779 520.697,425.111 526.4,430.437
533.444,432.102 536.464,433.766 540.154,436.763 541.831,438.427 543.508,440.425 544.515,442.422 544.85,444.419 541.831,446.417 539.483,448.414 537.135,450.412 534.786,452.409 532.103,453.075 529.083,453.408 523.716,453.408 521.368,453.075 518.684,453.408 516.336,454.074 514.323,455.073 514.994,458.402 515.665,460.066 515.665,461.398 514.994,464.727 514.659,466.392
514.994,468.056 516,469.721 518.349,471.385 523.381,476.046 528.077,482.704 529.754,488.697 529.754,502.013"/>
                                        <Polygon Name="hubei" ToolTip="湖北"  Points="529.781,482.279 528.448,479.936 527.116,477.929 523.783,474.247 517.119,467.889 516.786,465.881 516.786,464.877 517.119,463.873 517.452,462.535 517.785,459.188 516.453,456.176 517.452,455.507 519.451,455.172 523.783,454.838 532.447,455.172 535.113,454.168 537.445,452.495 539.445,450.487 541.777,448.479 546.109,445.133 546.442,442.121 543.443,437.771 540.444,434.759
537.445,432.082 534.113,430.408 533.113,428.4 532.78,420.369 535.446,417.692 537.112,416.353 539.111,415.349 540.111,414.345 540.778,413.341 540.778,412.337 540.778,411.333 539.778,409.326 538.778,407.987 536.112,405.979 535.113,405.31 534.446,404.306 549.108,404.306 555.439,405.31 556.106,406.648 557.438,407.987 558.771,409.326 560.437,410.664 562.437,412.003
564.436,413.007 566.435,414.011 568.768,414.68 572.767,416.353 592.426,416.688 598.758,421.038 599.424,422.377 600.424,423.715 601.757,425.389 603.756,427.062 612.753,427.731 619.417,430.743 620.084,431.078 620.75,431.078 622.749,431.078 625.082,431.412 626.415,431.747 627.748,432.751 628.081,433.42 628.414,434.424 629.081,435.428 630.413,436.432 631.413,436.767
633.412,437.101 634.745,437.436 635.412,438.105 636.078,439.109 636.411,440.113 634.412,442.456 634.079,443.794 633.412,446.137 634.412,447.141 635.745,448.479 637.078,450.153 638.411,452.83 638.411,454.168 638.744,456.176 639.077,457.18 639.744,457.85 640.743,458.854 642.076,459.523 642.076,460.192 638.744,460.861 636.078,461.531 633.746,462.535 631.746,463.539
628.081,466.55 623.083,469.897 622.083,470.566 620.75,471.236 619.084,473.578 616.085,474.582 613.419,475.251 612.42,475.586 611.42,476.255 610.087,476.925 609.087,478.263 607.088,479.267 601.757,474.917 599.757,474.247 598.091,473.578 596.758,472.574 595.425,471.57 593.426,469.562 591.427,467.889 588.761,468.224 587.428,468.558 586.429,469.897 584.762,471.905
581.763,471.57 578.764,470.901 576.099,469.897 573.433,468.558 568.435,465.547 564.103,463.204 561.104,462.535 558.438,462.2 554.44,460.861 549.774,460.861 548.442,461.531 547.442,461.865 547.109,462.869 547.442,464.208 548.442,465.881 550.108,467.889 549.108,469.897 546.775,469.562 543.776,469.562 541.444,470.232 539.445,470.901 537.779,472.24 536.112,473.578
535.113,475.586 532.447,480.271 531.114,481.275 529.781,482.279"/>
                                        <Polygon Name="anhui" ToolTip="安徽"  Points="656.078,463.989 655.408,463.318 655.408,455.604 653.735,454.262 650.389,454.262 649.385,454.597 648.381,454.933 647.711,455.268 647.042,456.275 645.704,458.622 644.7,459.293 644.03,459.629 643.696,458.622 643.361,457.952 641.688,456.945 640.349,454.933 640.349,453.256 640.015,451.914 639.68,450.573 639.011,449.902 638.007,448.225 637.337,447.554 637.003,446.548
635.664,445.206 635.664,443.529 636.668,442.523 638.676,440.846 638.341,438.833 637.672,437.491 636.668,436.485 635.329,435.814 632.318,434.808 631.314,434.473 629.975,433.802 629.64,431.454 628.971,430.783 628.971,429.777 629.306,429.106 630.644,427.429 632.318,426.423 634.325,425.752 637.003,422.398 636.668,418.708 635.999,415.354 634.66,412.336 633.991,411.329
632.987,409.988 629.306,409.988 627.967,411.665 626.629,412 625.625,410.994 624.955,409.988 623.951,407.64 623.282,403.95 619.936,401.602 620.27,400.261 620.94,398.919 621.609,397.913 622.613,396.571 624.955,394.559 626.963,392.546 627.633,389.192 627.633,385.838 627.298,379.801 627.967,379.465 629.64,380.136 629.975,381.478 630.979,383.826 631.983,385.167
632.652,386.173 633.656,387.18 634.995,387.85 638.341,387.85 639.68,385.167 640.349,383.155 641.018,381.142 642.022,378.794 642.357,376.782 635.999,370.744 636.333,369.403 637.003,368.732 637.672,368.397 638.676,367.726 639.68,367.726 641.353,369.738 643.361,371.751 645.034,374.434 646.707,377.788 649.385,381.142 661.432,383.49 664.109,385.503 665.448,388.857
666.786,392.882 667.79,394.894 669.129,396.907 670.468,398.584 672.475,400.261 673.145,401.602 676.157,401.267 678.164,400.932 679.838,400.261 680.172,398.248 680.172,397.913 680.507,397.913 681.176,397.913 683.519,397.913 684.857,400.261 685.527,402.273 685.861,404.621 683.854,405.292 681.846,405.627 678.164,405.627 676.491,409.652 675.822,413.677 675.153,414.683
674.483,415.354 674.483,416.696 674.483,418.373 681.511,425.081 682.18,425.417 683.519,425.752 684.857,426.423 685.192,427.094 685.527,428.1 688.204,430.448 696.236,431.119 697.909,432.46 697.909,435.144 696.57,436.15 695.232,436.821 692.554,437.491 691.216,438.162 690.546,438.833 689.877,439.839 689.542,441.516 690.212,443.193 690.212,444.2 690.212,444.871
688.204,445.877 686.865,446.883 686.865,455.268 685.527,456.945 684.188,458.287 683.184,459.293 681.511,459.964 678.834,460.97 675.153,461.641 672.81,462.647 670.468,463.318 668.46,463.318 666.452,462.647 664.779,460.97 663.44,459.293 662.771,457.616 661.767,456.61 660.428,456.61 659.759,456.945 659.089,458.622 657.751,463.989 656.078,463.989"/>
                                        <Polygon Name="jiangsu" ToolTip="江苏" Points="697.822,444.736 695.815,444.067 694.478,443.733 692.136,443.733 692.136,441.39 691.468,441.056 691.468,440.721 691.468,440.387 692.136,439.717 693.474,439.383 698.156,437.71 699.829,435.702 699.494,433.026 698.825,431.353 697.822,430.014 696.819,429.345 695.146,429.01 693.809,429.01 690.464,429.01 688.458,428.007 687.454,427.003 686.116,424.995 683.775,423.991
682.103,422.988 680.765,421.649 679.762,420.645 677.755,419.307 676.752,418.303 676.418,417.299 675.749,416.296 676.752,415.627 677.421,414.957 677.755,413.284 678.09,410.608 679.093,407.262 681.1,407.262 683.106,407.262 685.113,406.927 686.451,406.258 687.454,405.589 687.12,402.577 686.785,399.566 685.448,397.558 684.779,396.555 684.11,395.885 680.765,396.22
678.759,396.889 678.09,399.566 674.411,400.235 673.742,398.897 673.073,398.228 671.735,397.558 669.394,393.209 667.722,389.193 666.05,385.848 664.043,382.836 662.037,381.832 660.03,381.163 656.685,381.163 650.331,379.156 648.993,377.483 647.321,374.137 644.98,371.125 642.639,368.114 640.632,366.441 640.632,364.099 640.632,361.757 640.632,361.087 641.301,360.753
642.304,360.753 643.642,361.422 644.311,362.76 645.649,363.43 645.649,364.099 646.652,364.768 647.99,366.106 648.993,367.445 650.665,369.787 652.003,370.122 654.01,370.791 659.361,371.125 660.364,370.456 661.368,369.452 663.04,367.11 664.043,366.106 665.047,365.772 665.715,365.772 666.384,366.106 667.388,367.445 670.398,367.779 674.077,363.095 674.411,360.084
675.414,357.407 676.083,356.403 677.087,355.399 678.424,355.065 680.097,354.73 680.097,359.08 685.448,363.43 688.123,364.433 690.799,366.106 693.809,367.779 697.153,369.452 702.839,379.825 705.849,385.513 709.528,391.201 709.862,393.209 710.531,395.551 711.534,397.893 712.872,400.57 720.564,404.585 724.243,406.927 728.591,409.938 728.591,410.942 727.922,411.611
726.584,411.611 723.574,411.946 719.227,411.611 719.227,415.292 724.912,417.299 724.243,418.303 723.909,419.307 723.909,420.311 724.243,421.649 730.932,424.995 731.601,425.999 731.266,427.337 730.932,428.341 730.263,429.345 729.26,430.014 726.919,431.687 724.578,433.026 724.578,433.695 723.909,434.029 722.905,434.698 720.564,436.706 716.216,440.721 710.531,442.729
710.196,443.398 701.835,443.063 699.829,443.733 697.822,444.736"/>
                                        <Polygon Name="henan" ToolTip="河南"  Points="626.478,429.816 619.141,428.814 613.472,425.809 609.47,425.809 606.802,425.475 604.468,424.807 602.467,423.137 599.466,418.797 593.797,415.124 573.788,414.79 566.117,411.785 562.783,410.115 561.782,409.114 560.782,408.112 559.114,407.11 558.114,405.775 556.78,403.771 556.446,401.1 555.779,398.763 553.779,394.756 549.777,388.078 547.109,380.398 546.775,374.054
549.11,373.72 551.111,372.384 553.445,371.049 555.112,369.713 556.446,368.711 558.114,368.044 561.115,367.71 564.117,366.708 566.784,365.372 569.786,363.369 572.454,363.035 575.455,362.367 581.458,360.698 583.792,359.028 585.793,357.025 589.795,353.018 591.129,351.682 592.463,350.013 593.13,348.343 593.463,346.674 594.13,342.667 594.13,339.328 603.134,341.331
615.807,341.331 618.141,344.67 619.475,345.672 620.475,347.676 620.809,349.011 620.809,350.347 620.475,351.682 619.808,353.018 617.807,354.02 616.473,355.355 615.473,356.691 614.806,359.028 613.806,359.362 612.805,359.696 612.805,361.032 618.808,365.372 619.141,366.374 621.476,368.378 622.81,369.379 624.477,370.381 626.145,371.383 628.145,371.717 629.813,371.383
631.814,370.381 632.814,370.715 633.481,371.383 635.482,373.386 640.151,377.059 639.817,378.395 639.484,379.396 639.15,380.064 638.483,382.068 638.15,384.405 637.483,386.408 634.815,385.407 632.481,382.068 630.813,379.396 630.146,378.395 628.812,378.061 627.478,377.727 625.478,378.061 625.811,389.747 624.477,392.085 622.476,394.422 620.475,396.759 618.141,398.429
618.141,402.102 619.475,403.437 621.809,404.773 623.477,411.117 623.81,411.785 624.477,412.453 625.811,413.454 626.811,413.788 627.812,413.788 628.812,412.786 629.813,412.119 630.813,411.785 632.481,412.119 633.481,414.122 634.482,416.793 634.815,418.463 635.149,420.132 635.149,421.468 634.482,423.137 632.814,423.471 631.147,424.473 628.812,426.477 626.478,429.816
"/>
                                        <Polygon Name="xianxi" ToolTip="陕西"  Points="530.096,429.334 527.759,428.666 526.089,427.665 523.417,425.661 519.075,421.655 514.734,420.319 511.394,420.319 508.388,420.319 505.382,420.987 504.046,421.321 502.71,421.989 501.041,421.655 499.371,420.653 497.033,418.984 495.363,418.65 494.027,418.316 492.691,417.648 491.689,416.98 490.353,415.311 489.685,414.977 489.017,414.643 482.004,414.643 474.657,411.972
474.657,410.637 474.991,409.635 475.992,407.632 475.992,405.294 475.658,403.625 474.991,402.623 473.989,402.289 472.987,400.954 472.653,400.286 472.653,399.284 472.653,398.951 482.338,398.617 483.006,397.281 483.674,395.612 483.674,393.942 484.008,392.273 483.674,389.268 483.34,386.597 481.336,381.589 480.334,375.245 480.334,372.907 481.002,371.572 482.004,370.57
484.008,369.902 486.68,369.569 490.019,369.569 497.701,373.241 499.705,372.907 500.707,372.574 501.375,372.24 501.375,365.228 501.708,364.56 502.376,363.893 503.044,363.559 504.38,363.559 506.718,363.559 507.72,363.893 508.388,364.56 513.064,364.56 513.732,362.891 514.066,360.888 514.4,356.881 514.4,353.208 514.066,351.873 513.732,350.537 514.066,348.534
514.4,347.198 515.401,345.195 515.401,341.856 512.73,341.522 510.058,339.853 507.72,338.183 505.382,336.848 504.046,335.846 501.041,335.178 498.035,334.177 495.363,333.175 493.693,332.173 493.693,330.504 494.027,329.502 495.363,327.833 494.361,321.823 495.029,321.489 496.031,320.487 497.367,318.15 499.705,318.15 501.375,318.15 503.378,318.818 516.737,319.486
517.739,317.816 518.741,316.147 519.075,314.143 519.409,312.14 519.075,308.134 519.075,305.129 519.075,303.793 519.409,302.791 519.743,301.79 520.411,301.122 521.747,300.12 523.417,298.451 528.426,291.105 533.436,287.433 536.442,283.092 540.116,285.763 541.117,285.763 542.119,284.762 543.121,283.76 544.457,281.089 546.127,281.423 547.797,281.757 548.799,282.424
549.467,283.092 549.801,284.428 550.135,285.763 548.131,289.77 547.797,293.109 547.129,296.114 546.795,297.783 545.793,299.119 544.791,300.788 543.455,302.124 543.121,304.127 542.787,306.13 543.121,310.137 544.457,319.152 544.457,320.821 544.123,322.157 542.787,325.496 540.784,328.501 539.114,331.172 539.114,345.195 541.451,350.537 542.119,353.542 542.453,356.881
541.785,359.886 541.117,363.225 541.117,366.898 541.451,368.901 541.785,370.904 543.121,372.574 544.123,373.909 545.125,375.912 544.791,381.255 548.799,391.271 550.469,393.608 552.139,396.28 553.475,399.618 554.477,403.291 549.801,402.289 540.116,402.289 534.772,402.623 533.102,402.623 532.1,403.291 531.766,405.294 538.446,410.637 539.114,413.308 536.442,414.309
534.438,415.645 532.768,417.314 531.098,419.318 531.098,429.334 530.096,429.334"/>
                                        <Polygon Name="qinghai" ToolTip="青海"  Points="312.178,428.853 307.166,424.515 305.162,417.84 302.489,411.834 301.152,410.499 299.816,409.164 296.809,407.495 294.136,406.494 291.797,405.827 273.755,406.16 271.75,405.827 269.745,405.159 266.404,403.491 263.731,401.488 261.392,399.486 256.715,398.819 253.039,397.484 249.364,396.149 246.357,394.147 246.023,393.146 245.689,392.145 244.686,390.476 243.016,389.141
239.675,388.474 236.667,387.806 233.995,386.805 231.656,385.47 230.319,385.137 228.983,384.469 226.978,382.801 225.307,380.465 223.971,378.129 222.969,375.459 221.966,373.123 220.964,369.118 219.962,347.427 222.3,343.422 222.969,341.42 223.637,339.752 223.303,337.416 222.635,335.413 221.966,334.078 221.632,333.411 223.637,333.077 224.305,333.411 225.307,333.745
226.978,333.745 228.315,332.076 228.649,331.075 229.985,330.741 230.987,330.741 231.99,331.409 232.992,332.076 234.997,333.745 236.333,334.746 238.004,335.747 241.345,335.747 243.35,335.413 245.02,334.746 246.357,333.077 246.357,328.739 244.686,326.403 243.016,324.401 242.682,323.733 242.682,322.732 242.682,321.731 243.35,320.73 248.027,318.06 250.032,316.058
250.7,314.056 251.369,312.053 251.035,310.719 250.7,309.384 249.698,308.383 248.696,307.715 246.691,306.047 245.355,303.711 243.684,301.708 242.013,300.04 241.011,299.706 240.343,299.706 240.009,298.705 239.34,297.704 239.006,297.036 239.006,296.035 239.675,295.034 239.675,294.033 239.675,293.032 239.34,292.031 238.338,290.362 237.336,289.695 237.336,288.36
240.009,288.026 243.016,287.359 249.364,287.025 255.712,286.358 259.053,285.69 262.06,285.023 266.738,282.687 271.75,280.684 274.089,279.683 276.762,279.35 279.769,278.682 283.11,278.682 286.785,280.351 291.797,280.017 297.143,280.351 299.816,280.351 302.489,280.684 305.162,281.352 307.835,282.353 320.865,290.696 322.202,292.698 326.545,296.035 329.218,297.704
332.893,299.039 337.905,299.039 340.244,297.036 340.578,294.367 340.244,292.031 339.91,290.028 339.576,288.36 340.244,288.026 340.912,287.692 342.917,287.359 347.26,287.359 352.272,290.696 357.284,292.031 363.298,292.698 369.98,296.035 375.326,300.04 375.326,300.707 376.997,302.042 379.002,302.376 381.006,302.042 385.684,301.375 392.366,309.384 401.722,316.058
406.399,318.394 414.752,318.394 416.089,320.396 417.425,324.067 418.427,327.738 419.43,331.409 423.105,340.085 423.773,347.427 425.11,349.096 426.112,351.432 426.446,352.766 426.446,354.101 425.778,355.102 424.776,356.437 420.432,359.107 419.096,360.108 417.759,361.443 415.755,364.446 413.082,369.118 407.068,373.457 407.068,376.126 412.748,381.132 412.413,382.133
411.745,382.801 411.077,383.134 410.075,383.468 408.404,383.468 407.068,383.468 401.388,379.797 395.708,379.463 393.369,379.797 392.032,380.131 392.032,384.135 392.032,385.804 392.366,387.473 393.035,389.141 394.037,390.81 395.708,392.478 397.712,394.48 397.712,400.487 400.385,408.83 400.051,410.165 399.717,410.832 399.383,411.5 398.38,411.834 396.71,412.167
394.705,412.167 392.7,412.835 391.698,413.502 389.359,415.171 387.689,415.171 386.352,413.168 381.675,412.835 381.675,411.834 381.006,411.166 379.67,410.165 376.329,409.831 375.995,410.832 374.658,411.5 373.656,412.167 372.653,412.167 371.651,409.831 366.639,408.83 359.623,400.821 358.62,399.152 358.62,397.15 358.286,395.148 357.618,393.813 356.95,392.478
354.945,390.476 352.94,388.474 349.933,387.806 346.592,387.473 340.912,387.806 337.905,388.14 337.237,388.807 336.903,389.141 336.569,391.143 336.569,394.48 340.578,399.82 340.578,403.157 338.908,405.159 336.903,407.495 336.235,408.496 335.9,409.831 335.9,411.5 336.569,412.835 336.569,413.836 335.9,415.171 334.23,417.84 330.889,422.512 329.886,423.847
328.884,425.182 327.548,425.849 325.877,426.517 324.206,428.519 323.204,428.185 322.202,428.185 321.533,427.184 320.865,426.183 320.865,425.516 319.863,425.182 319.195,424.848 317.19,424.848 314.851,425.516 313.515,427.518 312.846,428.185 312.178,428.853"/>
                                        <Polygon Name="shanxi" ToolTip="山西"  Points="546.826,372.539 545.49,371.199 544.154,369.859 543.486,368.854 543.151,367.515 543.151,364.835 543.151,362.49 544.822,357.466 544.488,351.772 541.481,344.068 541.481,331.675 542.817,329.33 544.154,326.986 546.492,322.631 546.492,317.942 545.49,312.583 545.156,309.903 544.822,307.558 545.156,305.214 545.49,303.204 546.826,301.194 548.831,299.52 549.499,296.84
549.833,294.495 550.167,290.141 552.172,286.456 552.506,284.447 553.174,283.107 553.842,281.767 554.845,280.427 557.183,278.418 559.856,276.408 562.863,271.719 564.867,269.374 565.87,268.369 566.872,267.699 569.879,264.685 575.558,265.02 577.229,265.02 578.899,264.685 580.235,264.35 581.238,263.345 583.242,263.01 584.913,262.34 586.583,261.335 588.588,259.66
589.924,257.986 592.931,259.995 592.597,261 591.929,262.005 589.924,263.68 588.922,264.685 588.254,265.689 587.585,267.029 587.919,268.369 589.256,268.704 590.926,269.374 591.929,270.379 593.265,271.719 595.604,274.733 598.276,278.753 598.276,281.767 596.272,284.447 594.601,286.121 589.924,289.136 588.254,291.816 586.917,294.495 586.249,296.17 586.249,297.845
586.249,299.52 587.251,300.859 591.594,304.544 592.931,306.554 594.267,308.563 594.935,310.238 595.604,311.578 595.938,313.587 596.272,315.597 595.269,318.947 594.267,322.296 592.931,324.641 591.26,326.986 589.256,329.33 587.585,331.005 587.251,333.015 591.26,337.369 591.929,339.714 591.929,342.728 591.594,345.743 590.926,349.092 588.588,351.772 586.249,354.117
580.904,358.806 568.876,361.82 565.87,363.83 562.863,365.17 560.19,365.84 556.849,366.51 552.506,369.189 550.835,370.529 549.499,371.534 546.826,372.539"/>
                                        <Polygon Name="shandong" ToolTip="山东"  Points="627.772,370.132 623.097,367.116 616.085,360.749 617.755,357.398 620.426,355.052 621.428,353.711 622.429,352.371 622.429,346.674 620.426,339.301 619.09,335.28 618.089,333.269 618.089,329.583 618.422,328.577 619.424,327.572 621.094,324.556 623.097,322.545 627.438,318.188 628.774,316.178 630.109,314.502 631.445,313.161 633.449,311.821 637.122,309.475 641.129,307.129
649.81,298.416 651.146,304.783 655.487,304.783 657.49,301.097 660.829,301.097 663.167,301.097 665.17,300.427 665.17,301.097 665.838,302.103 667.508,304.448 667.508,311.821 669.845,313.497 672.85,315.172 676.189,316.513 678.193,316.848 680.196,316.848 686.875,306.459 688.21,304.783 689.546,303.443 691.549,302.438 693.219,301.432 695.556,301.097 698.228,301.097
705.574,304.113 721.602,303.778 722.937,304.448 722.269,305.119 722.269,306.124 721.602,311.151 715.925,311.821 711.25,314.502 706.242,317.518 703.904,319.194 701.901,321.204 700.565,323.215 699.563,325.226 695.89,326.902 694.888,328.242 693.553,328.912 690.548,329.918 689.546,330.923 689.212,336.62 687.876,338.631 685.873,340.642 684.203,342.652 682.868,344.663
682.868,348.349 682.2,350.695 681.198,352.706 679.862,352.706 678.527,353.041 677.191,353.376 676.189,354.046 674.52,355.722 673.184,357.398 672.516,359.743 671.849,362.089 670.513,364.435 669.845,365.441 668.509,366.111 668.509,365.441 666.84,364.1 663.835,363.765 661.831,366.111 659.828,368.792 657.824,369.127 655.487,369.127 653.149,368.792 651.814,368.122
650.812,366.111 644.134,359.408 639.793,359.073 639.459,360.414 639.125,362.089 638.791,366.111 637.122,366.446 635.786,367.116 634.784,367.786 634.116,368.457 632.113,368.792 630.443,369.127 627.772,370.132"/>
                                        <Polygon Name="ningxia" ToolTip="宁夏"  Points="467.295,354.652 465.956,348.943 465.621,344.914 464.952,341.22 463.947,334.839 460.934,331.146 458.255,328.123 455.576,325.773 453.902,323.758 449.55,321.407 450.219,320.736 451.224,320.064 454.237,319.057 460.934,318.049 462.608,316.37 463.612,315.699 465.286,315.027 468.3,314.691 471.313,310.998 470.979,304.281 476.001,294.879 476.671,289.842 478.01,289.506
479.014,289.17 481.358,288.163 482.698,287.827 483.702,287.827 485.041,288.163 486.381,288.835 487.385,291.521 486.046,294.543 485.041,297.565 482.698,300.252 482.363,301.595 481.693,302.938 481.693,305.961 482.028,309.99 488.39,310.998 489.394,312.341 491.068,313.684 493.077,315.363 494.417,316.035 495.756,316.37 495.421,317.378 494.751,318.721 493.747,320.064
492.742,321.072 491.738,322.415 490.399,323.758 487.72,325.773 485.711,326.109 484.037,326.109 483.367,326.78 483.032,327.452 483.367,329.467 483.032,331.146 482.698,333.16 481.023,335.511 480.019,337.526 479.684,339.541 479.349,343.57 482.028,345.921 483.367,346.257 485.376,346.928 486.046,347.936 486.716,348.943 487.05,350.286 486.716,351.965 485.711,353.98
482.698,354.988 480.354,355.995 476.336,359.353 475.331,360.025 474.327,360.025 473.322,359.689 471.983,358.681 467.295,354.652"/>
                                        <Polygon Name="hebei" ToolTip="河北"  Points="618.793,342.216 616.455,339.873 604.763,339.873 594.074,337.531 592.069,335.857 590.399,334.184 589.397,332.845 589.063,332.176 595.41,324.813 597.08,319.124 597.748,315.443 597.414,312.096 596.412,309.419 595.076,307.076 593.74,304.733 591.735,302.725 587.727,298.709 587.727,296.367 588.395,294.359 589.397,293.02 590.399,291.347 592.069,290.343 593.406,289.004
597.08,286.996 599.753,282.645 599.753,277.626 597.414,274.279 595.41,271.602 593.406,269.594 591.067,267.586 589.731,267.251 589.731,266.582 593.072,263.904 594.074,261.896 594.408,260.892 594.742,259.888 590.733,256.542 590.733,253.195 588.395,250.518 586.725,248.51 586.725,241.147 589.397,238.135 590.399,237.8 591.401,237.466 592.404,237.131 592.404,229.434
594.074,227.76 595.076,227.091 596.412,226.756 597.414,227.426 598.416,228.43 599.419,230.103 599.753,231.107 600.087,232.446 598.75,233.45 598.082,234.454 598.082,235.458 598.416,236.462 599.419,237.466 600.421,238.804 603.093,241.147 604.763,241.147 607.436,239.474 607.436,238.47 608.104,237.466 608.772,236.796 609.44,236.127 611.444,234.788 613.783,233.784
615.119,232.111 616.789,231.442 618.459,231.107 620.464,230.772 624.806,230.438 626.81,230.103 628.815,229.099 628.481,220.398 629.817,218.724 631.153,217.386 634.828,215.043 636.164,214.039 637.5,213.704 638.502,213.704 639.17,214.374 639.838,215.378 640.506,216.716 642.177,220.398 648.524,230.438 648.858,232.446 649.192,234.119 649.86,235.123 650.528,235.792
651.53,236.462 653.2,237.131 657.543,236.796 660.549,236.796 663.222,237.131 661.885,238.135 660.883,239.139 659.547,240.143 658.545,241.482 658.545,243.49 658.545,245.163 658.879,245.832 659.547,246.836 660.215,247.84 661.551,248.844 663.222,249.179 664.558,249.848 667.23,251.522 670.237,253.53 673.577,255.538 676.25,257.88 668.232,268.924 667.898,269.928
667.23,271.267 666.228,272.606 664.892,273.61 661.885,275.618 659.547,276.622 656.207,277.291 653.2,277.96 650.528,275.952 648.524,273.944 646.853,271.936 645.183,270.598 644.515,269.259 644.515,267.92 644.515,265.243 644.181,262.9 644.181,261.896 643.847,261.227 638.502,259.219 638.502,255.872 638.836,252.526 639.17,249.514 639.17,247.506 635.83,247.171
633.157,246.836 631.821,246.502 630.819,245.832 630.151,245.163 629.817,244.494 626.476,244.494 625.474,244.494 624.806,244.828 624.472,245.498 624.138,246.502 623.47,249.514 621.132,250.518 619.127,251.856 615.453,254.534 615.453,255.538 615.787,256.876 616.455,258.215 617.457,260.223 617.123,261.562 616.121,262.566 615.453,263.57 614.117,263.904 612.112,264.908
611.11,265.578 610.442,266.247 610.442,268.255 610.108,270.263 609.774,272.271 610.108,273.275 610.442,273.944 621.132,273.944 622.468,272.606 623.804,271.602 624.806,270.932 625.808,270.932 627.144,270.598 628.815,270.932 629.483,271.936 630.151,272.271 631.153,273.275 632.489,273.944 633.825,276.956 635.162,284.319 636.832,286.661 639.17,288.669 641.843,290.677
643.513,291.347 645.517,292.016 648.858,297.705 648.19,297.705 647.187,298.04 645.851,299.379 644.515,300.717 643.513,301.721 642.845,303.06 641.509,304.064 638.836,306.407 636.164,308.08 633.491,309.084 631.153,311.092 629.149,312.765 627.479,315.108 625.808,317.451 620.464,322.471 618.459,324.479 617.123,326.821 616.121,329.164 616.121,332.176 616.789,335.857
618.459,340.208 618.793,342.216"/>
                                        <Polygon Name="xinjiang" ToolTip="新疆"  Points="238.882,334.515 236.544,333.176 232.536,329.161 229.864,329.161 228.194,329.161 227.526,329.495 227.192,329.83 226.19,332.172 224.52,331.503 220.177,331.838 219.175,330.165 218.841,328.491 218.507,326.149 215.501,324.81 211.493,321.464 209.823,320.126 207.819,319.122 205.815,318.452 203.811,318.118 201.807,318.118 199.469,318.787 193.123,319.791 189.783,319.791
186.777,319.791 180.765,317.783 175.755,317.783 172.415,319.456 169.409,321.129 166.737,323.472 165.735,324.81 164.733,326.149 159.055,325.814 153.711,323.472 150.037,323.472 148.701,323.807 147.698,324.81 143.022,325.814 140.35,326.149 138.346,326.818 136.342,327.822 134.004,328.491 132,328.491 129.996,327.822 125.988,326.484 122.648,324.81 120.644,323.137
120.31,319.791 119.976,319.122 119.642,318.452 118.306,317.448 116.636,316.11 113.296,316.445 112.294,316.445 111.626,316.779 110.29,318.118 108.286,320.795 105.614,321.464 102.942,321.799 100.27,322.133 99.2679,322.803 97.9318,323.137 96.9298,323.137 96.2618,321.464 94.2578,319.791 92.5878,318.452 90.5837,317.114 88.5797,316.11 86.5757,315.106 84.5717,314.771
82.9016,314.437 80.8976,314.771 77.2236,317.448 74.5515,319.791 72.5475,322.803 70.5435,326.484 68.8735,328.491 67.2034,329.83 65.1994,330.834 62.8614,331.503 57.8513,330.165 56.1813,329.161 55.5133,328.826 54.5113,328.826 53.8433,327.153 53.1753,325.814 52.1732,324.476 51.1712,323.807 48.8332,322.468 46.4952,321.464 44.4911,318.452 44.4911,311.425 45.1591,310.421
45.1591,309.083 45.1591,306.74 44.1571,305.067 43.1551,303.728 41.4851,302.724 40.1491,302.39 36.809,302.055 35.473,301.721 34.137,301.386 31.465,298.709 27.4569,291.347 21.4448,290.008 21.1108,288.67 21.1108,286.997 21.1108,285.658 21.4448,284.32 22.4468,281.642 23.4489,279.3 23.1149,277.292 22.7809,275.284 22.1128,273.611 21.1108,272.273 18.7728,269.596
16.4348,267.253 8.75267,263.572 7.75066,262.234 7.75066,258.553 7.75066,257.549 8.41867,257.214 9.08667,256.545 10.0887,256.21 13.4287,254.537 15.4328,252.864 16.1008,252.195 16.7688,251.191 16.7688,234.793 16.1008,232.116 15.0988,230.443 13.7627,229.439 12.4267,229.105 10.7567,228.77 9.08667,228.77 5.74663,228.77 4.74461,229.439 4.0766,230.443 3.7426,230.443
3.7426,231.113 2.74059,228.435 2.40659,226.762 2.40659,225.424 2.74059,224.085 6.74864,222.077 6.74864,218.062 5.41263,216.054 4.41061,215.05 3.7426,214.381 3.7426,214.046 5.07862,213.377 6.74864,212.373 9.08667,211.034 13.0947,205.011 20.1088,202.334 25.1189,201.999 29.1269,201.665 33.469,200.661 38.1451,198.653 41.1511,198.653 41.1511,200.661 41.8191,203.338
42.4871,204.342 43.4891,205.68 44.8251,206.684 46.1612,207.353 48.1652,207.353 49.8352,207.019 51.8392,206.684 53.8433,205.68 58.8533,198.987 62.8614,199.322 64.8654,199.322 67.2034,198.987 69.5415,196.98 72.2135,195.306 75.2195,194.972 78.8936,196.31 81.2316,196.98 83.9037,197.314 85.5737,196.645 87.5777,195.976 91.9198,195.641 96.2618,194.972 98.5999,194.303
100.604,193.633 107.284,189.618 108.954,184.598 110.624,183.929 111.96,182.59 112.962,181.252 113.964,179.579 115.3,175.898 116.302,172.886 119.308,171.547 120.644,170.543 121.98,169.205 124.318,163.851 124.652,154.146 123.65,150.131 123.984,146.45 124.652,142.769 124.652,140.761 124.652,139.422 124.318,138.084 123.65,136.745 122.982,135.072 131.332,135.407
135.674,135.741 140.016,136.411 141.686,136.745 143.022,137.415 146.028,137.749 149.703,138.418 151.373,139.422 153.377,140.426 155.715,140.426 158.053,138.084 158.053,135.741 157.385,133.399 157.051,131.391 157.719,129.383 158.387,127.71 164.733,120.013 165.735,116.667 166.737,114.325 168.407,111.982 170.745,109.64 171.413,107.632 172.081,106.628 172.415,106.293
173.083,105.959 175.087,105.959 184.773,111.982 186.777,112.317 189.115,112.652 191.787,113.321 193.123,113.99 194.459,114.994 198.133,114.994 200.137,114.994 202.141,114.659 204.145,113.99 205.815,113.321 207.151,111.982 208.153,109.974 207.151,98.5968 208.821,95.5851 210.491,93.5773 212.495,92.2387 214.499,91.2348 216.837,90.5656 219.175,90.2309 225.522,89.5617
226.19,89.227 226.858,88.5578 228.194,86.8846 229.53,83.2036 231.868,80.8611 239.216,80.8611 239.55,81.1958 240.218,82.1997 240.552,84.5422 241.22,87.5539 242.222,90.5656 249.57,101.609 253.578,103.282 259.256,104.955 264.266,108.301 266.938,112.652 267.94,121.352 271.28,127.71 271.614,130.722 271.614,134.403 271.614,136.411 271.28,138.084 270.612,140.092
269.944,141.765 266.27,144.107 265.268,144.777 264.934,145.446 264.266,146.115 264.266,147.119 263.932,151.135 264.6,154.481 265.268,156.489 266.604,158.831 271.948,162.512 279.964,164.52 281.968,165.524 284.306,166.528 286.31,167.197 288.648,167.866 293.658,168.536 299.336,168.87 301.341,170.209 304.013,172.217 309.023,177.236 316.705,183.594 318.709,183.929
320.713,184.598 322.717,185.937 324.721,187.945 326.057,193.299 327.059,196.31 328.395,199.657 330.399,200.995 331.067,201.999 332.069,204.007 331.735,209.027 333.071,212.708 331.067,214.046 329.731,215.385 329.063,217.058 328.395,220.07 328.395,225.424 329.397,231.782 328.395,232.451 316.037,232.786 310.359,233.79 308.021,234.459 306.017,235.128 304.347,236.467
302.677,238.14 301.674,240.148 300.673,242.825 298.668,244.833 297.332,246.506 296.33,248.514 295.328,251.191 293.658,252.195 291.654,252.864 287.98,253.533 284.64,253.868 281.634,253.868 281.3,255.541 280.298,257.549 278.962,259.222 277.626,260.56 276.958,261.899 276.958,263.238 277.292,265.915 278.294,268.926 279.296,272.607 279.63,276.623 270.278,278.631
268.274,279.635 266.27,280.639 262.93,282.646 257.252,283.985 251.24,284.989 245.896,285.658 240.552,285.658 237.546,286.327 235.542,287.666 235.542,289.004 235.876,290.008 236.544,291.347 238.214,293.689 237.212,295.028 236.878,296.366 236.878,297.37 237.546,298.709 238.214,299.713 239.55,300.717 242.556,303.059 246.23,308.413 247.566,309.083 248.568,310.086
248.902,310.756 248.902,311.76 248.902,314.437 246.898,316.445 243.558,318.118 242.556,318.787 241.888,319.456 241.22,320.46 240.886,321.464 240.886,325.145 241.888,326.149 243.224,327.822 244.226,329.83 244.56,331.169 244.56,332.507 242.89,333.511 241.22,333.846 238.882,334.515"/>
                                        <Polygon Name="nemenggu" ToolTip="内蒙古"  Points="445.289,322.482 438.935,316.462 435.591,309.773 435.925,305.091 436.26,303.418 436.929,301.746 437.932,300.408 438.935,299.071 440.607,297.733 442.279,296.729 445.289,294.054 447.964,290.04 447.63,287.365 446.292,285.358 445.289,284.02 443.951,283.352 442.948,283.017 441.61,282.683 440.273,283.017 436.929,284.02 432.916,287.365 427.231,290.04 426.228,289.037
425.224,288.368 423.552,287.365 416.53,287.365 414.189,287.699 412.851,288.368 411.848,289.706 411.179,291.378 410.845,294.388 410.51,298.067 409.507,298.736 408.504,298.736 407.501,298.736 406.498,298.402 404.825,297.398 403.488,297.064 400.144,292.716 397.469,290.04 396.131,286.696 394.459,284.02 393.79,283.017 392.787,282.014 391.449,281.679 390.112,281.01
384.092,274.656 380.414,273.653 380.748,272.315 381.083,270.977 382.086,269.974 383.089,268.97 385.43,267.298 386.768,266.295 387.771,265.291 390.112,260.275 390.112,258.268 389.777,256.596 389.108,255.592 388.44,254.923 382.755,254.923 377.404,255.592 372.388,256.596 367.706,258.268 366.369,259.271 365.031,259.606 364.028,259.606 363.025,259.606 363.359,252.582
360.684,248.903 354.664,243.887 354.664,241.88 355.333,240.208 356.671,237.198 356.337,232.181 356.337,230.174 355.668,228.168 352.324,223.82 352.324,218.134 369.044,222.148 398.137,222.482 403.488,223.82 406.832,224.823 409.842,225.827 419.205,233.519 421.546,234.522 430.24,235.86 434.253,238.536 445.289,242.214 446.292,242.883 447.295,243.887 449.97,246.228
451.642,247.231 453.314,247.566 454.986,247.231 457.327,246.228 457.996,245.224 458.999,244.221 461.006,242.883 463.681,241.88 466.022,240.877 468.697,238.87 470.704,237.532 473.379,236.529 477.057,235.86 477.057,235.191 477.726,234.857 479.064,234.188 480.736,233.519 482.408,232.85 483.411,232.85 484.749,232.181 487.09,230.843 489.43,229.171 490.768,228.837
492.106,228.502 494.112,227.499 496.453,226.83 498.794,226.83 501.803,226.83 505.816,227.833 511.501,228.502 514.511,228.502 517.186,228.502 519.527,227.833 520.53,227.499 521.199,226.83 524.209,226.495 526.884,225.158 529.559,223.82 531.9,221.813 533.906,219.806 536.247,217.465 539.926,212.783 545.611,207.766 547.952,205.76 550.627,203.753 553.302,202.415
554.64,201.746 555.977,200.408 555.643,196.061 549.958,190.709 548.955,187.031 549.289,182.683 549.624,180.676 549.958,179.004 550.627,177.666 551.63,176.328 552.968,174.99 554.974,174.322 555.309,173.653 555.643,173.318 556.312,173.653 557.315,174.322 563,178.335 567.347,179.673 572.029,179.673 574.035,179.004 575.707,177.666 577.714,175.994 579.386,173.987
583.064,169.974 586.074,165.96 587.077,165.291 588.08,164.623 589.084,164.623 590.421,164.288 592.762,164.623 595.437,164.957 597.109,163.619 598.447,162.95 601.791,161.613 606.138,157.599 606.807,157.265 607.142,156.596 608.145,154.924 608.814,151.914 609.817,149.238 610.82,147.566 612.158,146.562 613.495,145.893 616.505,144.89 618.846,144.556 621.521,143.552
623.193,141.546 625.2,139.873 627.54,138.536 629.881,137.198 631.553,136.194 633.225,135.86 635.901,135.526 638.576,135.526 644.261,135.86 649.277,136.529 651.952,135.191 652.955,133.853 653.624,132.181 653.959,130.509 653.959,129.171 653.624,127.499 652.955,126.161 651.618,123.82 647.27,119.807 639.579,115.124 639.245,114.121 638.576,112.783 636.904,111.111
634.563,108.77 629.212,108.77 626.537,111.78 621.521,111.78 620.518,117.8 619.18,118.134 617.508,118.134 616.171,117.8 614.833,117.465 612.158,116.128 610.486,115.459 605.804,115.459 603.798,116.128 602.125,117.131 599.116,119.472 597.444,119.472 595.772,118.803 594.769,118.134 594.1,117.131 593.431,116.128 593.096,115.124 593.096,113.118 598.113,108.435
597.778,103.084 598.113,101.077 598.113,99.0708 599.785,95.7263 601.122,92.7163 601.122,89.0373 601.457,86.3617 602.125,83.6862 603.463,81.345 606.807,81.345 610.82,82.014 615.502,82.3484 617.843,82.014 620.183,81.6795 622.524,81.0106 624.531,79.6728 626.872,77.6661 629.547,75.325 631.888,72.9838 633.894,70.6427 633.894,65.626 634.229,59.6059 634.563,56.5959
635.232,53.9203 636.235,51.9136 636.904,51.2447 637.907,50.5758 638.91,48.9036 639.913,46.8969 640.582,43.2179 641.586,39.539 642.589,37.8668 643.592,36.529 643.592,29.5056 642.923,28.1678 639.245,23.82 635.901,22.1477 635.901,20.4755 636.235,19.1377 636.904,17.8 637.573,16.7966 638.576,15.7933 639.913,14.7899 642.589,13.4521 643.926,13.4521 644.93,12.7832
647.27,11.7799 649.611,10.7765 650.615,10.4421 652.286,10.1076 652.286,11.111 652.621,11.4455 653.959,12.7832 653.29,17.131 651.952,18.8033 650.949,19.8066 650.28,21.1444 649.946,23.1511 653.959,26.1611 654.962,27.4989 655.965,28.5022 657.637,29.1712 660.312,29.5056 661.315,23.4855 662.653,23.4855 664.325,23.4855 666.332,24.1545 668.672,25.4922 670.01,27.4989
670.679,30.5089 671.348,33.519 672.351,36.8634 673.354,38.2012 674.357,39.8735 676.364,40.8769 681.38,40.5424 683.052,39.8735 684.724,39.2046 688.402,38.8702 690.409,38.2012 692.081,37.8668 693.753,36.8634 695.425,35.5257 696.763,33.1845 698.1,31.5123 699.438,30.5089 700.775,29.8401 702.447,30.1745 704.12,30.8434 705.792,32.1812 707.798,34.5223 711.142,43.5524
710.473,46.8969 709.47,51.2447 708.132,55.927 706.46,59.6059 706.46,63.6193 710.473,71.3116 710.139,72.6494 709.804,74.3216 708.467,78.0005 708.132,80.0072 708.467,81.6795 709.47,83.6862 710.139,84.355 711.477,85.3584 711.811,87.3651 711.811,89.7062 711.477,95.3919 707.798,96.0608 707.129,95.0574 706.46,94.0541 706.126,92.3818 706.46,89.7062 705.792,88.034
704.788,86.6962 702.447,87.0307 701.11,87.3651 700.775,88.034 700.441,88.7029 700.775,91.044 700.441,92.3818 699.772,93.7196 697.431,96.0608 695.759,98.4019 694.422,101.077 693.753,104.422 692.415,106.429 690.743,108.101 688.737,110.108 687.065,111.445 686.73,117.465 688.068,119.472 690.074,122.817 695.759,126.161 699.772,125.827 702.447,121.813 703.451,123.82
704.12,125.492 704.454,127.499 701.11,128.502 698.1,129.84 698.1,131.178 698.435,132.516 698.435,133.519 699.103,134.188 699.772,135.191 700.775,135.526 697.431,140.208 695.425,142.215 693.419,143.887 691.078,143.218 684.389,138.87 681.38,138.87 680.042,140.542 679.708,141.546 679.373,142.549 679.708,146.897 680.377,147.9 681.38,148.569 683.721,150.241
686.73,152.582 688.068,153.92 689.406,155.592 689.406,161.947 690.743,163.954 692.081,166.964 694.422,173.318 695.759,174.99 698.435,174.99 700.775,170.308 705.123,167.298 707.464,170.977 709.136,173.318 710.473,176.328 710.808,179.004 711.811,181.679 712.48,183.017 713.483,184.021 714.82,185.358 716.493,186.362 717.161,187.699 716.827,189.706 716.827,192.047
716.827,197.398 714.82,199.405 712.814,199.071 711.811,198.402 709.804,197.398 704.788,197.733 702.782,198.067 701.444,198.736 700.107,199.74 699.103,200.743 697.097,204.422 696.428,205.091 695.759,205.76 695.425,206.763 694.422,207.766 691.412,210.107 685.727,213.786 684.724,215.459 682.383,217.131 678.036,220.141 676.364,222.148 673.354,222.816 670.344,219.806
669.007,216.796 668.338,215.793 667.335,215.124 666.666,214.455 665.663,214.455 663.322,214.121 662.653,215.459 662.319,217.131 661.984,218.803 661.65,220.81 661.984,222.482 662.319,224.489 663.322,226.161 664.66,227.833 665.328,234.857 660.981,235.191 657.303,235.526 655.296,235.191 653.624,234.857 652.286,234.522 650.949,233.853 650.28,230.174 649.277,227.833
647.939,226.161 646.267,224.154 641.92,214.455 639.913,212.449 638.576,211.78 637.573,211.78 635.901,211.78 633.894,213.452 631.553,215.124 629.547,216.462 627.54,218.134 626.872,220.141 626.537,222.482 626.537,225.492 627.206,228.502 616.505,229.505 607.142,235.191 605.804,237.867 604.801,238.87 604.466,239.204 603.798,239.204 601.791,237.867 600.788,236.863
600.453,235.526 600.119,234.522 602.125,233.184 601.791,231.178 601.457,229.505 600.788,228.168 599.785,227.164 598.781,226.161 597.444,225.492 596.106,225.158 594.769,225.158 593.096,225.827 592.093,226.83 591.09,227.833 590.421,229.171 590.421,230.509 590.421,232.181 591.09,236.194 587.746,236.863 587.077,237.867 586.743,239.204 585.071,239.873 585.071,249.238
588.415,253.251 588.415,256.261 586.743,259.271 583.064,261.612 579.051,262.616 575.707,263.285 572.029,263.285 569.354,263.619 567.682,264.288 566.344,265.291 564.672,266.629 562.331,268.636 560.325,271.98 557.649,275.325 551.63,282.014 547.617,279.338 542.935,279.673 542.267,282.014 541.598,283.017 540.929,283.686 540.26,282.683 539.257,282.014 537.585,281.345
536.247,281.345 534.91,281.345 534.241,283.017 533.238,284.355 532.234,286.027 530.562,287.365 528.89,288.368 527.218,290.04 525.881,291.713 524.543,293.719 521.868,297.398 520.196,299.071 518.524,300.408 517.855,302.415 517.521,304.422 517.521,309.438 517.521,310.776 517.521,313.117 516.517,317.131 515.514,317.8 510.498,317.465 506.151,316.796 497.791,315.459
492.44,312.783 489.43,309.438 483.411,308.101 483.411,303.084 485.417,300.074 487.424,297.064 488.762,293.719 489.096,292.047 489.096,290.375 488.427,288.703 487.758,287.699 486.755,287.03 485.752,286.362 483.411,286.362 481.405,286.362 480.067,287.03 479.064,287.699 476.054,288.034 475.051,288.368 474.717,289.037 474.717,290.709 474.382,294.388 473.044,295.726
472.376,297.733 469.032,303.753 469.366,310.442 467.36,312.783 464.684,313.452 463.012,313.786 461.675,314.79 460.003,316.127 455.655,317.131 450.974,318.134 449.302,319.472 447.964,320.475 446.961,321.813 445.289,322.482"/>
                                        <Polygon Name="beijing" ToolTip="北京"  Points="644.69,289.752 642.337,288.425 640.321,287.098 638.304,285.439 637.296,283.78 636.624,282.121 636.288,279.466 635.952,276.812 635.616,276.148 635.28,275.484 634.607,273.493 631.246,270.507 629.902,269.843 628.558,269.18 627.213,268.848 625.533,269.18 622.172,269.843 621.164,271.171 620.155,272.166 611.753,272.498 611.753,270.175 612.089,268.184 612.089,267.521
612.761,266.857 613.434,266.525 614.778,266.193 618.475,263.207 618.811,261.88 619.147,260.553 619.147,259.557 618.811,258.562 617.803,256.903 617.467,255.907 617.467,255.244 621.5,252.921 623.516,251.262 625.533,249.603 625.869,247.944 626.205,246.948 626.877,246.284 628.558,245.953 631.583,248.607 637.632,249.271 636.96,251.262 636.624,254.58 636.96,258.23
637.296,259.889 637.968,261.548 640.993,261.88 643.01,263.207 642.674,266.525 642.674,267.853 643.01,269.18 643.346,270.175 644.354,271.503 645.362,272.83 647.379,274.157 650.74,278.471 646.707,280.462 645.362,281.457 644.354,283.116 644.69,289.752"/>
                                        <Polygon Name="liaoning" ToolTip="辽宁"  Points="699.775,279.645 699.441,278.978 700.443,276.642 701.779,275.641 702.781,274.641 704.451,273.306 706.121,269.97 706.121,267.301 702.447,265.299 702.113,263.297 702.113,261.629 702.447,260.295 703.115,258.96 704.785,256.625 707.122,254.623 707.79,253.289 708.458,251.954 708.792,248.952 708.792,246.616 708.792,244.281 702.447,237.275 699.441,236.941 693.764,237.942
691.426,239.944 689.422,242.279 685.08,247.284 682.074,252.288 680.405,254.623 678.735,256.625 672.055,252.288 669.049,249.953 666.378,247.951 664.04,247.617 662.37,246.95 661.368,245.949 660.366,245.282 660.366,242.947 660.7,241.612 661.034,241.279 661.368,240.945 663.372,240.611 665.042,238.276 667.046,235.941 666.712,227.266 666.044,226.933 665.042,225.265
663.706,221.595 663.706,218.259 664.04,216.924 664.708,215.923 666.044,216.591 667.046,217.258 667.714,218.926 668.382,220.928 670.051,222.262 671.721,223.597 672.723,224.264 673.725,224.598 675.061,224.598 677.065,224.264 680.071,221.261 684.078,218.259 688.42,214.922 692.428,211.586 696.435,208.584 698.105,206.582 699.107,204.58 701.111,200.91 704.117,199.91
706.789,199.242 707.79,199.242 709.126,199.576 710.796,200.243 712.466,201.244 715.806,201.244 718.478,198.242 718.478,189.901 719.48,187.232 720.815,187.566 722.819,188.567 724.489,190.235 726.493,192.57 728.497,194.238 730.167,194.905 732.505,195.239 733.173,194.572 733.507,193.237 733.841,191.903 735.51,189.901 736.846,191.235 737.18,197.574 739.184,199.91
741.188,202.579 743.526,205.581 746.532,208.584 746.532,216.924 748.869,219.927 754.547,223.93 758.555,226.599 758.221,227.6 757.219,228.935 753.545,231.604 749.537,234.272 747.199,235.941 744.194,238.943 741.522,241.946 739.184,244.948 738.85,246.283 738.516,247.951 738.182,249.619 737.514,251.287 735.176,252.288 732.505,253.622 729.165,254.29 726.159,255.291
723.487,256.625 720.815,257.96 718.478,259.628 716.474,261.629 714.136,263.965 712.132,266.634 711.13,269.636 709.794,273.64 708.792,277.643 703.783,278.978 699.775,279.645"/>
                                        <Polygon Name="jilin" ToolTip="吉林"  Points="758.615,224.293 756.61,222.296 753.936,220.298 749.59,217.635 748.253,215.97 748.587,210.643 748.253,208.645 747.584,206.648 745.913,204.983 744.91,203.984 743.907,201.986 739.227,196.992 738.893,196.659 738.559,190.001 737.222,188.669 736.219,188.003 735.216,188.003 734.213,188.003 733.21,189.335 732.542,190.333 731.205,193.33 730.536,193.33 726.19,189.002
724.185,187.004 722.179,185.672 719.17,185.006 717.165,184.341 715.493,183.675 714.491,182.343 713.488,181.344 713.154,179.679 712.151,175.684 711.148,173.021 709.477,170.69 707.136,167.361 706.468,164.697 705.131,164.364 699.782,169.025 697.442,173.353 696.105,172.355 695.437,171.356 694.434,169.025 693.765,166.695 693.431,166.029 693.097,165.363 691.091,161.035
691.091,155.042 689.085,152.378 687.08,150.381 683.068,147.051 682.066,146.718 681.397,146.385 681.063,145.387 681.063,144.388 681.731,142.057 682.4,141.058 683.403,140.725 685.743,142.39 688.083,144.055 690.757,145.053 692.428,145.719 694.1,145.719 695.771,144.388 697.442,142.723 699.114,141.058 700.785,139.726 702.457,137.063 703.459,136.397 704.128,135.731
705.131,135.731 706.468,136.397 707.471,137.396 708.808,139.394 709.142,141.058 709.811,142.723 711.148,144.388 712.485,145.719 714.156,147.051 716.162,148.05 718.502,148.716 720.842,149.382 730.202,146.718 737.89,140.059 739.562,140.725 739.227,143.389 739.227,144.721 739.227,146.385 739.896,147.717 740.899,149.049 742.236,149.715 744.576,150.048 745.913,149.382
747.584,148.716 748.587,148.05 749.59,147.717 750.593,148.05 751.596,148.383 753.601,150.381 755.607,152.711 759.618,154.043 760.956,156.041 762.627,158.371 764.633,161.035 767.641,163.365 768.978,163.365 770.649,161.701 771.652,159.703 772.321,158.038 772.99,156.041 775.998,157.039 776.667,159.037 778.004,161.368 780.009,163.698 782.349,165.696 782.349,166.362
786.695,170.024 792.043,169.691 793.046,168.359 794.383,167.361 794.718,167.028 795.386,166.695 796.389,165.696 796.389,164.364 795.386,163.698 795.386,163.032 796.055,162.366 798.06,161.368 802.072,160.036 803.075,159.37 803.743,159.037 805.08,157.705 805.415,158.038 805.749,158.371 806.417,159.703 807.42,161.368 808.423,162.033 809.76,162.699 815.777,167.028
821.126,168.026 821.126,169.691 821.126,172.355 821.126,173.686 820.792,175.018 820.457,176.017 819.454,176.683 817.783,181.011 816.78,186.671 815.109,187.004 814.774,186.005 814.106,185.672 813.437,185.339 812.769,185.339 811.097,185.672 810.429,186.005 809.76,185.672 809.76,178.681 808.423,177.016 807.42,176.35 806.417,176.017 805.415,176.017 804.412,176.35
803.409,177.349 801.738,179.679 800.735,182.676 799.398,186.005 797.726,189.002 796.389,192.331 795.721,193.33 794.718,194.662 792.378,195.993 790.038,196.659 786.695,196.992 785.358,197.658 785.024,197.991 784.689,198.657 784.355,200.655 784.355,203.984 788.701,207.646 788.366,208.645 787.698,209.644 786.026,211.309 784.689,211.642 783.018,211.642 779.341,211.642
776.332,210.976 773.992,210.31 772.655,209.311 771.318,208.645 769.981,208.312 768.978,208.645 767.975,208.978 766.972,209.977 764.967,211.642 761.29,222.296 760.621,223.961 758.615,224.293"/>
                                        <Polygon Name="heilongjiang" ToolTip="黑龙江"  Points="787.606,168.461 780.935,162.125 778.933,158.457 777.933,156.79 777.265,155.79 775.931,155.123 774.931,154.456 773.263,154.123 771.595,154.456 768.593,161.125 767.592,160.792 766.258,160.125 764.257,157.791 762.923,155.456 762.256,154.123 761.589,153.789 761.255,153.122 760.588,151.789 756.919,151.122 755.585,149.121 754.584,147.787 753.583,147.12 752.583,146.454
750.248,146.12 747.579,145.787 746.912,146.787 744.577,147.454 742.91,147.454 741.909,146.787 741.575,145.787 741.242,144.453 741.242,142.786 741.242,139.785 739.908,138.451 738.907,138.117 737.906,137.784 736.572,137.784 733.57,141.452 731.235,142.786 730.235,143.786 728.9,144.453 727.566,145.453 725.898,145.787 722.563,146.787 719.561,147.12 715.558,145.453
714.224,144.453 712.89,143.453 712.223,142.452 711.222,141.118 710.222,138.117 708.22,135.116 707.553,134.45 707.22,134.116 705.552,134.116 702.884,133.783 702.55,134.116 701.216,133.449 700.549,132.782 700.215,131.782 699.882,130.782 701.216,130.448 702.884,130.115 704.551,129.448 706.219,128.448 705.885,125.113 705.218,122.779 703.884,120.445 701.549,120.445
700.215,121.112 699.548,122.446 698.547,124.446 697.213,124.446 696.212,124.113 694.211,123.113 692.877,121.779 691.209,121.112 690.876,119.445 690.208,118.444 688.874,116.777 688.874,112.776 690.876,110.775 692.877,109.108 695.545,105.107 696.212,102.773 696.88,101.105 697.88,99.4382 698.881,97.771 700.882,95.1034 701.883,93.4363 702.55,91.769 702.884,88.4346
703.551,88.768 704.218,89.1015 704.885,90.4353 704.885,92.1025 704.551,94.1031 704.885,95.1034 705.218,96.1038 705.885,97.1042 707.22,97.771 710.222,97.771 711.889,97.1042 713.224,96.1038 713.557,89.7683 713.557,87.1009 713.224,84.7668 711.889,83.0995 710.889,81.4324 710.222,80.0985 710.222,78.7648 710.555,77.7644 710.889,76.4307 712.223,73.7632 711.889,70.7622
710.889,67.7612 709.888,65.7605 708.887,64.4268 708.554,60.4255 710.555,55.7573 710.889,53.4232 711.222,51.4225 712.89,47.0878 712.556,44.4203 712.223,41.7527 711.556,38.7517 710.555,36.0842 709.221,33.7502 707.887,31.4161 706.219,29.7488 704.551,28.7485 701.549,28.7485 699.548,29.0819 697.547,29.7488 695.879,31.0826 694.211,33.7502 692.877,35.4173 691.209,36.4176
688.207,37.0845 685.205,37.418 682.537,38.0849 679.868,38.7517 677.534,39.4186 676.199,38.7517 675.199,37.7514 674.532,37.0845 674.198,36.0842 673.865,34.417 673.531,33.0832 672.864,29.7488 671.863,27.0813 670.529,25.0806 669.195,23.4134 666.526,22.4131 664.192,21.7462 662.524,21.4128 661.19,21.7462 660.189,22.7465 659.855,24.0803 659.522,25.7475 659.522,28.4151
652.184,23.08 652.184,22.0796 655.519,18.4118 656.186,12.0764 653.852,10.0757 664.192,4.07377 666.86,3.07346 669.528,2.40653 672.53,2.40653 675.866,2.74003 678.201,4.07377 680.202,5.07413 682.87,5.40751 686.206,5.741 689.541,5.07413 692.21,4.7407 695.212,5.40751 699.214,6.74137 706.219,15.4108 710.222,20.079 714.558,25.0806 717.56,33.0832 724.898,39.4186
726.566,41.7527 727.566,43.42 728.233,45.4206 728.567,48.755 729.568,49.7553 730.568,50.7557 734.237,53.4232 734.904,54.757 735.238,57.4245 736.239,61.4258 737.906,62.0927 740.908,62.0927 744.244,61.7593 747.246,61.4258 748.914,61.4258 750.248,61.4258 752.249,62.0927 754.584,63.4265 758.587,63.4265 759.254,62.7596 759.921,62.4262 762.589,62.0927 769.594,68.4281
771.595,68.4281 773.596,68.4281 775.598,69.095 776.932,69.7619 777.933,70.7622 780.601,77.0976 780.935,78.7648 781.935,80.7654 782.936,83.0995 784.27,85.1002 785.938,86.7674 786.938,87.4343 787.939,87.7677 789.273,88.1012 790.607,87.7677 791.942,87.4343 793.276,86.7674 798.613,85.4336 804.283,83.433 806.952,81.7658 809.286,78.0979 811.621,75.097 814.29,72.4294
817.292,69.7619 821.628,65.0937 829.633,58.4248 831.968,58.7583 832.969,59.0917 833.302,59.4252 833.636,60.0921 833.302,60.7589 832.969,64.0934 832.969,71.0956 835.637,73.7632 836.971,76.0973 837.638,77.0976 837.972,78.4314 837.638,85.4336 835.971,89.7683 835.303,90.7687 834.636,91.769 834.303,94.1031 834.636,96.7707 834.97,99.7716 834.97,110.775 833.302,117.444
833.636,124.446 832.301,126.114 831.301,126.78 830.3,127.447 826.631,127.781 823.629,127.114 821.294,126.78 817.292,126.447 816.625,127.781 815.957,128.781 815.29,129.781 814.623,131.115 812.956,131.449 811.621,132.116 810.621,132.782 809.954,133.783 809.62,134.783 809.286,135.783 809.62,139.118 812.288,143.453 812.956,146.787 814.29,150.455 816.291,154.123
818.292,158.457 819.96,165.126 817.625,165.126 815.957,164.459 814.29,163.793 812.622,162.792 810.287,160.792 808.286,159.458 807.952,158.124 807.619,157.124 806.952,156.457 806.284,155.79 805.284,155.79 804.617,155.456 803.95,155.79 803.282,156.123 802.949,157.457 800.281,158.124 797.946,159.124 793.609,161.458 793.609,164.459 794.277,165.126 792.275,166.127
790.941,167.794 787.606,168.461"/>
                                        <Polygon Name="gansu" ToolTip="甘肃"  Points="498.021,371.408 496.018,370.07 494.015,369.066 492.346,368.397 490.677,367.728 487.338,367.394 484,367.728 482.33,368.063 480.327,368.732 479.326,370.739 478.658,373.08 478.324,375.087 478.324,377.429 478.992,379.771 479.659,382.447 481.663,387.464 481.996,391.813 481.996,394.155 481.329,396.831 472.983,396.831 471.313,397.834 470.979,398.503 470.646,401.514
474.318,404.19 474.318,406.532 473.316,409.208 472.315,411.884 469.644,412.219 467.975,412.888 466.306,413.891 464.302,414.56 454.955,414.895 453.953,414.56 452.952,412.888 451.616,411.884 450.615,411.215 449.613,410.881 448.611,408.204 444.939,400.845 440.933,397.5 440.265,396.496 439.264,395.493 437.261,393.82 435.258,393.151 433.588,392.482 430.25,390.475
428.914,387.464 427.579,385.457 426.244,384.119 424.908,383.785 423.573,383.785 421.904,384.119 417.897,386.461 416.562,387.799 415.56,388.803 415.227,390.141 415.227,392.482 415.894,393.82 416.562,394.824 416.896,396.496 417.23,398.838 415.227,400.176 414.225,400.845 412.89,401.18 410.219,401.514 406.213,398.838 402.54,396.496 399.536,393.82 396.865,391.144
395.863,390.141 394.862,389.137 394.194,387.464 393.86,386.126 393.526,383.116 393.526,381.109 400.537,381.443 406.213,385.123 408.216,385.123 410.219,385.123 411.22,385.123 412.222,384.788 413.223,384.119 414.225,383.116 414.225,380.44 410.553,377.095 409.217,375.756 408.55,374.418 411.888,372.077 415.227,368.397 418.231,364.717 419.233,362.71 419.9,361.038
422.571,359.7 424.574,358.362 425.242,358.027 426.244,357.358 427.579,355.686 427.245,348.661 426.244,347.323 425.242,345.65 424.908,343.978 424.574,342.639 424.574,340.298 424.574,339.294 424.24,338.96 420.902,330.597 419.9,324.91 417.23,319.558 416.228,317.551 415.227,316.547 407.214,316.547 405.545,315.878 403.542,314.875 400.203,312.533 397.199,310.526
394.862,308.853 386.849,299.487 385.18,299.487 383.845,299.822 381.842,300.491 377.835,300.156 370.157,293.8 363.146,290.455 359.808,290.121 357.137,289.786 352.463,288.783 350.46,287.11 349.124,286.441 347.455,285.772 346.454,285.437 343.783,285.437 340.444,285.437 337.44,287.11 337.773,289.117 338.107,291.124 338.441,293.131 338.107,296.142 337.44,296.811
336.438,297.145 335.103,297.48 334.101,297.48 331.764,296.811 329.427,295.473 327.09,294.135 325.087,292.462 322.416,289.786 315.739,284.434 309.062,280.754 306.058,279.416 303.387,278.413 298.045,278.413 293.038,278.413 290.367,278.413 288.03,278.078 285.693,277.409 283.69,276.74 282.021,276.406 281.687,274.064 281.019,271.722 280.685,269.715 280.018,268.712
279.35,266.036 278.682,263.694 278.682,262.69 279.016,261.687 279.35,261.018 280.685,260.683 282.021,258.007 283.356,255.331 286.361,255.331 290.033,254.997 292.036,254.662 293.705,253.993 295.375,252.99 296.71,251.986 298.713,247.637 302.385,243.623 303.721,240.612 304.722,238.605 306.392,236.933 308.061,235.929 310.064,235.26 312.401,234.926 318.41,234.257
320.747,234.257 324.42,234.257 326.423,234.257 328.426,233.922 330.095,233.253 331.43,232.25 330.095,224.556 330.095,220.542 330.429,218.534 330.763,216.862 331.764,215.524 332.766,214.52 333.433,214.186 334.435,214.186 336.438,214.855 351.127,216.862 350.794,218.2 350.46,220.207 350.794,224.221 352.797,227.566 353.798,229.239 354.8,231.915 354.8,235.929
353.464,239.609 352.797,241.951 353.131,244.292 360.475,251.317 361.477,253.324 361.477,260.349 362.145,260.683 363.146,261.018 366.485,261.352 368.488,260.014 370.825,258.676 373.162,258.007 375.832,257.338 381.842,256.669 387.517,256.335 388.519,259.011 387.183,261.687 386.182,264.029 384.846,265.701 383.177,266.705 380.84,268.377 379.839,269.381 379.171,270.719
378.837,272.391 378.837,274.398 384.179,276.406 385.514,278.413 387.517,280.42 389.52,282.092 392.191,283.765 393.193,285.772 394.194,288.114 395.863,290.455 396.531,291.124 397.866,291.793 402.874,298.484 404.543,299.153 407.548,300.156 408.883,300.156 410.219,300.156 411.554,299.487 412.556,298.484 412.556,293.8 412.556,292.462 412.89,291.124 413.557,290.455
414.225,289.786 415.894,289.117 417.897,288.783 419.9,288.783 421.57,288.783 422.571,289.117 423.573,289.452 424.908,290.121 425.91,291.124 428.581,291.459 430.917,290.121 433.254,288.783 435.258,287.445 437.261,286.107 438.262,285.103 439.598,284.768 443.604,284.434 445.941,287.779 445.607,289.117 444.939,290.455 443.938,291.793 442.936,293.131 440.265,295.138
437.594,297.145 435.591,299.822 434.59,302.832 434.256,306.177 433.922,310.192 437.928,317.551 439.264,319.558 441.267,321.565 442.602,322.569 443.938,323.238 445.607,323.907 447.276,323.907 447.61,323.238 449.613,323.238 450.948,323.907 452.284,324.91 455.622,327.921 459.295,331.935 461.965,335.615 463.301,341.636 463.635,345.316 464.302,349.664 465.304,354.682
467.307,356.689 468.976,358.027 470.979,359.365 474.318,361.707 476.989,360.703 481.329,359.031 481.663,357.693 482.33,357.024 484,356.355 486.67,355.686 487.672,354.013 488.673,352.34 488.673,351.002 488.673,349.33 488.006,347.992 487.338,346.654 485.669,344.647 482.664,343.643 481.663,342.974 481.329,342.305 480.995,341.636 480.995,340.632 481.329,338.291
484.667,333.273 484.667,328.255 485.669,327.586 486.336,327.586 488.673,327.586 490.677,325.245 493.013,323.907 493.347,326.248 493.013,327.586 492.346,328.59 492.012,329.259 491.678,332.604 492.346,333.608 493.681,334.277 496.352,335.615 503.029,337.287 511.375,342.974 514.046,342.974 513.044,345.316 511.709,347.992 513.044,358.027 511.375,362.71 510.04,362.71
509.372,362.376 508.37,362.041 505.7,361.372 503.363,361.707 502.361,362.041 501.36,362.376 500.358,363.379 499.69,364.383 499.69,371.073 498.021,371.408"/>
                                    </Canvas>
View Code

 

 

 

地图上的从一点到另一个点进行画线代码如下:

 #region 地图线条动画方法
        #region 做数据
        /// <summary>
        /// 做数据
        /// </summary>
        private void MakeData()
        {
            Random rd = new Random();
            List<MapItem> list = new List<MapItem>();
            List<MapToItem> toList = new List<MapToItem>();

            string mapstart = config.GetValue("Config", "mapstart", "");
            string mapend = config.GetValue("Config", "mapend", "");
            if (mapend != "")
            {
                foreach (string item in mapend.Split(','))
                {
                    if (item == "北京")
                        toList.Add(new MapToItem() { To = ProvincialCapital.北京, Diameter = 10 });
                    if (item == "天津")
                        toList.Add(new MapToItem() { To = ProvincialCapital.天津, Diameter = 10 });
                    if (item == "上海")
                        toList.Add(new MapToItem() { To = ProvincialCapital.上海, Diameter = 10 });
                    if (item == "重庆")
                        toList.Add(new MapToItem() { To = ProvincialCapital.重庆, Diameter = 10 });
                    if (item == "石家庄")
                        toList.Add(new MapToItem() { To = ProvincialCapital.石家庄, Diameter = rd.Next(10, 51) });
                    if (item == "太原")
                        toList.Add(new MapToItem() { To = ProvincialCapital.太原, Diameter = rd.Next(10, 51) });
                    if (item == "沈阳")
                        toList.Add(new MapToItem() { To = ProvincialCapital.沈阳, Diameter = rd.Next(10, 51) });
                    if (item == "长春")
                        toList.Add(new MapToItem() { To = ProvincialCapital.长春, Diameter = rd.Next(10, 51) });
                    if (item == "哈尔滨")
                        toList.Add(new MapToItem() { To = ProvincialCapital.哈尔滨, Diameter = rd.Next(10, 51) });
                    if (item == "南京")
                        toList.Add(new MapToItem() { To = ProvincialCapital.南京, Diameter = rd.Next(10, 51) });
                    if (item == "杭州")
                        toList.Add(new MapToItem() { To = ProvincialCapital.杭州, Diameter = rd.Next(10, 51) });
                    if (item == "合肥")
                        toList.Add(new MapToItem() { To = ProvincialCapital.合肥, Diameter = rd.Next(10, 51) });
                    if (item == "福州")
                        toList.Add(new MapToItem() { To = ProvincialCapital.福州, Diameter = rd.Next(10, 51) });
                    if (item == "南昌")
                        toList.Add(new MapToItem() { To = ProvincialCapital.南昌, Diameter = rd.Next(10, 51) });
                    if (item == "济南")
                        toList.Add(new MapToItem() { To = ProvincialCapital.济南, Diameter = rd.Next(10, 51) });
                    if (item == "郑州")
                        toList.Add(new MapToItem() { To = ProvincialCapital.郑州, Diameter = rd.Next(10, 51) });
                    if (item == "武汉")
                        toList.Add(new MapToItem() { To = ProvincialCapital.武汉, Diameter = rd.Next(10, 51) });
                    if (item == "长沙")
                        toList.Add(new MapToItem() { To = ProvincialCapital.长沙, Diameter = rd.Next(10, 51) });
                    if (item == "广州")
                        toList.Add(new MapToItem() { To = ProvincialCapital.广州, Diameter = rd.Next(10, 51) });
                    if (item == "海口")
                        toList.Add(new MapToItem() { To = ProvincialCapital.海口, Diameter = rd.Next(10, 20) });
                    if (item == "成都")
                        toList.Add(new MapToItem() { To = ProvincialCapital.成都, Diameter = rd.Next(10, 51) });
                    if (item == "贵阳")
                        toList.Add(new MapToItem() { To = ProvincialCapital.贵阳, Diameter = rd.Next(10, 51) });
                    if (item == "昆明")
                        toList.Add(new MapToItem() { To = ProvincialCapital.昆明, Diameter = rd.Next(10, 51) });
                    if (item == "西安")
                        toList.Add(new MapToItem() { To = ProvincialCapital.西安, Diameter = rd.Next(10, 51) });
                    if (item == "兰州")
                        toList.Add(new MapToItem() { To = ProvincialCapital.兰州, Diameter = rd.Next(10, 51) });
                    if (item == "西宁")
                        toList.Add(new MapToItem() { To = ProvincialCapital.西宁, Diameter = rd.Next(10, 51) });
                    if (item == "拉萨")
                        toList.Add(new MapToItem() { To = ProvincialCapital.拉萨, Diameter = rd.Next(10, 51) });
                    if (item == "南宁")
                        toList.Add(new MapToItem() { To = ProvincialCapital.南宁, Diameter = rd.Next(10, 51) });
                    if (item == "呼和浩特")
                        toList.Add(new MapToItem() { To = ProvincialCapital.呼和浩特, Diameter = rd.Next(10, 51) });
                    if (item == "银川")
                        toList.Add(new MapToItem() { To = ProvincialCapital.银川, Diameter = rd.Next(10, 51) });
                    if (item == "乌鲁木齐")
                        toList.Add(new MapToItem() { To = ProvincialCapital.乌鲁木齐, Diameter = rd.Next(10, 51) });
                    if (item == "香港")
                        toList.Add(new MapToItem() { To = ProvincialCapital.香港, Diameter = 10 });
                    if (item == "澳门")
                        toList.Add(new MapToItem() { To = ProvincialCapital.澳门, Diameter = 10 });
                    if (item == "台北")
                        toList.Add(new MapToItem() { To = ProvincialCapital.台北, Diameter = 10 });
                }
            }


            if (mapstart != "")
            {
                list.Add(new MapItem() { From = (ProvincialCapital)Enum.Parse(typeof(ProvincialCapital), mapstart), To = toList });
            }
                
            //toList.Add(new MapToItem() { To = ProvincialCapital.成都, Diameter = rd.Next(10, 51) });
            //toList.Add(new MapToItem() { To = ProvincialCapital.西宁, Diameter = rd.Next(10, 51) });
            //toList.Add(new MapToItem() { To = ProvincialCapital.哈尔滨, Diameter = rd.Next(10, 51) });
            //toList.Add(new MapToItem() { To = ProvincialCapital.海口, Diameter = rd.Next(10, 20) });
            ////toList.Add(new MapToItem() { To = ProvincialCapital.海口, Diameter = rd.Next(10, 51), Tip = "美丽的大海" });
            //toList.Add(new MapToItem() { To = ProvincialCapital.呼和浩特, Diameter = rd.Next(10, 51) });
            ////toList.Add(new MapToItem() { To = ProvincialCapital.重庆, Diameter = 50, Tip = "山鸡大神在这" });
            //toList.Add(new MapToItem() { To = ProvincialCapital.重庆, Diameter = 50});
            //toList.Add(new MapToItem() { To = ProvincialCapital.杭州, Diameter = rd.Next(10, 51) });
            //toList.Add(new MapToItem() { To = ProvincialCapital.乌鲁木齐, Diameter = rd.Next(10, 51) });
            //toList.Add(new MapToItem() { To = ProvincialCapital.广州, Diameter = rd.Next(10, 51) });
            //toList.Add(new MapToItem() { To = ProvincialCapital.拉萨, Diameter = rd.Next(10, 51) });
            //toList.Add(new MapToItem() { To = ProvincialCapital.南宁, Diameter = rd.Next(10, 51) });
            //toList.Add(new MapToItem() { To = ProvincialCapital.昆明, Diameter = rd.Next(10, 51) });
            //toList.Add(new MapToItem() { To = ProvincialCapital.长春, Diameter = rd.Next(10, 51) });
            //toList.Add(new MapToItem() { To = ProvincialCapital.天津, Diameter = 20 });
            ////toList.Add(new MapToItem() { To = ProvincialCapital.上海, Diameter = 50, Tip = "雷叔的地盘!" });
            //toList.Add(new MapToItem() { To = ProvincialCapital.上海, Diameter = 20});

            //list.Add(new MapItem() { From = ProvincialCapital.石家庄, To = toList });
            ////list.Add(new MapItem() { From = ProvincialCapital.西安, To = toList });
            ////list.Add(new MapItem() { From = ProvincialCapital.拉萨, To = toList });


            m_Source = list;
        }
        #endregion

        #region 加载菜单RadioButton
        /// <summary>
        /// 加载RadioButton
        /// </summary>
        private void InitRadioButton()
        {
            //Random rd = new Random();
            //for (int i = 0; i < m_Source.Count; i++)
            //{
            //    byte r = (byte)rd.Next(0, 256);
            //    byte g = (byte)rd.Next(0, 256);
            //    byte b = (byte)rd.Next(0, 256);
            //    RadioButton rbtn = new RadioButton();
            //    rbtn.Content = m_Source[i].From.ToString();
            //    rbtn.Margin = new Thickness(0, 20, 0, 0);
            //    //rbtn.Background = new SolidColorBrush(Color.FromArgb(200, r, g, b));
            //    //rbtn.Background = new SolidColorBrush(Colors.Transparent);
            //    //rbtn.BorderBrush = new SolidColorBrush(Color.FromArgb(255, r, g, b));
            //    //rbtn.BorderBrush = new SolidColorBrush(Colors.White);
            //    if (i == 0)
            //        rbtn.IsChecked = true;
            //    else
            //        rbtn.IsChecked = false;
            //    rbtn.Click += rbtn_Click;
            //    spnl_Radio.Children.Add(rbtn);
            //}

            RadioButton rbtn1 = new RadioButton();
            rbtn1.Content ="红色区域为专线";
            rbtn1.Margin = new Thickness(0, 8, 0, 0);
            rbtn1.FontSize = 18;
            rbtn1.Foreground =new SolidColorBrush(Colors.White);
            //rbtn.FontStyle=
            spnl_Radio.Children.Add(rbtn1);

            RadioButton rbtn2 = new RadioButton();
            rbtn2.Content = "线条部分为三方";
            rbtn2.Margin = new Thickness(0, 8, 0, 0);
            rbtn2.FontSize = 18;
            rbtn2.Foreground = new SolidColorBrush(Colors.White);
            //rbtn.FontStyle=
            spnl_Radio.Children.Add(rbtn2);
        }
        #endregion

        #region 添加控件和动画到容器
        /// <summary>
        /// 添加控件和动画到容器
        /// </summary>
        /// <param name="item">数据项</param>
        private void AddAnimation(MapItem item)
        {
            grid_Animation.Children.Clear();
            m_Sb.Children.Clear();
            Random rd = new Random();
            foreach (MapToItem toItem in item.To)
            {
                if (item.From == toItem.To)
                    continue;

                //颜色
                byte[] rgb = new byte[] { (byte)rd.Next(0, 255), (byte)rd.Next(0, 255), (byte)rd.Next(0, 255) };

                //运动轨迹
                double l = 0;
                Path particlePath = GetParticlePath(item.From, toItem, rgb, out l);
                grid_Animation.Children.Add(particlePath);
                // 跑动的点
                Grid grid = GetRunPoint(rgb);
                //到达城市的圆
                Ellipse ell = GetToEllipse(toItem, rgb);
                AddPointToStoryboard(grid, ell, m_Sb, particlePath, l, item.From, toItem);
                grid_Animation.Children.Add(grid);
                grid_Animation.Children.Add(ell);

                m_Sb.Begin(this);
            }
        }
        #endregion

        #region 获取省会,直辖市,特别行政区的坐标
        /// <summary>
        /// 获取省会,直辖市,特别行政区的坐标
        /// </summary>
        /// <param name="pc">城市</param>
        /// <returns>Point(Left,Top)</returns>
        private Point GetProvincialCapitalPoint(ProvincialCapital city)
        {
            Point point = new Point(0, 0);
            switch (city)
            {
                case ProvincialCapital.北京:
                    point.X = 625.71145;
                    point.Y = 265.20515;
                    break;
                case ProvincialCapital.天津:
                    point.X = 646.648895;
                    point.Y = 277.719215;
                    break;
                case ProvincialCapital.上海:
                    point.X = 730.844;
                    point.Y = 425.208;
                    break;
                case ProvincialCapital.重庆:
                    point.X = 487.123;
                    point.Y = 469.796;
                    break;
                case ProvincialCapital.石家庄:
                    point.X = 605.527;
                    point.Y = 300.853;
                    break;
                case ProvincialCapital.太原:
                    point.X = 575.685;
                    point.Y = 310.961;
                    break;
                case ProvincialCapital.沈阳:
                    point.X = 725.375;
                    point.Y = 214.217;
                    break;
                case ProvincialCapital.长春:
                    point.X = 742.702;
                    point.Y = 173.786;
                    break;
                case ProvincialCapital.哈尔滨:
                    point.X = 751.847;
                    point.Y = 137.687;
                    break;
                case ProvincialCapital.南京:
                    point.X = 691.682;
                    point.Y = 418.295;
                    break;
                case ProvincialCapital.杭州:
                    point.X = 706.603;
                    point.Y = 446.211;
                    break;
                case ProvincialCapital.合肥:
                    point.X = 661.841;
                    point.Y = 418.295;
                    break;
                case ProvincialCapital.福州:
                    point.X = 706.603;
                    point.Y = 528.516;
                    break;
                case ProvincialCapital.南昌:
                    point.X = 646.439;
                    point.Y = 486.16;
                    break;
                case ProvincialCapital.济南:
                    point.X = 648.845;
                    point.Y = 327.807;
                    break;
                case ProvincialCapital.郑州:
                    point.X = 596.382;
                    point.Y = 371.126;
                    break;
                case ProvincialCapital.武汉:
                    point.X = 617.078;
                    point.Y = 451.506;
                    break;
                case ProvincialCapital.长沙:
                    point.X = 593.975;
                    point.Y = 497.231;
                    break;
                case ProvincialCapital.广州:
                    point.X = 611.303;
                    point.Y = 592.531;
                    break;
                case ProvincialCapital.海口:
                    point.X = 553.545;
                    point.Y = 663.766;
                    break;
                case ProvincialCapital.成都:
                    point.X = 445.73;
                    point.Y = 453.912;
                    break;
                case ProvincialCapital.贵阳:
                    point.X = 492.417;
                    point.Y = 533.811;
                    break;
                case ProvincialCapital.昆明:
                    point.X = 420.22;
                    point.Y = 563.171;
                    break;
                case ProvincialCapital.西安:
                    point.X = 522.259;
                    point.Y = 384.121;
                    break;
                case ProvincialCapital.兰州:
                    point.X = 442.842;
                    point.Y = 354.28;
                    break;
                case ProvincialCapital.西宁:
                    point.X = 408.668;
                    point.Y = 340.321;
                    break;
                case ProvincialCapital.拉萨:
                    point.X = 235.394;
                    point.Y = 452.949;
                    break;
                case ProvincialCapital.南宁:
                    point.X = 520.815;
                    point.Y = 605.046;
                    break;
                case ProvincialCapital.呼和浩特:
                    point.X = 557.877;
                    point.Y = 255.128;
                    break;
                case ProvincialCapital.银川:
                    point.X = 479.422;
                    point.Y = 299.891;
                    break;
                case ProvincialCapital.乌鲁木齐:
                    point.X = 220.474;
                    point.Y = 179.562;
                    break;
                case ProvincialCapital.香港:
                    point.X = 623.817;
                    point.Y = 611.784;
                    break;
                case ProvincialCapital.澳门:
                    point.X = 600.714;
                    point.Y = 615.634;
                    break;
                case ProvincialCapital.台北:
                    point.X = 747.515;
                    point.Y = 545.844;
                    break;
            }
            return point;
        }
        #endregion

        #region 获取运动轨迹
        /// <summary>
        /// 获取运动轨迹
        /// </summary>
        /// <param name="from">来自</param>
        /// <param name="toItem"></param>
        /// <param name="rgb">颜色:r,g,b</param>
        /// <param name="l">两点间的直线距离</param>
        /// <returns>Path</returns>
        private Path GetParticlePath(ProvincialCapital from, MapToItem toItem, byte[] rgb, out double l)
        {
            Point startPoint = GetProvincialCapitalPoint(from);
            Point endPoint = GetProvincialCapitalPoint(toItem.To);

            Path path = new Path();
            Style style = (Style)FindResource("ParticlePathStyle");
            path.Style = style;
            PathGeometry pg = new PathGeometry();
            PathFigure pf = new PathFigure();
            pf.StartPoint = startPoint;
            ArcSegment arc = new ArcSegment();
            arc.SweepDirection = SweepDirection.Clockwise;//顺时针弧
            arc.Point = endPoint;
            //半径 正弦定理a/sinA=2r r=a/2sinA 其中a指的是两个城市点之间的距离 角A指a边的对角
            double sinA = Math.Sin(Math.PI * m_Angle / 180.0);
            //计算距离 勾股定理
            double x = startPoint.X - endPoint.X;
            double y = startPoint.Y - endPoint.Y;
            double aa = x * x + y * y;
            l = Math.Sqrt(aa);
            double r = l / (sinA * 2);
            arc.Size = new Size(r, r);
            pf.Segments.Add(arc);
            pg.Figures.Add(pf);
            path.Data = pg;
            path.Stroke = new SolidColorBrush(Color.FromArgb(255, rgb[0], rgb[1], rgb[2]));
            path.Stretch = Stretch.None;
            path.ToolTip = string.Format("{0}=>{1}", from.ToString(), toItem.To.ToString());

            return path;
        }
        #endregion

        #region 获取跑动的点
        /// <summary>
        /// 获取跑动的点
        /// </summary>
        /// <param name="rgb">颜色:r,g,b</param>
        /// <returns>Grid</returns>
        private Grid GetRunPoint(byte[] rgb)
        {
            //一个Grid里包含一个椭圆 一个Path 椭圆做阴影
            //Grid
            Grid grid = new Grid();
            grid.IsHitTestVisible = false;//不参与命中测试
            grid.HorizontalAlignment = HorizontalAlignment.Left;
            grid.VerticalAlignment = VerticalAlignment.Top;
            grid.Width = 40;
            grid.Height = 15;
            grid.RenderTransformOrigin = new Point(0.5, 0.5);
            //Ellipse
            Ellipse ell = new Ellipse();
            ell.Width = 40;
            ell.Height = 15;
            ell.Fill = new SolidColorBrush(Color.FromArgb(255, rgb[0], rgb[1], rgb[2]));
            RadialGradientBrush rgbrush = new RadialGradientBrush();
            rgbrush.GradientOrigin = new Point(0.8, 0.5);
            rgbrush.GradientStops.Add(new GradientStop(Color.FromArgb(255, 0, 0, 0), 0));
            rgbrush.GradientStops.Add(new GradientStop(Color.FromArgb(22, 0, 0, 0), 1));
            ell.OpacityMask = rgbrush;
            grid.Children.Add(ell);
            //Path
            Path path = new Path();
            path.Data = Geometry.Parse(m_PointData);
            path.Width = 30;
            path.Height = 4;
            LinearGradientBrush lgb = new LinearGradientBrush();
            lgb.StartPoint = new Point(0, 0);
            lgb.EndPoint = new Point(1, 0);
            lgb.GradientStops.Add(new GradientStop(Color.FromArgb(88, rgb[0], rgb[1], rgb[2]), 0));
            lgb.GradientStops.Add(new GradientStop(Color.FromArgb(255, 255, 255, 255), 1));
            path.Fill = lgb;
            path.Stretch = Stretch.Fill;
            grid.Children.Add(path);
            return grid;
        }
        #endregion

        #region 获取到达城市的圆
        /// <summary>
        /// 获取到达城市的圆
        /// </summary>
        /// <param name="toItem">数据项</param>
        /// <param name="rgb">颜色</param>
        /// <returns>Ellipse</returns>
        private Ellipse GetToEllipse(MapToItem toItem, byte[] rgb)
        {
            Ellipse ell = new Ellipse();
            ell.HorizontalAlignment = HorizontalAlignment.Left;
            ell.VerticalAlignment = VerticalAlignment.Top;
            ell.Width = toItem.Diameter;
            ell.Height = toItem.Diameter;
            ell.Fill = new SolidColorBrush(Color.FromArgb(255, rgb[0], rgb[1], rgb[2]));
            Point toPos = GetProvincialCapitalPoint(toItem.To);
            TranslateTransform ttf = new TranslateTransform(toPos.X - ell.Width / 2, toPos.Y - ell.Height / 2);//定位到城市所在的点
            ell.RenderTransform = ttf;
            ell.ToolTip = string.Format("{0} {1}", toItem.To.ToString(), toItem.Tip);
            ell.Opacity = 0;
            return ell;
        }
        #endregion

        #region 将点加入到动画故事版
        /// <summary>
        /// 将点加入到动画故事版
        /// </summary>
        /// <param name="runPoint">运动的点</param>
        /// <param name="toEll">达到城市的圆</param>
        /// <param name="sb">故事版</param>
        /// <param name="particlePath">运动轨迹</param>
        /// <param name="l">运动轨迹的直线距离</param>
        /// <param name="from">来自</param>
        /// <param name="toItem"></param>
        private void AddPointToStoryboard(Grid runPoint, Ellipse toEll, Storyboard sb, Path particlePath, double l, ProvincialCapital from, MapToItem toItem)
        {
            double pointTime = l / m_Speed;//点运动所需的时间
            double particleTime = pointTime / 2;//轨迹呈现所需时间(跑的比点快两倍)

            #region 运动的点
            TransformGroup tfg = new TransformGroup();
            MatrixTransform mtf = new MatrixTransform();
            tfg.Children.Add(mtf);
            TranslateTransform ttf = new TranslateTransform(-runPoint.Width / 2, -runPoint.Height / 2);//纠正最上角沿path运动到中心沿path运动
            tfg.Children.Add(ttf);
            runPoint.RenderTransform = tfg;

            MatrixAnimationUsingPath maup = new MatrixAnimationUsingPath();
            maup.PathGeometry = particlePath.Data.GetFlattenedPathGeometry();
            maup.Duration = new Duration(TimeSpan.FromSeconds(pointTime));
            maup.RepeatBehavior = RepeatBehavior.Forever;
            maup.AutoReverse = false;
            maup.IsOffsetCumulative = false;
            maup.DoesRotateWithTangent = true;
            Storyboard.SetTarget(maup, runPoint);
            Storyboard.SetTargetProperty(maup, new PropertyPath("(Grid.RenderTransform).Children[0].(MatrixTransform.Matrix)"));
            sb.Children.Add(maup);
            #endregion

            #region 达到城市的圆
            //轨迹到达圆时 圆呈现
            DoubleAnimation ellda = new DoubleAnimation();
            ellda.From = 0.2;//此处值设置0-1会有不同的呈现效果
            ellda.To = 1;
            ellda.Duration = new Duration(TimeSpan.FromSeconds(particleTime));
            ellda.BeginTime = TimeSpan.FromSeconds(particleTime);//推迟动画开始时间 等轨迹连接到圆时 开始播放圆的呈现动画
            ellda.FillBehavior = FillBehavior.HoldEnd;
            Storyboard.SetTarget(ellda, toEll);
            Storyboard.SetTargetProperty(ellda, new PropertyPath(Ellipse.OpacityProperty));
            sb.Children.Add(ellda);
            //圆呈放射状
            RadialGradientBrush rgBrush = new RadialGradientBrush();
            GradientStop gStop0 = new GradientStop(Color.FromArgb(255, 0, 0, 0), 0);
            //此为控制点 color的a值设为0 off值走0-1 透明部分向外放射 初始设为255是为了初始化效果 开始不呈放射状 等跑动的点运动到城市的圆后 color的a值才设为0开始呈现放射动画
            GradientStop gStopT = new GradientStop(Color.FromArgb(255, 0, 0, 0), 0);
            GradientStop gStop1 = new GradientStop(Color.FromArgb(255, 0, 0, 0), 1);
            rgBrush.GradientStops.Add(gStop0);
            rgBrush.GradientStops.Add(gStopT);
            rgBrush.GradientStops.Add(gStop1);
            toEll.OpacityMask = rgBrush;
            //跑动的点达到城市的圆时 控制点由不透明变为透明 color的a值设为0 动画时间为0
            ColorAnimation ca = new ColorAnimation();
            ca.To = Color.FromArgb(0, 0, 0, 0);
            ca.Duration = new Duration(TimeSpan.FromSeconds(0));
            ca.BeginTime = TimeSpan.FromSeconds(pointTime);
            ca.FillBehavior = FillBehavior.HoldEnd;
            Storyboard.SetTarget(ca, toEll);
            Storyboard.SetTargetProperty(ca, new PropertyPath("(Ellipse.OpacityMask).(GradientBrush.GradientStops)[1].(GradientStop.Color)"));
            sb.Children.Add(ca);
            //点达到城市的圆时 呈现放射状动画 控制点的off值走0-1 透明部分向外放射
            DoubleAnimation eda = new DoubleAnimation();
            eda.To = 1;
            eda.Duration = new Duration(TimeSpan.FromSeconds(2));
            eda.RepeatBehavior = RepeatBehavior.Forever;
            eda.BeginTime = TimeSpan.FromSeconds(particleTime);
            Storyboard.SetTarget(eda, toEll);
            Storyboard.SetTargetProperty(eda, new PropertyPath("(Ellipse.OpacityMask).(GradientBrush.GradientStops)[1].(GradientStop.Offset)"));
            sb.Children.Add(eda);
            #endregion

            #region 运动轨迹
            //找到渐变的起点和终点
            Point startPoint = GetProvincialCapitalPoint(from);
            Point endPoint = GetProvincialCapitalPoint(toItem.To);
            Point start = new Point(0, 0);
            Point end = new Point(1, 1);
            if (startPoint.X > endPoint.X)
            {
                start.X = 1;
                end.X = 0;
            }
            if (startPoint.Y > endPoint.Y)
            {
                start.Y = 1;
                end.Y = 0;
            }
            LinearGradientBrush lgBrush = new LinearGradientBrush();
            lgBrush.StartPoint = start;
            lgBrush.EndPoint = end;
            GradientStop lgStop0 = new GradientStop(Color.FromArgb(255, 0, 0, 0), 0);
            GradientStop lgStop1 = new GradientStop(Color.FromArgb(0, 0, 0, 0), 0);
            lgBrush.GradientStops.Add(lgStop0);
            lgBrush.GradientStops.Add(lgStop1);
            particlePath.OpacityMask = lgBrush;
            //运动轨迹呈现
            DoubleAnimation pda0 = new DoubleAnimation();
            pda0.To = 1;
            pda0.Duration = new Duration(TimeSpan.FromSeconds(particleTime));
            pda0.FillBehavior = FillBehavior.HoldEnd;
            Storyboard.SetTarget(pda0, particlePath);
            Storyboard.SetTargetProperty(pda0, new PropertyPath("(Path.OpacityMask).(GradientBrush.GradientStops)[0].(GradientStop.Offset)"));
            sb.Children.Add(pda0);
            DoubleAnimation pda1 = new DoubleAnimation();
            //pda1.From = 0.5; //此处解开注释 值设为0-1 会有不同的轨迹呈现效果
            pda1.To = 1;
            pda1.Duration = new Duration(TimeSpan.FromSeconds(particleTime));
            pda1.FillBehavior = FillBehavior.HoldEnd;
            Storyboard.SetTarget(pda1, particlePath);
            Storyboard.SetTargetProperty(pda1, new PropertyPath("(Path.OpacityMask).(GradientBrush.GradientStops)[1].(GradientStop.Offset)"));
            sb.Children.Add(pda1);
            #endregion
        }
        #endregion
        #endregion
View Code

 

左右两边用到的图标是用Visifire.Charts.dll去实现的,网上也有非常多的例子,其实CS的图表没有BS实现出来的那么美观,对图表的也研究了很久,未发现比较好用的图表控件,你有好的图表控件推荐吗?

例如折线图:

   #region 折线图
        public void CreateChartSpline(string titlename, List<DateTime> listweek, List<decimal> listdata, string legendtext, Grid grid)
        {
            //创建一个图标
            Chart chart = new Chart();
            chart.Theme = "Theme4";
            chart.Background = new SolidColorBrush(Colors.Transparent);
            chart.ThemeEnabled = true;

            //设置图标的宽度和高度
            chart.Width = 235;
            chart.Height = 150;
            //chart.Margin = new Thickness(1, 1, 1, 1);//Thickness(10, 20, 10, 20);
            //是否启用打印和保持图片
            chart.ToolBarEnabled = false;

            //设置图标的属性
            chart.ScrollingEnabled = false;//是否启用或禁用滚动
            chart.View3D = false;//3D效果显示

            //创建一个标题的对象
            Title title = new Title();
            //设置标题的名称
            title.Text = titlename;
            title.FontSize = 7;
            //title.Padding = new Thickness(0, 20, 1, 0);
            title.Margin = new Thickness(1, -3, 1, 1);
            //向图标添加标题
            chart.Titles.Add(title);

            //初始化一个新的Axis
            Axis xaxis = new Axis();
            //设置Axis的属性
            //图表的X轴坐标按什么来分类,如时分秒
            //xaxis.IntervalType = IntervalTypes.Months;
            xaxis.IntervalType = IntervalTypes.Auto;
            //图表的X轴坐标间隔如2,3,20等,单位为xAxis.IntervalType设置的时分秒。
            xaxis.Interval = 1;
            //设置X轴的时间显示格式为7-10 11:20           
            xaxis.ValueFormatString = "MM-dd";
            //xaxis.Suffix = "日";
            xaxis.AxisLabels = new AxisLabels();
            xaxis.AxisLabels.FontSize = 10;
            //给图标添加Axis            
            chart.AxesX.Add(xaxis);

            Axis yAxis = new Axis();
            //设置图标中Y轴的最小值永远为0
            yAxis.AxisMinimum = 0;
            //设置图表中Y轴的后缀
            //yAxis.Suffix = "日";
            yAxis.AxisLabels = new AxisLabels();
            yAxis.AxisLabels.FontSize = 10;
            chart.AxesY.Add(yAxis);

            #region * 第一条线
            // 创建一个新的数据线。               
            DataSeries dataOneSeries = new DataSeries();
            // 设置数据线的格式。               
            dataOneSeries.LegendText = legendtext;
            dataOneSeries.RenderAs = RenderAs.Spline;//折线图
            dataOneSeries.XValueType = ChartValueTypes.Auto;

            // 设置数据点              
            DataPoint dataPoint1;
            for (int i = 0; i < listweek.Count; i++)
            {
                // 创建一个数据点的实例。                   
                dataPoint1 = new DataPoint();
                dataPoint1.AxisXLabel = listweek[i].Month + "-" + listweek[i].Day.ToString();

                // 设置X轴点                    
                dataPoint1.XValue = listweek[i];
                //设置Y轴点                   
                dataPoint1.YValue = listdata[i].ToDouble();
                dataPoint1.MarkerSize = 4;
                //dataPoint1.Tag = listcount[i].ToDouble();
                //设置数据点颜色                  
                // dataPoint.Color = new SolidColorBrush(Colors.LightGray);  
                dataPoint1.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown);
                //添加数据点                   
                dataOneSeries.DataPoints.Add(dataPoint1);
            }
            // 添加数据线到数据序列。                
            chart.Series.Add(dataOneSeries);
            #endregion
            
            //将生产的图表增加到Grid,然后通过Grid添加到上层Grid.           
            Grid gr = new Grid();
            gr.Children.Add(chart);
            grid.Children.Add(gr);
        }

        public void CreateChartSpline_Year(string titlename, List<string> listweek, List<decimal> listdata, string legendtext, Grid grid)
        {
            //创建一个图标
            Chart chart = new Chart();
            chart.Theme = "Theme4";
            chart.Background = new SolidColorBrush(Colors.Transparent);
            chart.ThemeEnabled = true;

            //设置图标的宽度和高度
            chart.Width = 220;
            chart.Height = 130;
            //chart.Margin = new Thickness(1, 1, 1, 1);//Thickness(10, 20, 10, 20);
            //是否启用打印和保持图片
            chart.ToolBarEnabled = false;

            //设置图标的属性
            chart.ScrollingEnabled = false;//是否启用或禁用滚动
            chart.View3D = false;//3D效果显示

            //创建一个标题的对象
            Title title = new Title();
            //设置标题的名称
            title.Text = titlename;
            title.FontSize = 7;
            //title.Padding = new Thickness(0, 20, 1, 0);
            title.Margin = new Thickness(1, -5, 1, 1);
            //向图标添加标题
            chart.Titles.Add(title);

            //初始化一个新的Axis
            Axis xaxis = new Axis();
            //设置Axis的属性
            //图表的X轴坐标按什么来分类,如时分秒
            //xaxis.IntervalType = IntervalTypes.Months;
            xaxis.IntervalType = IntervalTypes.Months;
            //图表的X轴坐标间隔如2,3,20等,单位为xAxis.IntervalType设置的时分秒。
            xaxis.Interval = 1;
            //设置X轴的时间显示格式为7-10 11:20           
            xaxis.ValueFormatString = "MM";
            xaxis.Suffix = "";
            xaxis.AxisLabels = new AxisLabels();
            xaxis.AxisLabels.FontSize = 10;
            //给图标添加Axis            
            chart.AxesX.Add(xaxis);

            Axis yAxis = new Axis();
            //设置图标中Y轴的最小值永远为0
            yAxis.AxisMinimum = 0;
            //设置图表中Y轴的后缀
            //yAxis.Suffix = "月";
            yAxis.AxisLabels = new AxisLabels();
            yAxis.AxisLabels.FontSize = 10;
            chart.AxesY.Add(yAxis);

            #region * 第一条线
            // 创建一个新的数据线。               
            DataSeries dataOneSeries = new DataSeries();
            // 设置数据线的格式。               
            dataOneSeries.LegendText = legendtext;
            dataOneSeries.RenderAs = RenderAs.Spline;//折线图
            dataOneSeries.XValueType = ChartValueTypes.Auto;

            // 设置数据点              
            DataPoint dataPoint1;
            for (int i = 0; i < listweek.Count; i++)
            {
                // 创建一个数据点的实例。                   
                dataPoint1 = new DataPoint();
                //dataPoint1.AxisXLabel = listweek[i];
                dataPoint1.FontSize = 6;
                // 设置X轴点                    
                dataPoint1.XValue = listweek[i];
                //设置Y轴点                   
                dataPoint1.YValue = listdata[i].ToDouble();
                dataPoint1.MarkerSize = 4;
                //dataPoint1.Tag = listcount[i].ToDouble();
                //设置数据点颜色                  
                // dataPoint.Color = new SolidColorBrush(Colors.LightGray);  
                dataPoint1.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown);
                //添加数据点                   
                dataOneSeries.DataPoints.Add(dataPoint1);
            }

            // 添加数据线到数据序列。                
            chart.Series.Add(dataOneSeries);
            #endregion

            //将生产的图表增加到Grid,然后通过Grid添加到上层Grid.           
            Grid gr = new Grid();
            gr.Children.Add(chart);
            grid.Children.Add(gr);
        }
        #endregion
View Code

 

 

柱状图:

  #region 饼状图
        /// <summary>
        /// 付款方式占比
        /// </summary>
        /// <param name="name"></param>
        /// <param name="valuex"></param>
        /// <param name="valuey"></param>
        public void CreateChartPie(string name, List<string> valuex, List<string> valuey)
        {
            //创建一个图标
            Chart chart = new Chart();
            chart.Theme = "Theme4";
            chart.Background = new SolidColorBrush(Colors.Transparent);
            //chart.AnimationEnabled = true;

            //设置图标的宽度和高度
            chart.Width = 230;
            chart.Height = 158;
            //chart.Margin = new Thickness(1,1,1,1);
            //是否启用打印和保持图片
            chart.ToolBarEnabled = false;

            //设置图标的属性
            chart.ScrollingEnabled = false;//是否启用或禁用滚动
            chart.View3D = false;//3D效果显示

            ////创建一个标题的对象
            //Title title = new Title();

            ////设置标题的名称
            //title.Text = name;
            //title.Padding = new Thickness(0, 10, 5, 0);

            ////向图标添加标题
            //chart.Titles.Add(title);

            Axis xAxis = new Axis();
            xAxis.AxisLabels = new AxisLabels();
            xAxis.AxisLabels.FontSize = 9;
            chart.AxesX.Add(xAxis);

            Axis yAxis = new Axis();
            ////设置图标中Y轴的最小值永远为0           
            //yAxis.AxisMinimum = 0;
            ////设置图表中Y轴的后缀          
            //yAxis.Suffix = "%";
            //yAxis.Enabled = false;
            yAxis.AxisLabels = new AxisLabels();
            yAxis.AxisLabels.FontSize = 9;
            chart.AxesY.Add(yAxis);

            // 创建一个新的数据线。               
            DataSeries dataSeries = new DataSeries();

            // 设置数据线的格式
            dataSeries.RenderAs = RenderAs.StackedColumn;//Pie
            //dataSeries.LabelEnabled = true;
            //dataSeries.LegendText = "最小值";
            //dataSeries.LabelText = "#AxisXLabel, #YValue";

            // 设置数据点              
            DataPoint dataPoint;
            for (int i = 0; i < valuex.Count; i++)
            {
                // 创建一个数据点的实例。                   
                dataPoint = new DataPoint();
                // 设置X轴点                    
                dataPoint.AxisXLabel = valuex[i];
                //设置Y轴点                   
                dataPoint.YValue = double.Parse(valuey[i]);

                //添加一个点击事件        
                dataPoint.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown);

                //添加数据点                   
                dataSeries.DataPoints.Add(dataPoint);
            }

            // 添加数据线到数据序列。                
            chart.Series.Add(dataSeries);
            //将生产的图表增加到Grid,然后通过Grid添加到上层Grid.           
            Grid gr = new Grid();
            gr.Children.Add(chart);
            Simon.Children.Add(gr);
        }

        /// <summary>
        /// 交接方式占比
        /// </summary>
        /// <param name="name"></param>
        /// <param name="valuex"></param>
        /// <param name="valuey"></param>
        public void CreateChartPie1(string name, List<string> valuex, List<string> valuey)
        {
            //创建一个图标
            Chart chart = new Chart();
            chart.Theme = "Theme4";
            chart.Background = new SolidColorBrush(Colors.Transparent);

            //设置图标的宽度和高度
            chart.Width = 218;
            chart.Height = 158;
            //chart.Margin = new Thickness(1, 1, 1, 1);
            //是否启用打印和保持图片
            chart.ToolBarEnabled = false;

            //设置图标的属性
            chart.ScrollingEnabled = false;//是否启用或禁用滚动
            chart.View3D = false;//3D效果显示

            ////创建一个标题的对象
            //Title title = new Title();

            ////设置标题的名称
            //title.Text = name;
            //title.Padding = new Thickness(0, 10, 5, 0);

            ////向图标添加标题
            //chart.Titles.Add(title);

            Axis xAxis = new Axis();
            xAxis.AxisLabels = new AxisLabels();
            xAxis.AxisLabels.FontSize = 9;
            chart.AxesX.Add(xAxis);

            Axis yAxis = new Axis();
            ////设置图标中Y轴的最小值永远为0           
            //yAxis.AxisMinimum = 0;
            ////设置图表中Y轴的后缀          
            //yAxis.Suffix = "%";
            yAxis.AxisLabels = new AxisLabels();
            yAxis.AxisLabels.FontSize = 9;
            chart.AxesY.Add(yAxis);

            // 创建一个新的数据线。               
            DataSeries dataSeries = new DataSeries();

            // 设置数据线的格式
            dataSeries.RenderAs = RenderAs.StackedColumn;//柱状Stacked


            // 设置数据点              
            DataPoint dataPoint;
            for (int i = 0; i < valuex.Count; i++)
            {
                // 创建一个数据点的实例。                   
                dataPoint = new DataPoint();
                // 设置X轴点                    
                dataPoint.AxisXLabel = valuex[i];

                //dataPoint.LegendText = valuex[i]; //"##" + valuex[i];

                dataPoint.FontSize = 6;
                //设置Y轴点                   
                dataPoint.YValue = double.Parse(valuey[i]);

                //添加一个点击事件        
                dataPoint.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown);
                //添加数据点                   
                dataSeries.DataPoints.Add(dataPoint);
            }

            // 添加数据线到数据序列。                
            chart.Series.Add(dataSeries);

            //将生产的图表增加到Grid,然后通过Grid添加到上层Grid.           
            Grid gr = new Grid();
            gr.Children.Add(chart);

            Simon1.Children.Add(gr);

        }

        public void CreateChartPie2(string name, List<string> valuex, List<string> valuey)
        {
            //创建一个图标
            Chart chart = new Chart();
            chart.Theme = "Theme4";
            chart.Background = new SolidColorBrush(Colors.Transparent);

            //设置图标的宽度和高度
            chart.Width = 220;
            chart.Height = 138;
            //chart.Margin = new Thickness(1, 1, 1, 1);
            //是否启用打印和保持图片
            chart.ToolBarEnabled = false;

            //设置图标的属性
            chart.ScrollingEnabled = false;//是否启用或禁用滚动
            chart.View3D = false;//3D效果显示

            ////创建一个标题的对象
            //Title title = new Title();

            ////设置标题的名称
            //title.Text = name;
            //title.Padding = new Thickness(0, 10, 5, 0);

            ////向图标添加标题
            //chart.Titles.Add(title);

            Axis xAxis = new Axis();
            xAxis.AxisLabels = new AxisLabels();
            xAxis.AxisLabels.FontSize = 8;
            chart.AxesX.Add(xAxis);

            Axis yAxis = new Axis();
            ////设置图标中Y轴的最小值永远为0           
            //yAxis.AxisMinimum = 0;
            ////设置图表中Y轴的后缀          
            //yAxis.Suffix = "%";
            yAxis.AxisLabels = new AxisLabels();
            yAxis.AxisLabels.FontSize = 10;
            chart.AxesY.Add(yAxis);

            // 创建一个新的数据线。               
            DataSeries dataSeries = new DataSeries();

            // 设置数据线的格式
            dataSeries.RenderAs = RenderAs.Bar;//柱状Stacked


            // 设置数据点              
            DataPoint dataPoint;
            for (int i = 0; i < valuex.Count; i++)
            {
                // 创建一个数据点的实例。                   
                dataPoint = new DataPoint();
                // 设置X轴点                    
                dataPoint.AxisXLabel = valuex[i];

                //dataPoint.LegendText = valuex[i]; //"##" + valuex[i];

                dataPoint.FontSize = 6;
                //设置Y轴点                   
                dataPoint.YValue = double.Parse(valuey[i]);

                //添加一个点击事件        
                dataPoint.MouseLeftButtonDown += new MouseButtonEventHandler(dataPoint_MouseLeftButtonDown);
                //添加数据点                   
                dataSeries.DataPoints.Add(dataPoint);
            }

            // 添加数据线到数据序列。                
            chart.Series.Add(dataSeries);

            //将生产的图表增加到Grid,然后通过Grid添加到上层Grid.           
            Grid gr = new Grid();
            gr.Children.Add(chart);
            SimonMoney.Children.Add(gr);
        }
        #endregion
View Code

 

 同时还适用了定时刷新数据,频率为分钟,晚上8:00到早上7:00不刷新数据,这样减少服务器压力。

private DispatcherTimer RefreshDataTimer = null;

 RefreshDataTimer = new DispatcherTimer();
 RefreshDataTimer.Tick += new EventHandler(OnDataEvent);
 RefreshDataTimer.Interval = new TimeSpan(0, 5, 0);//5分钟一刷新
 RefreshDataTimer.Start();
复制代码
  //获取当前系统时间并判断是否为服务时间
            TimeSpan nowDt = DateTime.Now.TimeOfDay;

            TimeSpan workStartDT = DateTime.Parse("20:00").TimeOfDay;
            TimeSpan workEndDT = DateTime.Parse("08:00").TimeOfDay;
            if (nowDt > workStartDT && nowDt < workEndDT)
            {
                getdata();
            }
复制代码

以上说明了大概的实现思路。

 结束语

       现在大数据分析在我们日常开发软件中经常遇到,一旦有了这个经常会给软件打上高大上的标签,客户很青睐,报价多个一两万轻而易举的事情,后续还需继续完善,在市场上会越来越多的大屏展示数据有我们这样的软件出现。

 

 

下载地址:https://files.cnblogs.com/files/luoyuhao/大数据展示平台.rar 

 

 

出处:https://www.cnblogs.com/luoyuhao/p/12127588.html

posted on 2020-10-30 16:12  jack_Meng  阅读(2469)  评论(0编辑  收藏  举报

导航