激情五月婷婷综合网_奇米精品一区二区三区四区_91在线码无精品_国产精品久久久久一区二区三区_日韩一区二区在线看_99国产欧美另类久久久精品_日韩电影免费一区_亚洲欧美在线另类_9色porny自拍视频一区二区_久久一区二区三区四区_日本在线不卡视频_欧美日韩三级一区二区_亚洲欧美日韩国产综合在线_国产精品影视网_欧美中文字幕一区_制服.丝袜.亚洲.中文.综合

0712-2888027 189-8648-0214
微信公眾號

孝感風信網絡科技有限公司微信公眾號

當前位置:主頁 > 技術支持 > Javascript/JQuery > 利用raphael.js繪制中國地圖結合項目完成地圖交互

利用raphael.js繪制中國地圖結合項目完成地圖交互

時間:2016-11-15來源:風信官網 點擊: 1009次
Raphael 是一個用于在網頁中繪制矢量圖形的 Javascript 庫。它使用 SVG W3C 推薦標準和 VML 作為創建圖形的基礎,你可以通過 JavaScript 操作 DOM 來輕松創建出各種復雜的柱狀圖、餅圖、曲線圖等各種圖表,還可以繪制任意形狀的圖形,可以進行圖表或圖像的裁剪和旋轉等復雜操作。
 
Raphaël 是跨瀏覽器的矢量圖形庫,目前支持的瀏覽器包括: Firefox 3.0+,Safari 3.0+,Chrome 5.0+,Opera 9.5+ 以及 Internet Explorer 6.0+。
 
風信建站在實際開發項目中的應用截圖演示:
利用raphael.js繪制中國地圖結合項目完成地圖交互

準備工作

我們需要準備一張矢量地圖,可以從網上找一張矢量地圖,或者使用illustrator繪制一份矢量地圖,然后導出為SVG格式的文件,這個文件可以在瀏覽器上打開,然后提取里面的path路徑信息(M開頭的坐標)。并將path路徑信息,按照chinamapPath.js的格式準備好地圖路徑信息。

var china = []; 
 
function paintMap(R) { 
    var attr = { 
        "fill""#97d6f5", 
        "stroke""#eee", 
        "stroke-width"1, 
        "stroke-linejoin""round" 
    }; 
 
    china.aomen = { 
        name: "澳門", 
        path: R.path("M413.032,.........省略若干......... ,414.183z").attr(attr) 
    } 
    china.hk = { 
        //格式同上 
    }} 

以上是我們將準備好的地圖路徑信息封裝到()函數中,并保存文件名為chinamapPath.js,供后面調用。

HTML

首先在head部分載入raphael.js庫文件和chinamapPath.js路徑信息文件。

<script type="text/javascript" src="raphael.js"></script> 
<script type="text/javascript" src="chinamapPath.js"></script> 

然后在body中需要放置地圖的位置放置div#map。

<div id="map"></div> 

JAVASCRIPT

首先我們在頁面中調用地圖,方法如下:

window.onload = function () { 
    //繪制地圖 
    var R = Raphael("map"600500);//將地圖載入到id為map的div中,并設置區域為600x500px大小。 
    paintMap(R); 
} 

這個時候我們用瀏覽器打開會顯示載入后的地圖。接下來我們要給地圖中的對應的省份區域加上省份名稱,以及鼠標滑向每個省份區塊時的變色動畫效果。

window.onload = function () { 
    var R = Raphael("map"600500); 
    //調用繪制地圖方法 
    paintMap(R); 
     
    var textAttr = { 
        "fill""#000", 
        "font-size""12px", 
        "cursor""pointer" 
    }; 
             
            
    for (var state in china) { 
        china[state]['path'].color = Raphael.getColor(0.9); 
                 
        (function (st, state) { 
             
            //獲取當前圖形的中心坐標 
            var xx = st.getBBox().x + (st.getBBox().width / 2); 
            var yy = st.getBBox().y + (st.getBBox().height / 2); 
             
            //寫入文字 
            china[state]['text'] = R.text(xx, yy, china[state]['name']).attr(textAttr); 
             
            st[0].onmouseover = function () {//鼠標滑向 
                st.animate({fill: st.color, stroke: "#eee"}500); 
                china[state]['text'].toFront(); 
                R.safari(); 
            }; 
            st[0].onmouseout = function () {//鼠標離開 
                st.animate({fill: "#97d6f5", stroke: "#eee"}500); 
                china[state]['text'].toFront(); 
                R.safari(); 
            }; 
                     
         })(china[state]['path'], state); 
    } 
} 

