JVectorMap 实现中国地图

     我借鉴的博客:http://dove19900520.iteye.com/blog/1880668

一、功能介绍
  JVectorMap是一款jquery的地图插件,可以支持各个国家和具体到省份的地图。

二、下载地址

  http://download.csdn.net/download/laoshanbizu/5488955

三、使用步骤

  1、引用

  <link href="js/jqvmap/jqvmap.css" media="screen" rel="stylesheet" type="text/css" />

  <script src="js/jqvmap/jquery-1.10.2.js" type="text/javascript"></script>

  <script src="js/jqvmap/jquery.vmap.min.js" type="text/javascript"></script>

     <script src="js/jqvmap/jquery-jvectormap-cn-mill-en.js" type="text/javascript"></script>   <!--中国地图数据-->

  2、在html里写好放置地图的div

<div id="container" style="width: 100%; height: 530px;"> </div>

  3、在script里实现脚本

<script type="text/javascript">var areaName = 'china';var color = "#ace1ff"; //子图块初始化颜色var backgroundColor = '#fff';//地图背景色var hoverColor = '#00CCFF';//鼠标移入时图块高亮显示的颜色var paramKey = "id";//请求展示数据时传入的参数keyvar paramValue = "";//请求展示数据时传入的参数valuevar showInfosUrl = "abc.action";//获取展示数据的URL,入参:图块ID,出参格式:[{“id”:”11”, ”personcount”:”29万”, ”name”:”beijing”, ”tel”:”13972271234”},...]var layId = 3;//图块层级//为子图块自定义颜色方案var colors=['#c7e8fb','#fcd68d','#d3e398'];//鼠标移入图块时显示的图块信息,用户可以自行修改其中的代码function labelShows(label,item){label.html(item.name+item.des);label.css({"font-size":"12px","color":"#000","background":"#fff","padding":"5px"});return label;}var areaValue;var dataStatus;var layer;var showInfos;$(function () {                areaValue = getMapData(areaName+"Map");//获取坐标信息dataStatus = getDataStatus(areaName+"DataStatus");//获取基础数据信息layer = getLayer(areaName+"Layer");//图块层级信息showInfos = getShowInfos(showInfosUrl,paramKey,paramValue);//获取展示数据信息common(areaName,areaValue,dataStatus,layer,showInfos);//加载图块。$('.jvectormap-zoomin').click();$('.jvectormap-zoomin,.jvectormap-zoomout').hide()//隐藏左侧点击放大缩小按钮
        });//获取展示数据function getShowInfos(showInfosUrl,paramKey,paramValue){var data;$.ajax({type : "post",async:false,url : showInfosUrl,data : paramKey + "=" + paramValue,async : false,success : function(result){data = result;}});return data;}//展现图块function common(areaName,areaValue,dataStatus,layer,showInfos){var index = 0;            $.fn.vectorMap('addMap',areaName,areaValue);$('#container').vectorMap({ map: areaName,color: color, //子图块初始化颜色backgroundColor: backgroundColor,//地图背景色hoverColor: hoverColor,//鼠标移入时图块高亮显示的颜色borderWidth : '1',//动态显示内容onLabelShow: function (event, label, code) {$.each(dataStatus, function (i, items) {if (code == items.cha) {/*$.each(showInfos,function(j,its){if(its.id == items.id){labelShows(label,its);}});*/labelShows(label,items);}});},});//为子图块配置颜色$.each(dataStatus,function(i,items){if(index >= colors.length){index = 0;}var jsonStr = "{" + items.cha + ":'"+colors[index]+"'}";$('#container').vectorMap('set', 'colors', eval('(' + jsonStr + ')'));index ++;});}</script>

在实际应用中我是用的ajax和json,先定义一个全局变量chinaDataStatus,拼完以后用它接收MapData ,注意必须把json串转成js对象,中括号拼在字符串里边,因为用ajax,所以必须还得注意下加载的先后顺序

