pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

HTML5繪制上海地鐵線路圖

HTML5繪制上海地鐵線路圖
注冊(cè)賬戶后可免費(fèi)下載此資源!
點(diǎn)擊下載

某市政項(xiàng)目用到地鐵圖展示,展示地鐵站點(diǎn)以及相關(guān)信息流,使用Qunee組件可以很好的解決這類(lèi)需求,做出優(yōu)美的展現(xiàn),下面以上海2012地鐵圖為例,效果如下:
 

HTML5繪制上海地鐵線路圖-【科e互聯(lián)】

 

示例講解

首先需要解決數(shù)據(jù)問(wèn)題,可以從維基百科或者上海地鐵官網(wǎng)中獲取,不過(guò)也免不了人工,要達(dá)到良好的顯示效果,需要不只要記錄站點(diǎn)的位置,還需要設(shè)置文本標(biāo)簽的理想位置,有時(shí)為了避免文字疊加,需要設(shè)置旋轉(zhuǎn)角度……總之事在人為,想想辦法,最終解決了數(shù)據(jù)問(wèn)題,再加上Qunee圖形組件的強(qiáng)大展示效果,做出來(lái)可以交互的在線地鐵圖

 

數(shù)據(jù)格式

采用JSON格式數(shù)據(jù),分三種類(lèi)型:文本標(biāo)簽、站點(diǎn)、地鐵線
總的結(jié)構(gòu)如下:

{
"labels" : [  ... ],
"stations" : [ ... ],
"lines" : [ ... ]
}

 

文本標(biāo)簽數(shù)據(jù)

包含坐標(biāo)和文字信息,如果文字需要旋轉(zhuǎn),則會(huì)增加”rotate”屬性,下面是“莘莊”文本標(biāo)簽信息

{
"text" : "莘莊",
"x" : 883.591,
"y" : 1625.695
}

文字與節(jié)點(diǎn)旋轉(zhuǎn)效果
 

HTML5繪制上海地鐵線路圖-【科e互聯(lián)】

 

站點(diǎn)數(shù)據(jù)

包含坐標(biāo)、旋轉(zhuǎn)角度以及編號(hào)信息,下面是“莘莊”站的信息

{
"id" : 5,
"x" : 869.8513512641732,
"y" : 1597.6559686949402,
"rotate" : 0.7853981633974483
}

 

地鐵線數(shù)據(jù)

包含名稱(chēng),顏色,以及經(jīng)過(guò)的站點(diǎn)編號(hào)

{
"name" : "1",
"color" : "#e52035",
"stations" : [64, 70, 67, 71, 72, 65, 69, 73, 66, 68, 63, 62, 22, 61, 60, {"id": 21, "yOffset": 0.5}, 59, {"id": 18, "yOffset": -0.5}, 17, 58, 14, 7, 57, 6,
56, 44, 47, 5]
}

對(duì)于特殊情況,比如兩條地鐵線共用一條線路的情況,會(huì)出現(xiàn)兩條線重合,為了避免這種情況,還可以指定站點(diǎn)橫向偏移量,比如上面一號(hào)線中的如下數(shù)據(jù)

{"id": 21, "yOffset": 0.5}

因?yàn)樯虾5罔F三號(hào)線與四號(hào)線共用線路較多,所以這種處理更加明顯

三號(hào)線數(shù)據(jù)

{
"name" : "3",
"color" : "#f9d300",
"stations" : [6, 95, 96, 97, {"id":12,"yOffset":0.5}, {"id":11,"yOffset":0.5}, {"id":8,"yOffset":0.5}, {"id":9,"yOffset":0.5},
{"id":10,"yOffset":0.5}, {"id":25,"yOffset":0.5}, {"id":26,"yOffset":0.5}, {"id":238,"yOffset":0.5}, {"id":22,"yOffset":-0.5}, {"id":27,"yOffset":-0.5},
98, 99, 100, 101, 104, 105, 107, 108, 109, 106, 110, 111]
}

地鐵共線效果
 

HTML5繪制上海地鐵線路圖-【科e互聯(lián)】



創(chuàng)建圖元

數(shù)據(jù)需要轉(zhuǎn)換成qunee圖元對(duì)象,三種類(lèi)型分別對(duì)應(yīng)三個(gè)創(chuàng)建函數(shù)

 

創(chuàng)建文本標(biāo)簽

function createText(name, x, y, rotate){
    var text = graph.createNode(name, x, y);
    if(rotate){
        text.rotate = rotate;
    }
    text.zIndex = 20;
    text.image = null;
    text.setStyle(Q.Styles.BACKGROUND_COLOR, Q.toColor(0x88FFFFFF));
    text.setStyle(Q.Styles.LABEL_ANCHOR_POSITION, Q.Position.LEFT_BOTTOM);
    text.setStyle(Q.Styles.LABEL_POSITION, Q.Position.CENTER_MIDDLE);
    text.setStyle(Q.Styles.LABEL_PADDING, PADDING);
    return text;
}

 

創(chuàng)建站點(diǎn)