以上代碼中運用了raphael提供的方法有:getColor,getBBox,animate,toFront等等,這些可以在raphael文檔中找到使用說明,本文不在講述。

此外由于地圖尺寸原因,有些省份名稱在地圖中的顯示位置不恰當,需要修正偏移量,這樣看起來舒服點。

window.onload = function () { 
    var R = Raphael("map"600500); 
    ... 
    for (var state in china) { 
        ... 
        (function (st, state) { 
            .... 
            switch (china[state]['name']) { 
                case "江蘇": 
                    xx += 5; 
                    yy -= 10; 
                    break; 
                case "河北": 
                    xx -= 10; 
                    yy += 20; 
                    break; 
                case "天津": 
                    xx += 10; 
                    yy += 10; 
                    break; 
                case "上海": 
                    xx += 10; 
                    break; 
                case "廣東": 
                    yy -= 10; 
                    break; 
                case "澳門": 
                    yy += 10; 
                    break; 
                case "香港": 
                    xx += 20; 
                    yy += 5; 
                    break; 
                case "甘肅": 
                    xx -= 40; 
                    yy -= 30; 
                    break; 
                case "陜西": 
                    xx += 5; 
                    yy += 10; 
                    break; 
                case "內蒙古": 
                    xx -= 15; 
                    yy += 65; 
                    break; 
                default: 
            } 
            ... 
      })(china[state]['path'], state); 
   } 
} 

這樣一個基本的地圖效果就完成了,接下來我們要介紹結合jquery,PHP+MySQL讀取數據到地圖中來,并實現基本的動態加載數據和交互功能

 
實用網站:
 
raphael.js地圖演示地址:http://www.helloweba.com/demo/chinamap/
 
Raphael 官方網站地址:http://raphaeljs.com
 
Raphael 英文參考文檔:http://raphaeljs.com/reference.html
 
