Subway Map Visualization jQuery Plugin (铁路线路图)javascript
【下载地址】---》subwayMap Plugin 0.5.0.zip java
【应用范围】node
一、铁路、公路、飞机等线路图的设计,图形化显示;jquery
二、电子电路设计图;数据库
三、社交群显示、网络图、办公路线等等;canvas
四、你的想象有多么丰富就有多少应用~~~网络
【使用体验】ide
首先,像其余的jQuery插件同样添加jQuery库和插件的Js库。布局
<script src="res/newjs/jquery-1.2.6.js" type="text/javascript"></script>
<script src="res/newjs/index_new.js?v=20101208" type="text/javascript"></script>ui
而后定义咱们的画布DIV
<div id = “subway_canvas”></div>
使用jquery选择器让咱们的铁路图生效~
$(“#subway_canvas”) .subwayMap({ debug: true });
参数说明:debug:[true|false] 调试模式 打开时能够在JS控制台显示调试信息;
下面看看线路节点是怎么设置的:
经过Demo能够知道,这是典型的导航型插件,经过UL和LI标签订义节点。而<canvas>则能够设置背景等信息,<canvas>是使用网格布局;而不一样的地图能够在一个网格上重叠,只要使用不一样的UL标签标识就OK。看一看都有哪些信息能够设置:
Canvas参数说明:
(DIV)data-columns:<canvas>的网格列数;
(DIV)data-rows:<canvas>的网格行数;
(DIV)data-cellSize:每一个网格的大小,大小为像素;整个<canvas>的大小=data_colums*data-cellSize-data_rows*data-cellSize;
(DIV)data-legendId:地图的图例位置,输入的是一个<div>的id;
(DIV)data-textClass:地图节点的文字样式;
(DIV)data-gridNumbers:是否显示网格的行列数;
(DIV)data-grid:是否显示网格;
(DIV)data-lineWidth:地图路线的宽度,像素值;
了解了这些,咱们就能够开始咱们的地图绘制了,
先画一个点吧:
<ul data-color="#ff4db2" data-label="jQuery Widgets">
<li data-coords="2,2" data-labelPos="N"><a href="http://jqueryui.com/demos/accordion/">Accordion</a></li>
<li data-coords="2,2" data-labelPos="S"><a href="http://jqueryui.com/demos/accordion/">Accordion</a></li>
</ul>
Canvas参数说明:
(UL)data-color:表示该线路的颜色;
(UL)data-label:该线路惟一的ID标识,也是图例显示的名称;
(LI)data-coords:该点的坐标,能够为浮点数;
(LI)data-labelPos:该点名称的显示位置,能够为N, E, S, W, NE, NW, SE, SW,默认为S;
这样我就能够很简单的画出了一条直线和两个点~~下面作一个比较完整的路线:
<ul data-color="#ff4db2" data-label="jQuery Widgets" data-shiftCoords="0,1">
<li data-coords="2,2" data-marker="interchange"><a href="http://jqueryui.com/demos/accordion/">Accordion</a></li>
<li data-coords="4,2"><a href="http://jqueryui.com/demos/autocomplete/">Auto\ncomplete</a></li>
<li data-coords="5,3" data-dir="E"></li>
<li data-coords="5,7" data-marker="@station" data-labelPos="W">Slider</li> <!-- marker-only node -->
<li data-coords="6,4" data-dir="S" data-marker="interchange" data-markerInfo="h5">Date\npicker</li>
<li data-coords="7,4"></li>
<li data-coords="7.15,8" data-marker="@station" data-labelPos="E">Dialog</li> <!-- marker-only node, moved to the right by 0.15 -->
<li data-coords="8,3" data-dir="E"></li>
<li data-coords="8,2"></li>
<li data-coords="9,1" data-dir="N"></li>
<li data-coords="10,2" data-dir="E" data-marker="interchange" data-labelPos="E">Button</li>
<li data-coords="10,5"></li>
<li data-coords="9,6" data-dir="S" data-marker="station">Progress\nbar</li>
<li data-coords="6,9"></li>
<li data-coords="5,8" data-dir="W"></li>
<li data-coords="5,7"></li>
<li data-coords="4,6" data-dir="N"></li>
<li data-coords="2,6">Tabs</li>
</ul>
Canvas参数说明:
(UL)data-shiftCoords:地图路线偏离原来的位置的大小,是一个x,y值对,能够为负数,正数表明向右向下移动;
(li)data-marker:地图上的地点表示,能够为”station” 和” interchange”,若是表示的地点不在连续的线路上,可使用”@station”或者”@interchange”表示;
(li)data-dir:为了实现地图的圆滑的效果,可使用拐角效果,该属性值能够为N,S,W,W表示拐角的方向;
(li)data-markerInfo:地图标志信息,表示地图的上的链接点,能够是两个不一样的路线,也能够是同一条路线,属性值为[v|h]+数值,v表示垂直方向,h表示水平方向,数值为像素,表示延伸的长度;
最后写一个比较完整的地图:
<ul data-color="#ff4db2" data-label="jQuery Widgets">
<li data-coords="2,2" data-marker="interchange"><a href="http://jqueryui.com/demos/accordion/">Accordion</a></li>
<li data-coords="4,2"><a href="http://jqueryui.com/demos/autocomplete/">Auto\ncomplete</a></li>
<li data-coords="5,3" data-dir="E"></li>
<li data-coords="5,7" data-marker="@station" data-labelPos="W">Slider</li> <!-- marker-only node -->
<li data-coords="6,4" data-dir="S" data-marker="interchange" data-markerInfo="h5">Date\npicker</li>
<li data-coords="7,4"></li>
<li data-coords="7.15,8" data-marker="@station" data-labelPos="E">Dialog</li> <!-- marker-only node, moved to the right by 0.15 -->
<li data-coords="8,3" data-dir="E"></li>
<li data-coords="8,2"></li>
<li data-coords="9,1" data-dir="N"></li>
<li data-coords="10,2" data-dir="E" data-marker="interchange" data-labelPos="E">Button</li>
<li data-coords="10,5"></li>
<li data-coords="9,6" data-dir="S" data-marker="station">Progress\nbar</li>
<li data-coords="6,9"></li>
<li data-coords="5,8" data-dir="W"></li>
<li data-coords="5,7"></li>
<li data-coords="4,6" data-dir="N"></li>
<li data-coords="2,6">Tabs</li>
</ul>
<ul data-color="#00ff00" data-label="jQuery Interactions" data-shiftCoords="0,-1">
<li data-coords="2,6"></li>
<li data-coords="2,5.9" data-marker="@interchange"> </li> <!-- marker-only node, moved up by 0.10 -->
<li data-coords="5,6" data-marker="@station" data-labelPos="N">Selectable</li>
<li data-coords="6,6"></li>
<li data-coords="7,3" data-marker="@station" data-labelPos="W">Resizeable</li>
<li data-coords="7,5" data-dir="E" data-marker="station" data-labelPos="E">Droppable</li>
<li data-coords="7,1" data-marker="interchange" data-labelPos="W">Draggable</li>
</ul>
【体验心得】
一个GreatTool,实现的效果很好,若是可以经过模版技术从后台直接读取存储好的数据,自动生成坐标点,或者经过Json数据设置坐标,那就更好;另外,能够经过设计反向程序,把设计图转化成数据存储在数据库中,会很是棒。一个高级的jQuery插件,可是使用方法十分简单。