var MapData;
for (var i = 0; i < myMap.length; i++) {if ((i + 1) == myMap.length) {MapData += "{ cha: '" + myMap[i].branch + "', name: '<b class=\"city\">" + myMap[i].branchtxt + ":</b>', des: '<div Class=\"MapData\"><span class=\"yusuan\">总保费:" + myMap[i].allins + "</span><span class=\"yusuan\">同比增长:" + myMap[i].allins_incrrate + "%</span><span class=\"yusuan\">长期险首年期交:" + myMap[i].longinsnewY + "</span><span class=\"yusuan\">短期险:" + myMap[i].shortins + "</span><span class=\"yusuan\">长险标准保费:" + myMap[i].total_std + "</span><span class=\"yusuan\" style=\"display:none\">等级:" + myMap[i].total_incr_class + "</span></Div>',grade: '"+ myMap[i].total_incr_class + "'}]";}else {if (i != 0) {MapData += "{ cha: '" + myMap[i].branch + "', name: '<b class=\"city\">" + myMap[i].branchtxt + ":</b>', des: '<div Class=\"MapData\"><span class=\"yusuan\">总保费:" + myMap[i].allins + "</span><span class=\"yusuan\">同比增长:" + myMap[i].allins_incrrate + "%</span><span class=\"yusuan\">长期险首年期交:" + myMap[i].longinsnewY + "</span><span class=\"yusuan\">短期险:" + myMap[i].shortins + "</span><span class=\"yusuan\">长险标准保费:" + myMap[i].total_std + "</span><span class=\"yusuan\" style=\"display:none\">等级:" + myMap[i].total_incr_class + "</span></Div>',grade: '"+ myMap[i].total_incr_class + "'},"; ;}else {
MapData = "[{ cha: '" + myMap[i].branch + "', name: '<b class=\"city\">" + myMap[i].branchtxt + ":</b>', des: '<div Class=\"MapData\"><span class=\"yusuan\">总保费:" + myMap[i].allins + "</span><span class=\"yusuan\">同比增长:" + myMap[i].allins_incrrate + "%</span><span class=\"yusuan\">长期险首年期交:" + myMap[i].longinsnewY + "</span><span class=\"yusuan\">短期险:" + myMap[i].shortins + "</span><span class=\"yusuan\">长险标准保费:" + myMap[i].total_std + "</span><span class=\"yusuan\" style=\"display:none\">等级:" + myMap[i].total_incr_class + "</span></Div>', grade: '"+ myMap[i].total_incr_class + "'},"; }
}

  chinaDataStatus=MapData;
  chinaDataStatus=eval(chinaDataStatus);

  dataStatus = chinaDataStatus;//获取基础数据信息

 

转载于:https://www.cnblogs.com/cjqa/p/4600131.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React开发(226):默认方法返回一个新的参数两个括号

<Form className{form-customer}><Form.Item style{{ width: 100% }}>{getFieldDecorator(needDeliverBackcode${row.code}, {})(<Checkbox onChange{(data) > this.handleCheck (data, row)}>是否回寄</Checkbox>)}</Form.Item></Form&g…

Linux 环境变量PATH设置和查看etc/profile和bashrc的区别

一、查看环境变量 echo $PATH echo有“显示、印出”的意思&#xff0c;而 PATH 前面加的 $ 表示后面接的是变量&#xff0c;所以会显示出目前的 PATH. PATH&#xff08;一定是大写&#xff09;这个变量的内容是由一堆目录所组成的&#xff0c;每个目录中间用冒号&#xff08;:&…

linux下 USB动态监测 hotplug事件监测

From: http://blog.csdn.net/qwyang/article/details/6425555 总体规划&#xff1a; 使用netlink接口向内核注册hotplug事件通知&#xff0c;获取事件通知后进行相关动作如&#xff08;Actionadd&#xff09;挂载或&#xff08;actionremove&#xff09;卸载&#xff0c;使用So…

android选择头像弹窗,Android App开发常用功能之用户头像选择-Go语言中文社区

前言现在的APP基本都有个人资料的填写&#xff0c;基本的都有头像的选择&#xff0c;支持拍照和从本地相册选择&#xff0c;剪切圆形头像的功能&#xff0c;现在用个小demo实现以下。下面看一下效果图上代码&#xff1a;主界面代码package com.example.androidpersonal_icon;im…

CentOS7 (64位) 下QT5.5 连接MySQL数据库(driver not loaded)

用qt连接MySQL需要共享库 libqsqlmysql.so的驱动&#xff0c;路径在plugin/sqldrivers目录下&#xff0c;乍看已经可用了&#xff0c;其实不然。 用ldd命令分析一下&#xff0c;libmysqlclient_r.so.16 > not found ,后明显libmysqlclient_r.so.16 缺少另一个共享库&#xf…

linux dhcp 服务(转)

大多数的情况下Linux作为DHCP服务器而windows 95/98作为DHCP客户。Linux也可以作为DHCP客户&#xff0c;即你要安装dhcpcd rpm 软件包 &#xff0c;Linux作为DHCP服务器&#xff0c;只需要安装dhcpd rpm 包。一.DHCP服务器工作的前提条件为了使DHCP服务器为windows机器服务&…

java jdk1.8.0_221 安装步骤

一、下载jdk Oracle JDK下载 官网 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载jdk1.8.0_221. 需要注册账号登陆才能下载。 下载完成&#xff0c;双击jdk-8u221-windows-x64.exe&#xff0c;进行安装。 二、安装jdk 安装前…

gsoap使用心得!

From: http://www.cppblog.com/qiujian5628/archive/2008/06/19/54019.html 完整源码下载 最近换了个工作环境&#xff0c;现在在大望路这边上班&#xff0c;呵&#xff0c;刚上班接到的任务就是熟悉gsoap&#xff01;废话少说&#xff0c;现在开始gSoap学习&#xff01;gSOAP…

android tabhost 多个activity,Android:TabHost中Activity的生命周期问题

用过TabHost制作多个activity的分页效果的朋友应该知道&#xff0c;tabhost中镶嵌的activity的onCreate和onDestroy是和tabhost关联的&#xff0c;在创建了tabhost之后&#xff0c;第一次访问某个activity会执行这个activity的oncreate事件&#xff0c;以后切回来时只会执行onR…

网站决策分析软件WebBI

为了提高网站的访问量、黏合度&#xff0c;网站的管理者投入大量的精力于市场推广、内容发布、网站业务改进等&#xff0c;而对于如何评估推广效果、如何了解网民的行为以提高网站的吸引力和服务质量很多网站都显的无力可施。经过互联网多年的发展&#xff0c;互联网网站之间的…

eclipse启动报错No java virtual machine was found after seearching the locations:XXXXX

一、问题描述 卸载之前的老版本JDK后&#xff0c;重新安装了JDK&#xff0c;再次打开eclipse出现以下问题&#xff1a;在指定的目录中找不到JDK虚拟机。 二、解决办法 eclipse启动时会根据eclipse.ini配置文件来找javaw.exe 启动ecplise GUI。 在eclipse安装的根目录中找到e…

网卡配置

网卡配置文件 &#xff08;1&#xff09;/etc/sysconfig/network-scripts/ifcfg-interface-name 配置文件ifcfg-interface-name包含了初始化接口所需的大部分详细信息。其中interface-name将根据网卡的类型和排序而不同&#xff0c;一般其名字为eth0、eth1、ppp0等&#xff0c…

linux ace platform_linux.gnu,Linux下配置和使用ACE笔记

1. 下载 ACE 5.7.从 http://download.dre.vanderbilt.edu/ 下载 ACETAOCIAO-5.7.tar.gz包。2. 解压将压缩包copy到linux目录/data/ACE里&#xff0c;然后解压, tar -zxvf ACETAOCIAO-5.7.tar.gz。解压后的目录是 /data/ACE_wrappers.3. 配置config.h和platform_macros.GNU。…

Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍

From: http://fedora.linuxsir.org/main/?qnode/41 作者&#xff1a;北南南北 来自&#xff1a;LinuxSir.Org 提要&#xff1a;Linux 磁盘分区表、文件系统的查看、统计的工具很多&#xff0c;有些工具是多功能的&#xff0c;不仅仅是查看磁盘的分区表&#xff0c;而且也能进行…

Android 机顶盒手势、数据分页演示DEMO

上篇讲了一篇机顶盒的一个封装类《GridView》&#xff0c;利用这个封装的GridView 可以实现一些例如移动、位移图标等基础组件“GridView”无法实现的一些功能。本篇将会提出一部分可供运行的代码演示一个分页、手势换屏的DEMO版本&#xff0c;供大家学习。 DEMO 的工程目录如下…

Java jdk中的部分工具javac javaw javaws javadoc javah javap jar jdb jps的作用

一、JDK 工具和实用程序 JDK提供的标准工具和程序 基本工具&#xff1a;javac, java, javadoc, apt, appletviewer, jar, jdb, javah, javap, extcheck安全工具&#xff1a;keytool, jarsigner, policytool, kinit, klist, ktab国际化工具&#xff1a;native2ascii远程方法调…

firefox android 去更新,Android版Firefox Beta发布更新

就在谷歌I/O大会前夕&#xff0c;Android版Firefox Beta悄悄的发布了一次更新。更新内容包括&#xff1a;Flash支持(虽然事实上在上个月的更新中就已经支持了)以及日常bug修复及稳定性提升等&#xff0c;不过依然没有加入复制和粘贴功能。此外Firefox Beta的UI界面也被重新设计…

Linux/UNIX的scp命令用法详解

From: http://www.ha97.com/4169.html PS&#xff1a;偶很喜欢用scp这个命令来传输数据。scp命令跟cp命令类似&#xff0c;只不过cp命令是在同一台机器上用的&#xff0c;scp是在两台机器上复制传输数据的命令。scp实质相当于利用SSH协议来传输数据的cp命令。 用法举例&#xf…