Raphael 中文幫助文檔:http://julying.com/lab/raphael-js/docs/
欄目列表
推薦內容
熱點內容
展開
激情五月婷婷综合网_奇米精品一区二区三区四区_91在线码无精品_国产精品久久久久一区二区三区_日韩一区二区在线看_99国产欧美另类久久久精品_日韩电影免费一区_亚洲欧美在线另类_9色porny自拍视频一区二区_久久一区二区三区四区_日本在线不卡视频_欧美日韩三级一区二区_亚洲欧美日韩国产综合在线_国产精品影视网_欧美中文字幕一区_制服.丝袜.亚洲.中文.综合
国产精品一品二品| 国产不卡一区视频| 国产成人免费网站| 日韩小视频在线观看专区| 最好看的中文字幕久久| 国产在线精品免费av| 欧美精品第一页| 亚洲精品国产a| 白白色 亚洲乱淫| 精品国产91久久久久久久妲己| 亚洲成人午夜电影| 91久久免费观看| 亚洲欧洲av另类| 成人丝袜18视频在线观看| 精品国产凹凸成av人导航| 日韩高清不卡一区二区三区| 欧洲另类一二三四区| 亚洲欧美另类久久久精品| 丁香激情综合国产| 国产亚洲精品免费| 狠狠久久亚洲欧美| 欧美不卡激情三级在线观看| 免费亚洲电影在线| 7777精品伊人久久久大香线蕉 | 国产精品毛片高清在线完整版| 久久精品久久99精品久久| 欧美精品日韩综合在线| 亚洲高清一区二区三区| 国产精品久久久久一区二区三区 | 成人18视频在线播放| 欧美精品一区男女天堂| 久久精品99久久久| 日韩欧美成人激情| 狠狠色狠狠色综合系列| 久久综合999| 国产精品911| 欧美国产日韩在线观看| 成人国产视频在线观看| 国产精品久久久久久亚洲伦| www.亚洲人| 亚洲欧美国产77777| 91精品91久久久中77777| 亚洲电影在线播放| 欧美猛男男办公室激情| 日本不卡一区二区三区高清视频| 日韩一区二区免费视频| 久久疯狂做爰流白浆xx| 久久蜜桃av一区二区天堂 | 欧美三区在线观看| 视频一区欧美精品| 日韩欧美国产三级电影视频| 经典三级视频一区| 亚洲国产精品国自产拍av| 99re8在线精品视频免费播放| 亚洲日本在线视频观看| 色8久久精品久久久久久蜜| 亚洲综合丁香婷婷六月香| 欧美日韩三级一区二区| 免费成人在线播放| 国产亚洲精久久久久久| 不卡一卡二卡三乱码免费网站| 亚洲女同ⅹxx女同tv| 欧美日韩美少妇| 奇米色777欧美一区二区| 精品国产精品网麻豆系列| 国产jizzjizz一区二区| 亚洲另类中文字| 51精品视频一区二区三区| 国产在线一区观看| 亚洲视频香蕉人妖| 欧美理论片在线| 国内精品视频666| 国产精品久久久久毛片软件| 欧美性猛交xxxxxxxx| 久久精品国产秦先生| 日本一区二区在线不卡| 在线日韩一区二区| 久久国产剧场电影| 国产精品久久久久久久久图文区| 欧美性猛片xxxx免费看久爱| 久热成人在线视频| 国产精品久久久久久久久动漫| 欧美色国产精品| 国产原创一区二区| 亚洲精品国产品国语在线app| 日韩一区二区在线观看| 久久蜜桃一区二区| 99久久99久久综合| 日本不卡高清视频| 国产精品欧美久久久久一区二区| 欧美综合色免费| 精品亚洲欧美一区| 亚洲老司机在线| 精品精品欲导航| 色激情天天射综合网| 久久精品国产精品青草| 欧美亚洲综合另类| 精品一区二区三区影院在线午夜| 亚洲图片激情小说| 精品久久国产老人久久综合| 91麻豆国产精品久久| 麻豆成人免费电影| 亚洲乱码一区二区三区在线观看| 日韩欧美美女一区二区三区| 不卡的av电影| 久久狠狠亚洲综合| 亚洲综合清纯丝袜自拍| 国产日产欧美精品一区二区三区| 欧美日产在线观看| 99精品欧美一区二区蜜桃免费| 麻豆精品一区二区| 亚洲精品综合在线| 久久免费电影网| 911精品产国品一二三产区| 成人av在线资源| 久久精品理论片| 亚洲午夜精品一区二区三区他趣| 国产亚洲成aⅴ人片在线观看| 欧美日韩国产综合草草| 成人高清免费观看| 久久99精品国产麻豆婷婷| 亚洲成人先锋电影| 国产精品久久久久影院色老大| 日韩午夜在线影院| 欧美这里有精品| 成人激情午夜影院| 国产精品一卡二卡| 免费人成精品欧美精品| 悠悠色在线精品| 国产精品久久久久四虎| 久久久久久久久免费| 91精品在线麻豆| 在线看国产一区| 99久久精品免费观看| 国产一区 二区| 美女视频免费一区| 亚洲资源中文字幕| 亚洲欧洲国产日韩| 国产视频一区二区在线观看| 日韩一卡二卡三卡国产欧美| 欧美性猛片aaaaaaa做受| 91丨九色porny丨蝌蚪| 大胆亚洲人体视频| 国产一区二区三区视频在线播放| 视频一区二区欧美| 亚洲成a人片综合在线| 亚洲精品视频一区| 国产精品网站在线| 国产日韩精品视频一区| 久久影视一区二区| 精品欧美一区二区在线观看| 日韩一级片网站| 欧美丰满少妇xxxxx高潮对白| 欧美午夜精品一区二区蜜桃| 色综合天天性综合| 91丨porny丨最新| 97久久超碰精品国产| 99国产精品久久久久久久久久久| 成人教育av在线| av一区二区三区黑人| 成人h动漫精品一区二区| 懂色av一区二区三区免费看| 国产一区二区三区观看| 国产一区二区美女| 国产精品亚洲第一| 粉嫩一区二区三区在线看| 国产成人午夜高潮毛片| 国产aⅴ精品一区二区三区色成熟| 国产盗摄一区二区| 成人高清免费在线播放| av男人天堂一区| 99国产欧美久久久精品| 91免费视频大全| 色诱视频网站一区| 色噜噜夜夜夜综合网| 色国产精品一区在线观看| 在线免费观看一区| 欧美精选午夜久久久乱码6080| 欧美日本免费一区二区三区| 欧美一区日韩一区| 精品99一区二区三区| 久久精品人人做人人综合| 日本一区二区三区高清不卡| 国产精品成人一区二区艾草| 亚洲激情男女视频| 调教+趴+乳夹+国产+精品| 蜜桃av一区二区在线观看| 国产美女av一区二区三区| 不卡一区二区在线| 欧洲国产伦久久久久久久| 欧美视频一区二区三区四区 | 亚洲欧美区自拍先锋| 一区二区三区日韩在线观看| 亚洲福利一区二区| 日韩精品一二三区| 国产一区二区三区免费看| www..com久久爱| 在线观看免费一区| 69久久99精品久久久久婷婷| 精品国内片67194|