function createStation(station){
    var node = graph.createNode(null/**station.name*/, station.x, station.y);
    node.stationId = station.id;
    node.setStyle(Q.Styles.LABEL_FONT_SIZE, 10);
    node.setStyle(Q.Styles.LABEL_ANCHOR_POSITION, Q.Position.CENTER_MIDDLE);
    node.setStyle(Q.Styles.LABEL_POSITION, Q.Position.CENTER_MIDDLE);
    node.zIndex = 10;
    if(station.rotate){
        node.image = roundRect;
        node.rotate = station.rotate;
    }else{
        node.image = circle;
    }
    node.setStyle(Q.Styles.SHAPE_FILL_COLOR, "#FFF");
    node.setStyle(Q.Styles.SHAPE_STROKE_STYLE, "#000");
    return node;
}

 

創(chuàng)建地鐵線

createLine(…)函數(shù)用于創(chuàng)建地鐵線,使用了節(jié)點(diǎn)類(lèi)型圖元,并設(shè)置節(jié)點(diǎn)主體為路徑,函數(shù)updateLine(…)用于從站點(diǎn)信息自動(dòng)生成線路路徑


function createLine(line){ var stations = line.stations;

var node = graph.createNode(line.name); node.stations = stations; node.movable = false; node.setStyle(Q.Styles.LABEL_FONT_SIZE, 50); node.setStyle(Q.Styles.LABEL_COLOR, line.color); node.setStyle(Q.Styles.LABEL_ANCHOR_POSITION, Q.Position.LEFT_BOTTOM); node.setStyle(Q.Styles.LABEL_POSITION, Q.Position.LEFT_TOP); node.setStyle(Q.Styles.LAYOUT_BY_PATH, true); node.anchorPosition = null; node.setStyle(Q.Styles.SHAPE_STROKE, size); node.setStyle(Q.Styles.SHAPE_STROKE_STYLE, line.color);

updateLine(node, true); return node; }

function updateLine(line, addListener){ var path = new Q.Path(); line.image = path;

var stations = line.stations; var first = true; Q.forEach(stations, function(s){ var station = getStation(s.id || s); if(!station){ return; } if(addListener){ addLocationChangeListener(station.stationId, line); } var location = station.location; var x = location.x, y = location.y; if(s.yOffset){ var offset = s.yOffset * size; var rotate = station.rotate || 0; var sin = Math.sin(rotate); var cos = Math.cos(rotate); x += cos * offset; y += sin * offset; } if(first){ first = false; path.moveTo(x, y); }else{ path.lineTo(x, y); } }) }

 

交互處理

增加交互處理,監(jiān)聽(tīng)站點(diǎn)拖動(dòng)事件,保持地鐵路線跟隨站點(diǎn)位置變化


graph.interactionDispatcher.addListener(function(evt){ if(evt.kind != Q.InteractionEvent.ELEMENT_MOVING){ return; } var datas = evt.datas;

Q.forEach(datas, function(data){ if(!data.stationId){ return; } var listeners = stationLocationChangeListeners[data.stationId]; if(listeners){ for(var l in listeners){ updateLine(listeners[l]); } } }); });

 

在線示例

http://demo.qunee.com/#Shanghai Metro Map 2012

HTML5繪制上海地鐵線路圖
注冊(cè)賬戶后可免費(fèi)下載此資源!
點(diǎn)擊下載

相關(guān)素材推薦

主站蜘蛛池模板: 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 热风机_工业热风机生产厂家上海冠顶公司提供专业热风机图片价格实惠 | 无刷电机_直流无刷电机_行星减速机-佛山市藤尺机电设备有限公司 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 质构仪_鱼糜弹性仪-上海腾拔仪器科技有限公司 | 深圳市人通智能科技有限公司 | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 广西绿桂涂料--承接隔热涂料、隔音涂料、真石漆、多彩仿石漆等涂料工程双包施工 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | 穿线管|波纹穿线管|包塑金属软管|蛇皮管?闵彬专注弱电工程? | 高柔性拖链电缆_卷筒电缆_耐磨耐折聚氨酯电缆-玖泰特种电缆 | 百度关键词优化_网站优化_SEO价格 - 云无限好排名 | DWS物流设备_扫码称重量方一体机_快递包裹分拣机_广东高臻智能装备有限公司 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | 无轨电动平车_轨道平车_蓄电池电动平车★尽在新乡百特智能转运设备有限公司 | 净水器代理,净水器招商,净水器加盟-FineSky德国法兹全屋净水 | 高压直流电源_特种变压器_变压器铁芯-希恩变压器定制厂家 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 进口试验机价格-进口生物材料试验机-西安卡夫曼测控技术有限公司 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 | 金属波纹补偿器厂家_不锈钢膨胀节价格_非金属伸缩节定制-庆达补偿器 | 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 保定市泰宏机械制造厂-河北铸件厂-铸造厂-铸件加工-河北大件加工 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 太空舱_民宿太空舱厂家_移动房屋太空舱价格-豪品建筑 | 蓝鹏测控平台 - 智慧车间系统 - 车间生产数据采集与分析系统 | 清水混凝土修复_混凝土色差修复剂_混凝土色差调整剂_清水混凝土色差修复_河南天工 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 天然气分析仪-液化气二甲醚分析仪|传昊仪器| 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | 单电机制砂机,BHS制砂机,制沙机设备,制砂机价格-正升制砂机厂家 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 全自动贴标机-套标机-工业热风机-不干胶贴标机-上海厚冉机械 | 电缆接头_防水接头_电缆防水接头 - 乐清市新豪电气有限公司 | 外贸网站建设-外贸网站设计制作开发公司-外贸独立站建设【企术】 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 |