1.首先导入各种js包:
<script type="text/javascript" src="../js/chinamapPath.js"></script>
<script type="text/javascript" src="../js/raphael.js"></script>
<script type="text/javascript" src="../js/g.raphael-min.js"></script>
<script type="text/javascript" src="../js/g.pie-min.js"></script>
<script type="text/javascript" src="../js/g.bar-min.js"></script>
2. 添加页面部分代码
<div id="china_map" style="margin-left:200px; margin-top:40px"></div>
3. 绘制地图部分代码:
$(function() {
Raphael.getColor.reset(); //色谱重置回红色
//创建一个画布对象用来绘制。你必须第一步就这么做,该实例将来调用的所有绘图方法都被绑定到这个画布。
var R = Raphael("china_map", 600, 500);
//调用绘制地图方法
paintMap(R);
var current = null;
//用于对鼠标点击次数的计数;
var result = 0;
//判断两次点击的区域名字的标志量;
var nameFlag = "";
var x=0;
var y=0;
var textAttr = {
"fill": "#000",
"font-size": "13px",
"cursor": "pointer" //光标的CSS类型,指针类型;
};
for (var state in china) {//state代表每个省,即就是用每个或区域来遍历整个地图区域;
//Raphael.getColor(0.9):每次调用返回色谱中的下一个颜色(返回颜色的十六进制表示)
china[state]['path'].color = Raphael.getColor(0.9);//分省区域着色
china[state]['path'].transform("t30,0");//地图的每个省的路径横向平移坐标(30px,0px)
(function (st, state) {
//获取每个区域的中心坐标(getBBox():返回指定元素的边界框,x:左上角X; y表示左上角y)
var xx = st.getBBox().x + (st.getBBox().width / 2);
var yy = st.getBBox().y + (st.getBBox().height / 2);
//***修改部分地图文字偏移坐标
switch (china[state]['name']) {
case "江苏":