jVectorMap地图插件只要浏览器技术JavaScript、CSS,HTML,SVG或VML就可以浏览使用,不需要Flash或其他专有的浏览 器插件。所以jVectorMap在所有现代移动浏览器上也能正常运行。

官方网站:

http://jvectormap.com/

1、需要引入的脚本

     <link href="jvectormap/jquery.vector-map.css" media="screen" rel="stylesheet" type="text/css" />
<script src="jvectormap/jquery-1.6.min.js" type="text/javascript"></script>
<script src="jvectormap/jquery.vector-map.js" type="text/javascript"></script>
<script src="jvectormap/china-zh.js" type="text/javascript"></script>

2、前端显示片段

<script type="text/javascript">
$(function () {
/*id为中国省份标识符,name为对应省份名称,两者固定。value为活动情况,
  url为活动列表页面地址,数据可后台动态生成,这两项有活动的地区填写,无则留空。*/
/*var dataStatus =
[{ id: 'HKG', name: '香港:', value: '6', url: '#' },
{ id: 'HAI', name: '海南:', value: '0', url: '#' },
{ id: 'YUN', name: '云南:', value: '0', url: '#' },
{ id: 'BEJ', name: '北京:', value: '3', url: '#' },
{ id: 'TAJ', name: '天津:', value: '0', url: '#' },
{ id: 'XIN', name: '新疆:', value: '0', url: '#' },
{ id: 'TIB', name: '西藏:', value: '0', url: '#' },
{ id: 'QIH', name: '青海:', value: '0', url: '#' },
{ id: 'GAN', name: '甘肃:', value: '0', url: '#' },
{ id: 'NMG', name: '内蒙古:', value: '0', url: '#' },
{ id: 'NXA', name: '宁夏:', value: '0', url: '#' },
{ id: 'SHX', name: '山西:', value: '0', url: '#' },
{ id: 'LIA', name: '辽宁:', value: '0', url: '#' },
{ id: 'JIL', name: '吉林:', value: '0', url: '#' },
{ id: 'HLJ', name: '黑龙江:', value: '0', url: '#' },
{ id: 'HEB', name: '河北:', value: '0', url: '#' },
{ id: 'SHD', name: '山东:', value: '0', url: '#' },
{ id: 'HEN', name: '河南:', value: '0', url: '#' },
{ id: 'SHA', name: '陕西:', value: '0', url: '#' },
{ id: 'SCH', name: '四川:', value: '1', url: '#' },
{ id: 'CHQ', name: '重庆:', value: '0', url: '#' },
{ id: 'HUB', name: '湖北:', value: '1', url: '#' },
{ id: 'ANH', name: '安徽:', value: '0', url: '#' },
{ id: 'JSU', name: '江苏:', value: '0', url: '#' },
{ id: 'SHH', name: '上海:', value: '0', url: '#' },
{ id: 'ZHJ', name: '浙江:', value: '0', url: '#' },
{ id: 'FUJ', name: '福建:', value: '0', url: '#' },
{ id: 'TAI', name: '台湾:', value: '0', url: '#' },
{ id: 'JXI', name: '江西:', value: '0', url: '#' },
{ id: 'HUN', name: '湖南:', value: '5', url: '#' },
{ id: 'GUI', name: '贵州:', value: '0', url: '#' },
{ id: 'GXI', name: '广西:', value: '0', url: '#' },
{ id: 'GUD', name: '广东:', value: '9', url: '#'}];*/
var dataStatus = @Html.Raw(ViewData["mapDataJson"].ToString());
$('#map').vectorMap({
map: 'china_zh',
backgroundColor: false,
color: "#BBBBBB",
hoverColor: false,
//显示各地区名称和活动
onLabelShow: function (value, label, code) {
$.each(dataStatus, function (i, items) {
if (code == items.id) {
label.html(items.name + items.value);
}
});
},
//鼠标移入省份区域,改变鼠标状态
onRegionOver: function (value, code) {
$.each(dataStatus, function (i, items) {
if ((code == items.id) && (items.value != '')) {
$('#map').css({ cursor: 'pointer' });
var josnStr = "{" + items.id + ":'#00FF00'}";
$('#map').vectorMap('set', 'colors', eval('(' + josnStr + ')'));
}
});
},
//鼠标移出省份区域,改回鼠标状态
onRegionOut: function (value, code) {
$.each(dataStatus, function (i, items) {
if ((code == items.id) && (items.value != '')) {
$('#map').css({ cursor: 'auto' }); if (items.value != '') {
var josnStr = "{" + items.id + ":'#001F76'}";
$('#map').vectorMap('set', 'colors', eval('(' + josnStr + ')'));
$('#jvectormap1_'+items.id).attr("fill-opacity",(items.opacity));
}
else {
var josnStr = "{" + items.id + ":'#BBBBBB'}";
$('#map').vectorMap('set', 'colors', eval('(' + josnStr + ')'));
}
}
});
},
//点击有活动的省份区域,打开对应活动列表页面
onRegionClick: function (value, code) {
$.each(dataStatus, function (i, items) {
if ((code == items.id) && (items.value != '')) {
window.location.href = items.url;
}
});
}
});
//改变有活动省份区域的颜色
$.each(dataStatus, function (i, items) {
if (items.value != '') {
var josnStr = "{" + items.id + ":'#001F76'}";
$('#map').vectorMap('set', 'colors', eval('(' + josnStr + ')'));
$('#jvectormap1_'+items.id).attr("fill-opacity",(items.opacity));
}
});
});
</script>
</head>
<body>
<div id="map" style="margin-left: 45px; padding-top: 10px; padding-left: 10px; background: white;
width: 650px; height: 530px;">
</div>
<div style="width: 420px; height: 15px; margin: 0 auto; filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#BBBBBB',endColorStr='#001F76',gradientType='1');
background: -moz-linear-gradient(left, #BBBBBB, #001F76); background: -o-linear-gradient(left,#BBBBBB, #001F76);
background: -webkit-gradient(linear, % %, % %, from(#BBBBBB), to(#001F76));
position: relative;">
<div style="position: absolute; top: -18px;"> </div>
<div style="position: absolute; top: -18px; right: 0;">
@ViewData["maxAreaCount"]
</div>
</div>
</body>

3、控制器数据绑定片段

public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
//json转换
JavaScriptSerializer _ser = new JavaScriptSerializer(); Dictionary<string, string> _mapDataDic = new Dictionary<string, string>();
List<YcJVectorMap.Model.Map.data> _mapDataList = this.GetMapDefault(out _mapDataDic);
decimal maxAreaCount = ; //TODO:更改数值方法1
_mapDataList.Find(_ => _.id == "HKG").value = "";
_mapDataList.Find(_ => _.id == "MAC").value = "";
_mapDataList.Find(_ => _.id == "GUD").value = ""; //TODO:更改数值方法2
_mapDataList.Find(_ => _.name.Contains("北京")).value = "";
_mapDataList.Find(_ => _.name.Contains("海南")).value = ""; //TODO:获取标识最大值
ViewData["maxAreaCount"] = maxAreaCount = _mapDataList.Max(_ => Convert.ToDecimal(_.value)); //TODO:赋值透明度
foreach (var item in _mapDataList)
{
item.opacity = (Convert.ToDecimal(item.value) / maxAreaCount).ToString();
} //TODO:赋值Json
ViewData["mapDataJson"] = _ser.Serialize(_mapDataList); return View();
} /// <summary>
/// 获取初始化地图分布
/// </summary>
/// <returns></returns>
public List<YcJVectorMap.Model.Map.data> GetMapDefault(out Dictionary<string, string> mapDataDic)
{
List<YcJVectorMap.Model.Map.data> _mapDataList = new List<Model.Map.data>(); mapDataDic = new Dictionary<string, string>();
mapDataDic.Add("MAC", "澳门:");
mapDataDic.Add("HKG", "香港:");
mapDataDic.Add("HAI", "海南:");
mapDataDic.Add("YUN", "云南:");
mapDataDic.Add("BEJ", "北京:");
mapDataDic.Add("TAJ", "天津:");
mapDataDic.Add("XIN", "新疆:");
mapDataDic.Add("TIB", "西藏:");
mapDataDic.Add("QIH", "青海:");
mapDataDic.Add("GAN", "甘肃:");
mapDataDic.Add("NMG", "内蒙古:");
mapDataDic.Add("NXA", "宁夏:");
mapDataDic.Add("SHX", "山西:");
mapDataDic.Add("LIA", "辽宁:");
mapDataDic.Add("JIL", "吉林:");
mapDataDic.Add("HLJ", "黑龙江:");
mapDataDic.Add("HEB", "河北:");
mapDataDic.Add("SHD", "山东:");
mapDataDic.Add("HEN", "河南:");
mapDataDic.Add("SHA", "陕西:");
mapDataDic.Add("SCH", "四川:");
mapDataDic.Add("CHQ", "重庆:");
mapDataDic.Add("HUB", "湖北:");
mapDataDic.Add("ANH", "安徽:");
mapDataDic.Add("JSU", "江苏:");
mapDataDic.Add("SHH", "上海:");
mapDataDic.Add("ZHJ", "浙江:");
mapDataDic.Add("FUJ", "福建:");
mapDataDic.Add("TAI", "台湾:");
mapDataDic.Add("JXI", "江西:");
mapDataDic.Add("HUN", "湖南:");
mapDataDic.Add("GUI", "贵州:");
mapDataDic.Add("GXI", "广西:");
mapDataDic.Add("GUD", "广东:"); foreach (var item in mapDataDic)
{
_mapDataList.Add(new YcJVectorMap.Model.Map.data()
{
id = item.Key,
name = item.Value,
value = "",
url = "#"
});
} return _mapDataList;
}
}

演示效果如下:

github:

https://github.com/cheng5x/YcJVectorMap

oschina.net:

http://git.oschina.net/cheng5x/YcJVectorMap

JVectorMap地图插件.Net版开源的更多相关文章

  1. 中国地图插件世界地图||jQuery矢量SVG地图插件JVectorMap

    中国地图插件|jQuery矢量SVG地图插件JVectorMap https://www.html5tricks.com/jquery-china-map.html 世界地图: https://www ...

  2. 写markdown博客如何将截图快速上传到图床——记一个工具插件的实现(windows版 开源)

    打造一个上传图片到图床利器的插件(Mac版 开源)(2018-06-24 19:44) 更新于2018年2月 做了以下改动: 1.修复了一个bug,把服务器区域做成可配: 七牛有华北,华东,华南以及美 ...

  3. 打造一个上传图片到图床利器的插件(Mac版 开源)

    写markdown博客如何将截图快速上传到图床--记一个工具插件的实现(windows版 开源)(2017-05-31 20:23) 打造一个上传图片到图床利器的插件 鉴于写博客截图手动上传到图床的步 ...

  4. 几款JS地图插件比较

    因工作需要,最近研究几款关于地图的JS插件,现与大家分享一下. 以下比较只是浅层次的分析一下,并没有实际通过项目检验,所以不足之处还请大家指出. 地图插件对比 插件名  简介 区域支持 扩展性 离线支 ...

  5. 20+ 个很有用的 jQuery 的 Google 地图插件

    转自:http://www.oschina.net/translate/20-useful-jquery-google-maps-plugins Google 地图在寻找我们想要了解的商店或者其它有趣 ...

  6. python实现文章或博客的自动摘要(附java版开源项目)

    python实现文章或博客的自动摘要(附java版开源项目) 写博客的时候,都习惯给文章加入一个简介.现在可以自动完成了!TF-IDF与余弦相似性的应用(三):自动摘要 - 阮一峰的网络日志http: ...

  7. 7款个性化jQuery/HTML5地图插件

    现在我们经常会用到一些地图应用,无论是在网页上还是手机App中,地图貌似是一个不可或缺的应用.本文将带领大家一起来看看一些基于jQuery和HTML5的个性化地图插件,有几款地图比较实用,有些则是具有 ...

  8. 必应地图api文档,微软必应地图web开发版详解,可以在国内使用国外地图

    最近,公司项目要求在页面中嵌入地图,需求还算简单,但是由于必须具备响应式(主要是pc和移动端),而且由于公司业务是全球性的,要支持国外地点搜索.考虑到百度,腾讯,高德等等国内地图无法显示国外数据,谷歌 ...

  9. 网站开发中很有用的几个 jQuery 地图插件

    下面提到的 jQuery 地图插件不仅仅是提供一个简便的方式来安装一个地图,如果你想在它们之间选择一个放到你的网站上,那么它们还有更多的额外选项来提供更多更全面的功能.大部分的 jQuery 地图插件 ...

随机推荐

  1. jquery.fn.extend() 与 $.jquery 作用及区别

    原文:http://www.cnblogs.com/liu-l/p/3928373.html jQuery.extend()这个方法,主要是用来拓展个全局函数啦,例如$.ajax()这种,要不就是拓展 ...

  2. java内存溢出异常

    名称 特征 作用 配置参数 异常 程序 计数器 占用内存小,线程私有, 生命周期与线程相同 大致为字节码行号指示器 无 无 虚拟机栈 线程私有,生命周期与线程 相同,使用连续的内存空间 Java 方法 ...

  3. D3 data()

    与datum()的区别 假设要绑定的数组为[3,6,9],那么我们希望第一个p元素绑定3,第二个绑定6,第三个绑定9.这种情况就需要使用data()函数,如果使用datum(),则会将数组本身绑定到各 ...

  4. 初级 Web 开发人员的 Tomcat

    介绍使用 Tomcat 对 JavaServer Pages (JSP).servlet 和 Web 服务进行编程,Tomcat 是来自 Apache Foundation 的开源应用服务器.本教程引 ...

  5. R12 查询EBS用户相关SQL

    --R12查询EBS在线用户SQL SELECT U.USER_NAME,       APP.APPLICATION_SHORT_NAME,       FAT.APPLICATION_NAME,  ...

  6. FMX.Platform.TApplicationEvent

    FMX.Platform.TApplicationEvent http://docwiki.embarcadero.com/Libraries/Seattle/en/FMX.Platform.TApp ...

  7. [leetcode] 13. Remove Duplicates from Sorted List

    这个题目其实不难的,主要是我C++的水平太差了,链表那里绊了好久,但是又不像用python,所以还是强行上了. 题目如下: Given a sorted linked list, delete all ...

  8. Objective-C 学习笔记(五) 指针

    Objective-C 指针 每一个变量是一个内存位置和每一个存储单元都有其定义的地址,可以使用符号(&)的运算符,它表示内存中的地址访问. a. 我们定义一个指针变量 b. 分配一个指针变量 ...

  9. Elasticsearch 安装的时候,Unsupported major.minor version 51.0问题的解决

    Elasticsearch安装的时候报错 bootstrap/Elasticsearch : Unsupported major.minor version 51.0 网上一般说的方法是,升级或者降级 ...

  10. TFS (Team Foundation Server) 2013集成Maven构建

    Team Foundation Server原生就支持跨平台的构建,包括Ant和Maven两种构建方式.通过配置构建服务器,连接TFS源代码库,可以实现持续集成构建,自动检测代码库健康状况,进而实现自 ...