合作人:张思远
1、石家庄地铁规划图
本系统是基于以上的石家庄地铁规划图来实现的。
2、功能设计
(一)数据库设计
数据库中只有一个数据表。
数据表结构为{lineid, stationname, tinformation, ordnum}
数据表结构的含义为(线路号,站点名,换乘信息,站点在自己线路上的顺序),其中换乘信息记录的是该站点所在的另一条线路。
(二)站点查询
用户可通过输入起始站和终点站来查询线路信息,查询到的线路信息包括:换乘最少的线路、站点最少的线路,线路信息由文本域显示。
(三)地图显示
我们组和陈欢、王嘉梁他们组,以上面的石家庄地铁规划图为标准,一起做了svg图。
通过js代码可控制地图的放大、缩小、拖拽。
3、相关代码
(一)前端页面
1)
主页面为main.jsp,其为一个框架,分为三部分:head、index_in、foot。
head:head.jsp,为页眉。
index_in:index_in.jsp,其为一个小框架,分为两部分:search、map。
search:search.jsp,用于搜索线路和显示线路。
map:map.jsp,用于显示地图。
foot:foot.jsp,为页脚。
2)代码
main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .headframe{ width:100%; height:150px; border:0; } .mainframe{ width:100%; height:500px; border:0; } .footframe{ width:100%; height:60px; border:0; } </style> </head> <body> <iframe src="head.jsp" class="headframe" scrolling="no"></iframe> <iframe src="index_in.jsp" class="mainframe" scrolling="no" name="mainAction"></iframe> <iframe src="foot.jsp" class="footframe" scrolling="no"></iframe> </body> </html>
head.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #head{ background-color:#3F51B5; width:100%; height:150px; } #head P{ font-family:YouYuan; font-size:25px; color:#E8EAF6; position:absolute; left:60px; top:20px; } #head span{ family:YouYuan; size:20px; color:#E8EAF6; position:absolute; left:60px; top:70px; } #head-in{ background-color:#737DB5; height:30px; width:99%; position:absolute; top:120px; } </style> </head> <body> <div id="head"> <p>石家庄地铁</p> <span>SHIJIAZHUANG SUBWAY</span> <div id="head-in"> </div> </div> </body> </html>
index_in.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .searchframe{ width:300px; height:500px; border:0; } .mapframe{ width:1110px; height:500px; position:relative; left:5px; border:0; } </style> </head> <body> <iframe src="beginsearch.jsp" class="searchframe" scrolling="no"></iframe> <iframe src="map.jsp" class="mapframe" scrolling="no"></iframe> </body> </html>
beginsearch.jsp(此jsp是为了防止servlet传参的空指针问题)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="javax.servlet.http.HttpSession" %> <%@page import="javax.servlet.http.HttpServletResponse" %> <%@page import="javax.servlet.http.HttpServletRequest" %> <%@page import="com.Bean.*" %> <%@page import="java.util.List" %> <%@page import="java.util.ArrayList" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div{ background-color:#3F51B5; width:300px; height:500px; border-radius:5px; } div p{ font-family:YouYuan; font-size:20px; color:#E8EAF6; } div p input{ height:20px; border-radius:3px; border:0px; } #check{ width:70px; height:25px; border-radius:3px; color:white; background-color:#004D99; text-align:center; text-decoration:none; border:none; position:relative; left:110px; } #check:hover{ background-color:#6699CC; } #information{ width:260px; height:300px; border-radius:3px; display:block; margin:0 auto; font-family:YouYuan; font-size:13px; } </style> </head> <body> <div> <form action="${pageContext.request.contextPath}/Search/SubwaySearchServlet" method="post" onsubmit="return oncheck()"> <br/> <p> 起始站: <input type="text" name="start" id="start" placeholder=" Starting station"> </p> <p> 终点站: <input type="text" name="end" id="end" placeholder=" Ending station"> </p> <p><input type="submit" value="查询" name="check" id="check"></p> <textarea name="information" id="information" readonly="readonly"> 线路信息: </textarea> </form> </div> <script type="text/javascript"> function oncheck() { var start = document.getElementById("start"); var end = document.getElementById("end"); var strstart = start.value; var strend = end.value; if(strstart == '') { alert('起始站为空'); start.focus(); return false; } if(strend == '') { alert('终点站为空'); end.focus(); return false; } return true; } </script> </body> </html>
search.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="javax.servlet.http.HttpSession" %> <%@page import="javax.servlet.http.HttpServletResponse" %> <%@page import="javax.servlet.http.HttpServletRequest" %> <%@page import="com.Bean.*" %> <%@page import="java.util.List" %> <%@page import="java.util.ArrayList" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div{ background-color:#3F51B5; width:300px; height:500px; border-radius:5px; } div p{ font-family:YouYuan; font-size:20px; color:#E8EAF6; } div p input{ height:20px; border-radius:3px; border:0px; } #check{ width:70px; height:25px; border-radius:3px; color:white; background-color:#004D99; text-align:center; text-decoration:none; border:none; position:relative; left:110px; } #check:hover{ background-color:#6699CC; } #information{ width:260px; height:300px; border-radius:3px; display:block; margin:0 auto; font-family:YouYuan; font-size:13px; } </style> </head> <body> <div> <form action="${pageContext.request.contextPath}/Search/SubwaySearchServlet" method="post" onsubmit="return oncheck()"> <br/> <p> 起始站: <input type="text" name="start" id="start" placeholder=" Starting station"> </p> <p> 终点站: <input type="text" name="end" id="end" placeholder=" Ending station"> </p> <p><input type="submit" value="查询" name="check" id="check"></p> <textarea name="information" id="information" readonly="readonly"> 线路信息: ------------------------------ 换乘最少: <%List<Bean> l = (List<Bean>)session.getAttribute("list");int num=l.size();%> <%for(int i=0; i<l.size(); i++){%> <%=l.get(i).getStationname()%><%if((i+1 < l.size()) && l.get(i).getStationname().equals(l.get(i+1).getStationname())){ num=num-1;%><%="(换乘)"%><%}%> <%}%> <%="(共"+num+"站)" %> ------------------------------ 站点最少: <%List<Bean> l2 = (List<Bean>)session.getAttribute("list2");int num2=l2.size();%> <%for(int i=0; i<l2.size(); i++){%> <%=l2.get(i).getStationname()%> <%}%> <%="(共"+num2+"站)" %> ------------------------------ </textarea> </form> </div> <script type="text/javascript"> function oncheck() { var start = document.getElementById("start"); var end = document.getElementById("end"); var strstart = start.value; var strend = end.value; if(strstart == '') { alert('起始站为空'); start.focus(); return false; } if(strend == '') { alert('终点站为空'); end.focus(); return false; } if(strstart != ('上庄'||'西王'||'法医医院'||'军医医院'||'和平医院'||'烈士陵园'||'新百广场'||'大石桥'||'市招待所'||'北国商城'||'省博物馆'||'河北医大'||'建百大楼'||'艺术学校'||'谈固'||'白佛口'||'海世界'||'卓达星辰'||'石家庄东'||'东杜庄'||'东兆通'||'西庄'||'临济'||'行政中心'||'罗家南庄'||'罗家庄'||'罗家北庄'||'侯家庄'||'数路'||'只都'||'北白皮'||'蔡家岗'||'桃村'||'诸福屯'||'罗家庄'||'天元湖'||'天元湖西'||'北关'||'石家庄学院'||'正定'||'西关'||'神学院'||'市农科院'||'西古城'||'铁道学院'||'运河桥'||'蓝天圣木'||'长安公园'||'北国商城'||'河北大戏院'||'新世隆'||'东岗头'||'东三教'||'火车站'||'塔谈'||'塔谈南'||'南位'||'嘉华'||'河北科技大学'||'东尹村'||'楼底'||'于底'||'留营'||'油通村'||'栾城西'||'栾城'||'鹿泉一中'||'鹿泉医院'||'鹿泉中心'||'北海山'||'南新城'||'大郭镇'||'西三庄'||'水上公园'||'高柱'||'柏林路'||'市庄'||'十二中'||'新百广场'||'十一中'||'槐安大桥'||'中星路'||'火车站'||'金利街'||'印刷二厂'||'塔冢'||'裕华'||'裕华'||'南王'||'卓达'||'位同'||'中仰陵'||'南豆'||'韩通'||'北乐乡'||'南席'||'南席东'||'藁城西'||'藁城'||'藁城东'||'工业园'||'碧海蓝湾'||'东良厢'||'华医学院'||'滨河街(4号线)'||'塔谈南'||'南栾'||'涂料厂'||'赵卜口'||'南王'||'经济学院'||'东明商城'||'儿童医院'||'建百大楼'||'长安医院'||'建华市场'||'北翟营'||'高营镇'||'十里铺'||'滨河街(5号线)'||'华医学院'||'五星花园'||'碧海云天'||'审计厅'||'益友百货'||'和平医院'||'河北二建'||'和平西路'||'火车北站'||'市庄'||'军械学院'||'蓝天圣木'||'常青园'||'建华市场'||'南翟营'||'土贤庄'||'西兆通'||'东杜庄'||'南杨庄'||'东五女'||'西岗头'||'创业园'||'碧海云天'||'考试中心'||'槐安大桥'||'裕龙'||'人防大厦'||'新世隆'||'石门公园'||'省地震局'||'东明商城'||'国际城'||'二十里铺'||'海世界'||'北豆'||'南豆'||'东仰陵'||'工农路'||'郄马')){ alert('起始站错误'); start.focus(); return false; } if(strend != ('上庄'||'西王'||'法医医院'||'军医医院'||'和平医院'||'烈士陵园'||'新百广场'||'大石桥'||'市招待所'||'北国商城'||'省博物馆'||'河北医大'||'建百大楼'||'艺术学校'||'谈固'||'白佛口'||'海世界'||'卓达星辰'||'石家庄东'||'东杜庄'||'东兆通'||'西庄'||'临济'||'行政中心'||'罗家南庄'||'罗家庄'||'罗家北庄'||'侯家庄'||'数路'||'只都'||'北白皮'||'蔡家岗'||'桃村'||'诸福屯'||'罗家庄'||'天元湖'||'天元湖西'||'北关'||'石家庄学院'||'正定'||'西关'||'神学院'||'市农科院'||'西古城'||'铁道学院'||'运河桥'||'蓝天圣木'||'长安公园'||'北国商城'||'河北大戏院'||'新世隆'||'东岗头'||'东三教'||'火车站'||'塔谈'||'塔谈南'||'南位'||'嘉华'||'河北科技大学'||'东尹村'||'楼底'||'于底'||'留营'||'油通村'||'栾城西'||'栾城'||'鹿泉一中'||'鹿泉医院'||'鹿泉中心'||'北海山'||'南新城'||'大郭镇'||'西三庄'||'水上公园'||'高柱'||'柏林路'||'市庄'||'十二中'||'新百广场'||'十一中'||'槐安大桥'||'中星路'||'火车站'||'金利街'||'印刷二厂'||'塔冢'||'裕华'||'裕华'||'南王'||'卓达'||'位同'||'中仰陵'||'南豆'||'韩通'||'北乐乡'||'南席'||'南席东'||'藁城西'||'藁城'||'藁城东'||'工业园'||'碧海蓝湾'||'东良厢'||'华医学院'||'滨河街(4号线)'||'塔谈南'||'南栾'||'涂料厂'||'赵卜口'||'南王'||'经济学院'||'东明商城'||'儿童医院'||'建百大楼'||'长安医院'||'建华市场'||'北翟营'||'高营镇'||'十里铺'||'滨河街(5号线)'||'华医学院'||'五星花园'||'碧海云天'||'审计厅'||'益友百货'||'和平医院'||'河北二建'||'和平西路'||'火车北站'||'市庄'||'军械学院'||'蓝天圣木'||'常青园'||'建华市场'||'南翟营'||'土贤庄'||'西兆通'||'东杜庄'||'南杨庄'||'东五女'||'西岗头'||'创业园'||'碧海云天'||'考试中心'||'槐安大桥'||'裕龙'||'人防大厦'||'新世隆'||'石门公园'||'省地震局'||'东明商城'||'国际城'||'二十里铺'||'海世界'||'北豆'||'南豆'||'东仰陵'||'工农路'||'郄马')){ alert('终点站错误'); end.focus(); return false; } return true; } </script> </body> </html>
map.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="js/drag.js"></script> <style type="text/css"> #zoomSvg{ transform:scale(1.2,1.2); } </style> </head> <body> <div id="dragDiv"> <svg id="zoomSvg" width="1133" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1133 804" xmlns:ev="http://www.w3.org/2001/xml-events" height="804" xmlns:xlink="http://www.w3.org/1999/xlink"> <style type="text/css"><![CDATA[ .st2 {fill:#303030;font-family:Arial;font-size:5pt;font-weight:bold} .st4 {fill:#303030;font-family:宋体;font-size:10pt;font-weight:bold} .st3 {fill:#303030;font-family:宋体;font-size:5pt;font-weight:bold} .st1 {fill:#303030;font-family:宋体;font-size:9pt} ]]> </style> <defs> <linearGradient y1="0%" y2="100%" x2="0%" x1="0%" id="lg1"> <stop offset="0" stop-color="#fbfbfb"/> <stop offset="1" stop-color="#efefef"/> </linearGradient> </defs> <g transform="translate(5,5)" id="page1"> <path d="M502,0L0,0L-198.9,-208.5L-209.1,-198.9L-6.1,14L502,14L502,0z" stroke="#969696" fill="#00b4f0" transform="translate(610.06,222.79)" id="rivershape"/> <g transform="translate(805.06,223.3)" id="rivername"> <path fill-opacity="0.08" d="M4.4,2L67.6,2C68.9,2,70,3.1,70,4.4L70,13.1C70,14.4,68.9,15.5,67.6,15.5L4.4,15.5C3.1,15.5,2,14.4,2,13.1L2,4.4C2,3.1,3.1,2,4.4,2z" fill="#000000"/> <path d="M2.4,0L65.6,0C66.9,0,68,1.1,68,2.4L68,11.1C68,12.4,66.9,13.5,65.6,13.5L2.4,13.5C1.1,13.5,0,12.4,0,11.1L0,2.4C0,1.1,1.1,0,2.4,0z" stroke="#6d6d6d" fill="url(#lg1)"/> <text class="st1"> <tspan x="16" y="11.1">滹沱河</tspan> </text> </g> <path d="M0,0L468,0L468,5L0,5L0,0z" stroke="#d7091d" fill="#d7091d" transform="translate(212,415.17)" id="shape1"/> <path d="M30.2,0L-5.1,0L-4.3,48L.7,48L0,5L30.2,5L30.2,0z" stroke="#d7091d" fill="#d7091d" transform="translate(711.13,197.3)" id="shape2"/> <path d="M5,140.5L5,-2L-39.2,-49L-42.8,-45.6L0,0L0,140.5L5,140.5z" stroke="#d7091d" fill="#d7091d" transform="translate(750,291.3)" id="shape3"/> <path d="M60,0L0,0L-9.9,-12.9L-14.1,-10.1L-2.6,5L60,5L60,0z" stroke="#d7091d" fill="#d7091d" transform="translate(690,428.8)" id="shape4"/> <path d="M0,0L5,0L5,158.5L0,158.5L0,0z" stroke="#d7091d" fill="#d7091d" transform="translate(736.67,43.3)" id="shape5"/> <g transform="translate(733.5,40.13)" id="shape6"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">树路</tspan> </text> </g> <g transform="translate(733.5,70.43)" id="shape7"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">侯家庄</tspan> </text> </g> <g transform="translate(733.83,103.63)" id="shape8"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">罗家庄北</tspan> </text> </g> <g transform="translate(733.83,136.83)" id="shape9"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.84,0.55,-0.55,0.84,8.6,-6.1)"> <tspan x="25.6" y="13.5">罗家庄</tspan> </text> </g> <g transform="translate(733.83,168.63)" id="shape10"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">罗家庄南</tspan> </text> </g> <g transform="translate(720.58,194.13)" id="shape11"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.69,0.73,-0.73,0.69,-2,0.6)"> <tspan x="-31.9" y="-3.1">行政中心</tspan> </text> </g> <g transform="translate(703,207.48)" id="shape12"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-20.8" y="4.7">临济</tspan> </text> </g> <g transform="translate(746,284.96)" id="shape13"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">西庄</tspan> </text> </g> <g transform="translate(746.83,314.96)" id="shape14"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">东兆通</tspan> </text> </g> <g transform="translate(746.83,347.63)" id="shape15"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.61,-0.8,0.8,0.61,-11.6,4.9)"> <tspan x="-23.8" y="13.2">东杜庄</tspan> </text> </g> <g transform="translate(746.83,380.3)" id="shape16"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">石家庄东</tspan> </text> </g> <g transform="translate(746,425.63)" id="shape17"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="23.9">卓达星辰</tspan> </text> </g> <g transform="translate(715.66,424.63)" id="shape18"> <path stroke-width="3" d="M10.6,0L5.3,0C2.4,0,0,2.5,0,5.7C0,8.8,2.4,11.3,5.3,11.3L10.6,11.3" stroke="#d7091d" fill="#ffffff" transform="matrix(0,1,-1,0,11.3,0)"/> <path stroke-width="3" d="M0,0L5.3,0C8.3,0,10.6,2.5,10.6,5.7C10.6,8.8,8.3,11.3,5.3,11.3L0,11.3" stroke="#30c9f7" fill="#ffffff" transform="matrix(0,1,-1,0,11.3,10.6)"/> <text class="st3" transform="matrix(0.63,0.78,-0.78,0.63,6.3,2.1)"> <tspan x="-22" y="9.6">海世界</tspan> </text> </g> <g transform="translate(672.33,411.63)" id="shape19"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">白佛口</tspan> </text> </g> <g transform="translate(641.83,413)" id="shape20"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="-8.5">谈固</tspan> </text> </g> <g transform="translate(610.83,412)" id="shape21"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">艺术学校</tspan> </text> </g> <g transform="translate(579.83,412.33)" id="shape22"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.85,0.52,-0.52,0.85,8.1,-6.1)"> <tspan x="25.8" y="13.2">建百大楼</tspan> </text> </g> <g transform="translate(548.83,413)" id="shape23"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">河北医大</tspan> </text> </g> <g transform="translate(517.83,412.33)" id="shape24"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">省博物馆</tspan> </text> </g> <g transform="translate(486.33,412.33)" id="shape25"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.85,0.52,-0.52,0.85,8.1,-6.1)"> <tspan x="25.8" y="13.2">北国商城</tspan> </text> </g> <g transform="translate(455.83,412.33)" id="shape26"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">市招待所</tspan> </text> </g> <g transform="translate(424.83,412.33)" id="shape27"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">大石桥</tspan> </text> </g> <g transform="translate(394.55,412.33)" id="shape28"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.85,0.52,-0.52,0.85,8.1,-6.1)"> <tspan x="25.8" y="13.2">新百广场</tspan> </text> </g> <g transform="translate(362.83,412.33)" id="shape29"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">烈士陵园</tspan> </text> </g> <g transform="translate(332.33,412)" id="shape30"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.85,0.53,-0.53,0.85,8.1,-6.1)"> <tspan x="25.7" y="13.3">和平医院</tspan> </text> </g> <g transform="translate(301.83,412.33)" id="shape31"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">军医医院</tspan> </text> </g> <g transform="translate(270.33,412.33)" id="shape32"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">法医医院</tspan> </text> </g> <g transform="translate(239.33,412.33)" id="shape33"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="-8.5">西王</tspan> </text> </g> <g transform="translate(208.83,412)" id="shape34"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="-8.5">上庄</tspan> </text> </g> <g transform="translate(677.34,51.45)" id="shape35"> <text class="st4"> <tspan x="15.4" y="14.7">1号线</tspan> </text> </g> <g transform="translate(147.33,409.7)" id="shape36"> <text class="st4"> <tspan x="15.4" y="14.7">1号线</tspan> </text> </g> <!--1号线:shape1到shape36--> <path d="M62.5,0L-5,0L-5,49L0,49L0,5L62.5,5L62.5,0z" stroke="#813f84" fill="#813f84" transform="translate(432,513)" id="shape37"/> <path d="M5,0L5,52L5,54.1L-71.2,131.8L-74.8,128.2L0,52L0,0L5,0z" stroke="#813f84" fill="#813f84" transform="translate(583,140)" id="shape38"/> <path d="M0,0L313,0L313,5L0,5L0,0z" stroke="#813f84" fill="#813f84" transform="translate(583,140)" id="shape39"/> <path d="M5,0L5,33.5L5,35.6L-15.8,57.3L-19.2,53.7L0,33.5L0,0L5,0z" stroke="#813f84" fill="#813f84" transform="translate(508.5,268.5)" id="shape40"/> <path d="M0,0L5,0L5,195.5L0,195.5L0,0z" stroke="#813f84" fill="#813f84" transform="translate(489.5,321.5)" id="shape41"/> <path d="M5,96L5,-5L-30,-5L-30,0L0,0L0,96L5,96z" stroke="#813f84" fill="#813f84" transform="translate(459,562)" id="shape42"/> <path d="M5,102L5,-5L-134,-5L-134,0L0,0L0,102L5,102z" stroke="#813f84" fill="#813f84" transform="translate(595,658)" id="shape43"/> <path d="M0,0L161,0L161,5L0,5L0,0z" stroke="#813f84" fill="#813f84" transform="translate(595,755)" id="shape44"/> <g transform="translate(887.83,136.83)" id="shape45"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="-8.5">只都</tspan> </text> </g> <g transform="translate(857.34,136.83)" id="shape46"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">北白皮</tspan> </text> </g> <g transform="translate(826.67,136.83)" id="shape47"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">蔡家岗</tspan> </text> </g> <g transform="translate(796,136.83)" id="shape48"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="-8.5">桃村</tspan> </text> </g> <g transform="translate(765.33,136.83)" id="shape49"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">诸福屯</tspan> </text> </g> <g transform="translate(733.83,136.83)" id="shape50"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.84,0.55,-0.55,0.84,8.6,-6.1)"> <tspan x="25.6" y="13.5">罗家庄</tspan> </text> </g> <g transform="translate(702,136.83)" id="shape51"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">天元湖</tspan> </text> </g> <g transform="translate(672.33,136.83)" id="shape52"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">天元湖西</tspan> </text> </g> <g transform="translate(642.66,136.83)" id="shape53"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="-8.5">北关</tspan> </text> </g> <g transform="translate(609,136.83)" id="shape54"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-7.5" y="-8.5">石家庄学院</tspan> </text> </g> <g transform="translate(579.83,136.83)" id="shape55"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="-8.5">正定</tspan> </text> </g> <g transform="translate(579.83,168.63)" id="shape56"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">西关</tspan> </text> </g> <g transform="translate(555.59,213.3)" id="shape57"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">神学院</tspan> </text> </g> <g transform="translate(529.33,238.33)" id="shape58"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">市农科院</tspan> </text> </g> <g transform="translate(505.33,265.33)" id="shape59"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">西古城</tspan> </text> </g> <g transform="translate(505.33,297)" id="shape60"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">铁道学院</tspan> </text> </g> <g transform="translate(486.33,318.33)" id="shape61"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">运河桥</tspan> </text> </g> <g transform="translate(486.33,348.21)" id="shape62"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.9,-0.44,0.44,0.9,1.1,6.8)"> <tspan x="26.2" y="3">蓝天圣木</tspan> </text> </g> <g transform="translate(486.83,380.83)" id="shape63"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">长安公园</tspan> </text> </g> <g transform="translate(486.33,412.33)" id="shape64"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.85,0.52,-0.52,0.85,8.1,-6.1)"> <tspan x="25.8" y="13.2">北国商城</tspan> </text> </g> <g transform="translate(486.33,445.11)" id="shape65"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">河北大戏院</tspan> </text> </g> <g transform="translate(486.33,477.55)" id="shape66"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.89,0.46,-0.46,0.89,6.6,-5.8)"> <tspan x="26.1" y="12.6">新世隆</tspan> </text> </g> <g transform="translate(486.33,509.83)" id="shape67"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">东岗头</tspan> </text> </g> <g transform="translate(455.83,508.66)" id="shape68"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">东三教</tspan> </text> </g> <g transform="translate(423.83,529.33)" id="shape69"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.69,-0.72,0.72,0.69,-10.2,2.9)"> <tspan x="-24.7" y="12.4">火车站</tspan> </text> </g> <g transform="translate(455.83,555.3)" id="shape70"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="21.7" y="6.7">塔谈</tspan> </text> </g> <g transform="translate(455.83,587.3)" id="shape71"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.7,-0.71,0.71,0.7,-10,2.6)"> <tspan x="-24.8" y="12.2">塔谈南</tspan> </text> </g> <g transform="translate(455.83,617.63)" id="shape72"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">南位</tspan> </text> </g> <g transform="translate(455.33,649.83)" id="shape73"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="23.9">嘉华</tspan> </text> </g> <g transform="translate(506,650.3)" id="shape74"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-11.1" y="23.9">河北科技大学</tspan> </text> </g> <g transform="translate(548.83,649.83)" id="shape75"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">东尹村</tspan> </text> </g> <g transform="translate(591.83,650.3)" id="shape76"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">楼底</tspan> </text> </g> <g transform="translate(591.83,703.15)" id="shape77"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">于底</tspan> </text> </g> <g transform="translate(591.83,734.63)" id="shape78"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">留营</tspan> </text> </g> <g transform="translate(621.98,751.83)" id="shape79"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">油通村</tspan> </text> </g> <g transform="translate(677.32,751.83)" id="shape80"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">栾城西</tspan> </text> </g> <g transform="translate(747.83,751.83)" id="shape81"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="23.9">栾城</tspan> </text> </g> <g transform="translate(898,136.83)" id="shape82"> <text class="st4"> <tspan x="15.4" y="14.7">2号线</tspan> </text> </g> <g transform="translate(722.17,730.75)" id="shape83"> <text class="st4"> <tspan x="15.4" y="14.7">2号线</tspan> </text> </g> <!--2号线:shape37到shape83--> <path d="M0,0L681,0L681,5L0,5L0,0z" stroke="#0168a5" fill="#0168a5" transform="translate(398.5,532.28)" id="shape84"/> <path d="M0,0L5,0L5,216.5L0,216.5L0,0z" stroke="#0168a5" fill="#0168a5" transform="translate(397.72,320.78)" id="shape85"/> <path d="M0,0L361.5,0L361.5,5L0,5L0,0z" stroke="#0168a5" fill="#0168a5" transform="translate(44,318.78)" id="shape86"/> <g transform="translate(1067.66,528.11)" id="shape87"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">工业园</tspan> </text> </g> <g transform="translate(1036.33,528.11)" id="shape88"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">藁城东</tspan> </text> </g> <g transform="translate(1005.33,528.11)" id="shape89"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="23.9">藁城</tspan> </text> </g> <g transform="translate(974.33,528.11)" id="shape90"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">藁城西</tspan> </text> </g> <g transform="translate(876.98,528.11)" id="shape91"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">南席东</tspan> </text> </g> <g transform="translate(833.32,528.11)" id="shape92"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="23.9">南席</tspan> </text> </g> <g transform="translate(789.66,528.11)" id="shape93"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">北乐乡</tspan> </text> </g> <g transform="translate(746,528.11)" id="shape94"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="23.9">韩通</tspan> </text> </g> <g transform="translate(715.33,529.11)" id="shape95"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.71,-0.71,0.71,0.71,5.2,8.8)"> <tspan x="24.2" y="0.1">南豆</tspan> </text> </g> <g transform="translate(685,528.11)" id="shape96"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">中仰陵</tspan> </text> </g> <g transform="translate(640.66,528.11)" id="shape97"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="23.9">位同</tspan> </text> </g> <g transform="translate(611.33,528.11)" id="shape98"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="23.9">卓达</tspan> </text> </g> <g transform="translate(579.83,528.11)" id="shape99"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.61,0.79,-0.79,0.61,15.9,-4.2)"> <tspan x="23.2" y="16.1">南王</tspan> </text> </g> <g transform="translate(548.83,528.11)" id="shape100"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="23.9">裕华</tspan> </text> </g> <g transform="translate(517.83,528.11)" id="shape101"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="23.9">塔家</tspan> </text> </g> <g transform="translate(486.83,528.11)" id="shape102"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="23.9">印刷二场</tspan> </text> </g> <g transform="translate(455.83,528.11)" id="shape103"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">金利街</tspan> </text> </g> <g transform="translate(423.83,529.11)" id="shape104"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.69,-0.72,0.72,0.69,-10.2,2.9)"> <tspan x="-24.7" y="12.4">火车站</tspan> </text> </g> <g transform="translate(393.66,508.44)" id="shape105"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.93,-0.37,0.37,0.93,-3.8,-0.9)"> <tspan x="-27.3" y="8.6">中星路</tspan> </text> </g> <g transform="translate(394.96,476.66)" id="shape106"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.86,0.51,-0.51,0.86,7.8,-6)"> <tspan x="25.8" y="13.1">槐安大桥</tspan> </text> </g> <g transform="translate(394.55,444.89)" id="shape107"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">十一中</tspan> </text> </g> <g transform="translate(394.55,412.11)" id="shape108"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.85,0.52,-0.52,0.85,8.1,-6.1)"> <tspan x="25.8" y="13.2">新百广场</tspan> </text> </g> <g transform="translate(394.96,380.61)" id="shape109"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">市二中</tspan> </text> </g> <g transform="translate(394.55,347.99)" id="shape110"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.85,0.52,-0.52,0.85,8.1,-6.1)"> <tspan x="25.8" y="13.2">市庄</tspan> </text> </g> <g transform="translate(394.96,315.37)" id="shape111"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">柏林路</tspan> </text> </g> <g transform="translate(362.83,315.61)" id="shape112"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="-8.5">高柱</tspan> </text> </g> <g transform="translate(332.33,315.61)" id="shape113"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">水上公园</tspan> </text> </g> <g transform="translate(301.83,315.61)" id="shape114"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">西三庄</tspan> </text> </g> <g transform="translate(251.83,315.61)" id="shape115"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">大郭镇</tspan> </text> </g> <g transform="translate(190.33,315.61)" id="shape116"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">南新城</tspan> </text> </g> <g transform="translate(147.33,315.61)" id="shape117"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">北海山</tspan> </text> </g> <g transform="translate(104.33,315.61)" id="shape118"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">鹿泉中心</tspan> </text> </g> <g transform="translate(73.33,315.61)" id="shape119"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">鹿泉医院</tspan> </text> </g> <g transform="translate(42.33,315.61)" id="shape120"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">鹿泉一中</tspan> </text> </g> <g transform="translate(28,330.78)" id="shape121"> <text class="st4"> <tspan x="15.4" y="14.7">3号线</tspan> </text> </g> <g transform="translate(992,556.9)" id="shape122"> <text class="st4"> <tspan x="15.4" y="14.7">3号线</tspan> </text> </g> <!--3号线:shape84到shape123--> <path d="M250,0L0,0L-48.2,-49.9L-51.8,-46.5L-2.2,5L250,5L250,0z" stroke="#deb887" fill="#deb887" transform="translate(338,589.47)" id="shape124"/> <path d="M5,270.2L5,0L36,0L36,-5L0,-5L0,270.2L5,270.2z" stroke="#deb887" fill="#deb887" transform="translate(583,323.77)" id="shape125"/> <path d="M0,0L5,0L5,32.2L0,32.2L0,0z" stroke="#deb887" fill="#deb887" transform="translate(614,286.3)" id="shape126"/> <g transform="translate(610.83,283.13)" id="shape127"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">十里铺</tspan> </text> </g> <g transform="translate(610.66,315.59)" id="shape128"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">高营镇</tspan> </text> </g> <g transform="translate(579.83,315.59)" id="shape129"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-28" y="4.7">北翟营</tspan> </text> </g> <g transform="translate(579.83,348.21)" id="shape130"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.65,-0.76,0.76,0.65,-10.9,3.8)"> <tspan x="-31.5" y="12.7">建华市场</tspan> </text> </g> <g transform="translate(579.83,380.83)" id="shape131"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">长安医院</tspan> </text> </g> <g transform="translate(579.83,412.33)" id="shape132"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.85,0.52,-0.52,0.85,8.1,-6.1)"> <tspan x="25.8" y="13.2">建百大楼</tspan> </text> </g> <g transform="translate(579.83,445.11)" id="shape133"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">儿童医院</tspan> </text> </g> <g transform="translate(579.83,476.88)" id="shape134"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.61,-0.79,0.79,0.61,-11.5,4.7)"> <tspan x="-31.1" y="13.1">东明商城</tspan> </text> </g> <g transform="translate(579.83,502.63)" id="shape135"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">经济学院</tspan> </text> </g> <g transform="translate(579.83,528.33)" id="shape136"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.61,0.79,-0.79,0.61,15.9,-4.2)"> <tspan x="23.2" y="16.1">南王</tspan> </text> </g> <g transform="translate(579.83,585.33)" id="shape137"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">赵卜口</tspan> </text> </g> <g transform="translate(531.92,586.3)" id="shape138"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">涂料厂</tspan> </text> </g> <g transform="translate(486.83,586.3)" id="shape139"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="23.9">南栗</tspan> </text> </g> <g transform="translate(455.83,587.3)" id="shape140"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.7,-0.71,0.71,0.7,-10,2.6)"> <tspan x="-24.8" y="12.2">塔谈南</tspan> </text> </g> <g transform="translate(387.66,586.3)" id="shape141"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">滨河街</tspan> </text> </g> <g transform="translate(332.33,585.33)" id="shape142"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.87,-0.49,0.49,0.87,1.6,7.3)"> <tspan x="26" y="2.5">华医学院</tspan> </text> </g> <g transform="translate(306,561)" id="shape143"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">东良厢</tspan> </text> </g> <g transform="translate(282.33,535.63)" id="shape144"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">碧水蓝湾</tspan> </text> </g> <g transform="translate(240.58,551.42)" id="shape145"> <text class="st4"> <tspan x="15.4" y="14.7">4号线</tspan> </text> </g> <g transform="translate(579.83,261.45)" id="shape146"> <text class="st4"> <tspan x="15.4" y="14.7">4号线</tspan> </text> </g> <!--4号线:shape124到shape146--> <path d="M475.3,0L-5,0L-5,273.5L0,273.5L0,5L475.3,5L475.3,0z" stroke="#f08300" fill="#f08300" transform="translate(340.67,352.47)" id="shape147"/> <g transform="translate(807.83,349.3)" id="shape148"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">东五女</tspan> </text> </g> <g transform="translate(778.33,348.3)" id="shape149"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">南杨庄</tspan> </text> </g> <g transform="translate(746.83,347.63)" id="shape150"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.61,-0.8,0.8,0.61,-11.6,4.9)"> <tspan x="-23.8" y="13.2">东杜庄</tspan> </text> </g> <g transform="translate(709,347.63)" id="shape151"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">西兆通</tspan> </text> </g> <g transform="translate(648,348.3)" id="shape152"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">土贤庄</tspan> </text> </g> <g transform="translate(610.83,348.3)" id="shape153"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">南翟营</tspan> </text> </g> <g transform="translate(579.83,348.21)" id="shape154"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.65,-0.76,0.76,0.65,-10.9,3.8)"> <tspan x="-31.5" y="12.7">建华市场</tspan> </text> </g> <g transform="translate(533.08,348.21)" id="shape155"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="23.9">常青园</tspan> </text> </g> <g transform="translate(486.33,348.21)" id="shape156"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.9,-0.44,0.44,0.9,1.1,6.8)"> <tspan x="26.2" y="3">蓝天圣木</tspan> </text> </g> <g transform="translate(440.33,348.21)" id="shape157"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="23.9">军械学院</tspan> </text> </g> <g transform="translate(394.55,348.21)" id="shape158"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.85,0.52,-0.52,0.85,8.1,-6.1)"> <tspan x="25.8" y="13.2">市庄</tspan> </text> </g> <g transform="translate(362.83,349.3)" id="shape159"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="23.9">火车北站</tspan> </text> </g> <g transform="translate(332.33,348.21)" id="shape160"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-35.2" y="4.7">和平西路</tspan> </text> </g> <g transform="translate(332.33,380.83)" id="shape161"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-35.2" y="4.7">河北二建</tspan> </text> </g> <g transform="translate(332.33,412)" id="shape162"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.85,0.53,-0.53,0.85,8.1,-6.1)"> <tspan x="25.7" y="13.3">和平医院</tspan> </text> </g> <g transform="translate(332.33,445.11)" id="shape163"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-35.2" y="4.7">益友百货</tspan> </text> </g> <g transform="translate(332.33,476.88)" id="shape164"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-28" y="4.7">审计厅</tspan> </text> </g> <g transform="translate(332.33,508.66)" id="shape165"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.77,0.63,-0.63,0.77,11,-6)"> <tspan x="24.9" y="14.4">碧海云天</tspan> </text> </g> <g transform="translate(332.33,547.66)" id="shape166"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">五星花园</tspan> </text> </g> <g transform="translate(332.33,585.33)" id="shape167"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.87,-0.49,0.49,0.87,1.6,7.3)"> <tspan x="26" y="2.5">华医学院</tspan> </text> </g> <g transform="translate(332.5,620.33)" id="shape168"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">滨河街</tspan> </text> </g> <g transform="translate(807.83,338.37)" id="shape169"> <text class="st4"> <tspan x="15.4" y="14.7">5号线</tspan> </text> </g> <g transform="translate(306.67,638.9)" id="shape170"> <text class="st4"> <tspan x="15.4" y="14.7">5号线</tspan> </text> </g> <!--5号线:shape147到shape170--> <path d="M0,0L297.8,0L297.8,5L0,5L0,0z" stroke="#30c9f7" fill="#30c9f7" transform="translate(366.61,480.72)" id="shape171"/> <path d="M12.5,0L-2.1,0L-48.3,46.8L-44.7,50.2L0,5L12.5,5L12.5,0z" stroke="#30c9f7" fill="#30c9f7" transform="translate(709.5,435.5)" id="shape172"/> <path d="M0,0L5,0L5,221.3L0,221.3L0,0z" stroke="#30c9f7" fill="#30c9f7" transform="translate(719.22,436.72)" id="shape173"/> <path d="M0,0L94,0L94,-31.5L99,-31.5L99,5L0,5L0,0z" stroke="#30c9f7" fill="#30c9f7" transform="translate(271.83,512.49)" id="shape174"/> <g transform="translate(716.05,649.83)" id="shape175"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">郗马</tspan> </text> </g> <g transform="translate(715.33,592.67)" id="shape176"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">工农路</tspan> </text> </g> <g transform="translate(716.05,561)" id="shape177"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">东仰陵</tspan> </text> </g> <g transform="translate(715.33,529.33)" id="shape178"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.71,-0.71,0.71,0.71,5.2,8.8)"> <tspan x="24.2" y="0.1">南豆</tspan> </text> </g> <g transform="translate(715.33,483.53)" id="shape179"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="27.3" y="7.7">北豆</tspan> </text> </g> <g transform="translate(715.66,424.63)" id="shape180"> <path stroke-width="3" d="M10.6,0L5.3,0C2.4,0,0,2.5,0,5.7C0,8.8,2.4,11.3,5.3,11.3L10.6,11.3" stroke="#d7091d" fill="#ffffff" transform="matrix(0,1,-1,0,11.3,0)"/> <path stroke-width="3" d="M0,0L5.3,0C8.3,0,10.6,2.5,10.6,5.7C10.6,8.8,8.3,11.3,5.3,11.3L0,11.3" stroke="#30c9f7" fill="#ffffff" transform="matrix(0,1,-1,0,11.3,10.6)"/> <text class="st3" transform="matrix(0.63,0.78,-0.78,0.63,6.3,2.1)"> <tspan x="-22" y="9.6">海世界</tspan> </text> </g> <g transform="translate(641.83,476.88)" id="shape181"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">二十里铺</tspan> </text> </g> <g transform="translate(610.83,476.88)" id="shape182"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">国际城</tspan> </text> </g> <g transform="translate(579.83,476.88)" id="shape183"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.61,-0.79,0.79,0.61,-11.5,4.7)"> <tspan x="-31.1" y="13.1">东明商城</tspan> </text> </g> <g transform="translate(548.83,477.55)" id="shape184"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">省地震局</tspan> </text> </g> <g transform="translate(517.83,477.55)" id="shape185"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">石门公园</tspan> </text> </g> <g transform="translate(486.33,477.55)" id="shape186"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.89,0.46,-0.46,0.89,6.6,-5.8)"> <tspan x="26.1" y="12.6">新世隆</tspan> </text> </g> <g transform="translate(455.83,476.88)" id="shape187"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">人防大厦</tspan> </text> </g> <g transform="translate(424.83,477.55)" id="shape188"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="3.3" y="-8.5">裕龙</tspan> </text> </g> <g transform="translate(394.96,476.88)" id="shape189"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.86,0.51,-0.51,0.86,7.8,-6)"> <tspan x="25.8" y="13.1">槐安大桥</tspan> </text> </g> <g transform="translate(362.66,476.33)" id="shape190"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-3.9" y="-8.5">考试中心</tspan> </text> </g> <g transform="translate(332.33,508.66)" id="shape191"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2" transform="matrix(0.77,0.63,-0.63,0.77,11,-6)"> <tspan x="24.9" y="14.4">碧海云天</tspan> </text> </g> <g transform="translate(301.83,509.33)" id="shape192"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">创业园</tspan> </text> </g> <g transform="translate(268.66,509.33)" id="shape193"> <path stroke-width="4" d="M0,5.7C0,2.5,2.5,0,5.7,0C8.8,0,11.3,2.5,11.3,5.7C11.3,8.8,8.8,11.3,5.7,11.3C2.5,11.3,0,8.8,0,5.7z" stroke="#000000" fill="#ffffff"/> <text class="st2"> <tspan x="-0.3" y="-8.5">西岗头</tspan> </text> </g> <g transform="translate(692.5,670.45)" id="shape194"> <text class="st4"> <tspan x="15.4" y="14.7">6号线</tspan> </text> </g> <g transform="translate(211.25,498.9)" id="shape195"> <text class="st4"> <tspan x="15.4" y="14.7">6号线</tspan> </text> </g> <!--6号线:shape171到shape195--> </g> </svg> </div> </body> <script type="text/javascript"> window.onload = function () { $solway.drag({ ele: document.getElementById('dragDiv') }); }; var now = 2.2; var svg = document.getElementById("zoomSvg"); function zoom(num){ switch(num){ case 1.1:now += 0.2; if(now>4) now=4; svg.style = "transform:scale(" + now + ","+ now + ")"; break; case 0.9:now -= 0.2; if(now<1.2) now=1.2; svg.style = "transform:scale(" + now + ","+ now + ")"; break; } } var scrollFunc=function(e){ e=e || window.event; if(e.wheelDelta){//IE/Opera/Chrome if(e.wheelDelta>0) zoom(1.1); else zoom(0.9); }else if(e.detail){//Firefox if(e.detail>0) zoom(1.1); else zoom(0.9); } } /*注册事件*/ if(document.addEventListener){ document.addEventListener('DOMMouseScroll',scrollFunc,false); }//W3C window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari </script> </html>
foot.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #foot{ background-color:#3F51B5; width:100%; height:60px; } #foot span{ font-family:YouYuan; font-size:17px; color:white; display:block; text-align:center; position: relative; top:20px; } </style> </head> <body> <div id="foot"> <span>注:--------</span> </div> </body> </html>
(二)后台设计与算法
1)
Java文件分为四个包:
com.Bean:用于存放站点类。
com.Dao:用于存放算法。
com.DBUtil:用于存放数据库连接类。
com.Servlet:用于存放servlet类。
2)代码
com.Bean:
Bean.java
package com.Bean; public class Bean { private int lineid; private String stationname; private int tinformation; private int ordnum; public void setLineid(int lineid){ this.lineid = lineid; } public int getLineid() { return lineid; } public void setStationname(String stationname){ this.stationname = stationname; } public String getStationname() { return stationname; } public void setTinformation(int tinformation){ this.tinformation = tinformation; } public int getTinformation() { return tinformation; } public void setOrdnum(int ordnum){ this.ordnum = ordnum; } public int getOrdnum() { return ordnum; } }
com.Dao:
(此包中的类用来计算站点最少的路径,该算法我没有想出来,是我从网上找来然后修改的,原地址:https://blog.csdn.net/wangchsh2008/article/details/46288967)
DataBuilder.java(存放线路)
package com.Dao; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import com.DBUtil.SubwayDBUtil; public class DataBuilder { public static List<Station> line1 = new ArrayList<Station>();//1号线 public static List<Station> line2 = new ArrayList<Station>();//2号线 public static List<Station> line3 = new ArrayList<Station>();//3号线 public static List<Station> line4 = new ArrayList<Station>();//4号线 public static List<Station> line5 = new ArrayList<Station>();//5号线 public static List<Station> line6 = new ArrayList<Station>();//6号线 public static Set<List<Station>> lineSet = new HashSet<List<Station>>();//所有线集合 public static int totalStaion = 0;//总的站点数量 static { /*******************************************************************************/ //1号线 String[] line1Arr = new String[29]; Connection conn1 = SubwayDBUtil.getConn(); try { Statement stmt = conn1.createStatement(); String sql = "select * from line where lineid=1"; ResultSet rs = stmt.executeQuery(sql); int k = 0; while(rs.next()) { line1Arr[k] = rs.getString("stationname"); k++; } conn1.close(); } catch (SQLException e) { e.printStackTrace(); } for(String s : line1Arr) { line1.add(new Station(s)); } for(int i =0;i<line1.size();i++) { if(i<line1.size()-1) { line1.get(i).next = line1.get(i+1); line1.get(i+1).prev = line1.get(i); } } /*******************************************************************************/ //2号线 String[] line2Arr = new String[37]; Connection conn2 = SubwayDBUtil.getConn(); try { Statement stmt = conn2.createStatement(); String sql = "select * from line where lineid=2"; ResultSet rs = stmt.executeQuery(sql); int k = 0; while(rs.next()) { line2Arr[k] = rs.getString("stationname"); k++; } conn2.close(); } catch (SQLException e) { e.printStackTrace(); } for(String s : line2Arr) { line2.add(new Station(s)); } for(int i =0;i<line2.size();i++) { if(i<line2.size()-1) { line2.get(i).next = line2.get(i+1); line2.get(i+1).prev = line2.get(i); } } /*******************************************************************************/ //3号线 String[] line3Arr = new String[35]; Connection conn3 = SubwayDBUtil.getConn(); try { Statement stmt = conn3.createStatement(); String sql = "select * from line where lineid=3"; ResultSet rs = stmt.executeQuery(sql); int k = 0; while(rs.next()) { line3Arr[k] = rs.getString("stationname"); k++; } conn3.close(); } catch (SQLException e) { e.printStackTrace(); } for(String s : line3Arr) { line3.add(new Station(s)); } for(int i =0;i<line3.size();i++) { if(i<line3.size()-1) { line3.get(i).next = line3.get(i+1); line3.get(i+1).prev = line3.get(i); } } /*******************************************************************************/ //4号线 String[] line4Arr = new String[18]; Connection conn4 = SubwayDBUtil.getConn(); try { Statement stmt = conn4.createStatement(); String sql = "select * from line where lineid=4"; ResultSet rs = stmt.executeQuery(sql); int k = 0; while(rs.next()) { line4Arr[k] = rs.getString("stationname"); k++; } conn4.close(); } catch (SQLException e) { e.printStackTrace(); } for(String s : line4Arr) { line4.add(new Station(s)); } for(int i =0;i<line4.size();i++) { if(i<line4.size()-1) { line4.get(i).next = line4.get(i+1); line4.get(i+1).prev = line4.get(i); } } /*******************************************************************************/ //5号线 String[] line5Arr = new String[21]; Connection conn5 = SubwayDBUtil.getConn(); try { Statement stmt = conn5.createStatement(); String sql = "select * from line where lineid=5"; ResultSet rs = stmt.executeQuery(sql); int k = 0; while(rs.next()) { line5Arr[k] = rs.getString("stationname"); k++; } conn5.close(); } catch (SQLException e) { e.printStackTrace(); } for(String s : line5Arr) { line5.add(new Station(s)); } for(int i =0;i<line5.size();i++) { if(i<line5.size()-1) { line5.get(i).next = line5.get(i+1); line5.get(i+1).prev = line5.get(i); } } /*******************************************************************************/ //s8号线 String[] line6Arr = new String[19]; Connection conn6 = SubwayDBUtil.getConn(); try { Statement stmt = conn6.createStatement(); String sql = "select * from line where lineid=6"; ResultSet rs = stmt.executeQuery(sql); int k = 0; while(rs.next()) { line6Arr[k] = rs.getString("stationname"); k++; } conn6.close(); } catch (SQLException e) { e.printStackTrace(); } for(String s : line6Arr) { line6.add(new Station(s)); } for(int i =0;i<line6.size();i++) { if(i<line6.size()-1) { line6.get(i).next = line6.get(i+1); line6.get(i+1).prev = line6.get(i); } } /*******************************************************************************/ lineSet.add(line1); lineSet.add(line2); lineSet.add(line3); lineSet.add(line4); lineSet.add(line5); lineSet.add(line6); totalStaion = line1.size() + line2.size() + line3.size() + line4.size() + line5.size() + line6.size(); System.out.println("总的站点数量:"+totalStaion); } public static void main(String[] args) { System.out.println("总的站点数量:"+totalStaion); } }
Station.java(另一个站点类)
package com.Dao; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.Map; public class Station { private String name; //地铁站名称,假设具备唯一性 public Station prev; //本站在lineNo线上面的前一个站 public Station next; //本站在lineNo线上面的后一个站 //本站到某一个目标站(key)所经过的所有站集合(value),保持前后顺序 private Map<Station,LinkedHashSet<Station>> orderSetMap = new HashMap<Station,LinkedHashSet<Station>>(); public Station (String name){ this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public LinkedHashSet<Station> getAllPassedStations(Station station) { if(orderSetMap.get(station) == null) { LinkedHashSet<Station> set = new LinkedHashSet<Station>(); set.add(this); orderSetMap.put(station, set); } return orderSetMap.get(station); } public Map<Station, LinkedHashSet<Station>> getOrderSetMap() { return orderSetMap; } @Override public boolean equals(Object obj) { if(this == obj){ return true; } else if(obj instanceof Station) { Station s = (Station) obj; if(s.getName().equals(this.getName())) { return true; } else { return false; } } else { return false; } } @Override public int hashCode() { return this.getName().hashCode(); } }
Subway.java(具体算法的实现)
package com.Dao; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import com.Bean.Bean; public class Subway { private List<Station> outList = new ArrayList<Station>();//记录已经分析过的站点 //计算从s1站到s2站的最短经过路径 public List<Bean> calculate(Station s1,Station s2){ List<Bean> list = new ArrayList<Bean>();//用于返回路径信息 if(outList.size() == DataBuilder.totalStaion){ System.out.println("找到目标站点:"+s2.getName()+",共经过"+(s1.getAllPassedStations(s2).size()-1)+"站"); for(Station station : s1.getAllPassedStations(s2)){ System.out.print(station.getName()+"->"); Bean bean = new Bean(); bean.setStationname(station.getName()); list.add(bean); } return list; } if(!outList.contains(s1)){ outList.add(s1); } //如果起点站的OrderSetMap为空,则第一次用起点站的前后站点初始化之 if(s1.getOrderSetMap().isEmpty()){ List<Station> Linkedstations = getAllLinkedStations(s1); for(Station s : Linkedstations){ s1.getAllPassedStations(s).add(s); } } Station parent = getShortestPath(s1);//获取距离起点站s1最近的一个站(有多个的话,随意取一个) if(parent == s2){ System.out.println("找到目标站点:"+s2+",共经过"+(s1.getAllPassedStations(s2).size()-1)+"站"); for(Station station : s1.getAllPassedStations(s2)){ System.out.print(station.getName()+"->"); Bean bean = new Bean(); bean.setStationname(station.getName()); list.add(bean); } return list; } for(Station child : getAllLinkedStations(parent)){ if(outList.contains(child)){ continue; } int shortestPath = (s1.getAllPassedStations(parent).size()-1) + 1;//前面这个1表示计算路径需要去除自身站点,后面这个1表示增加了1站距离 if(s1.getAllPassedStations(child).contains(child)){ //如果s1已经计算过到此child的经过距离,那么比较出最小的距离 if((s1.getAllPassedStations(child).size()-1) > shortestPath){ //重置S1到周围各站的最小路径 s1.getAllPassedStations(child).clear(); s1.getAllPassedStations(child).addAll(s1.getAllPassedStations(parent)); s1.getAllPassedStations(child).add(child); } } else { //如果s1还没有计算过到此child的经过距离 s1.getAllPassedStations(child).addAll(s1.getAllPassedStations(parent)); s1.getAllPassedStations(child).add(child); } } outList.add(parent); return calculate(s1,s2); } //取参数station到各个站的最短距离,相隔1站,距离为1,依次类推 private Station getShortestPath(Station station){ int minPatn = Integer.MAX_VALUE; Station rets = null; for(Station s :station.getOrderSetMap().keySet()){ if(outList.contains(s)){ continue; } LinkedHashSet<Station> set = station.getAllPassedStations(s);//参数station到s所经过的所有站点的集合 if(set.size() < minPatn){ minPatn = set.size(); rets = s; } } return rets; } //获取参数station直接相连的所有站,包括交叉线上面的站 private List<Station> getAllLinkedStations(Station station){ List<Station> linkedStaions = new ArrayList<Station>(); for(List<Station> line : DataBuilder.lineSet){ if(line.contains(station)){//如果某一条线包含了此站,注意由于重写了hashcode方法,只有name相同,即认为是同一个对象 Station s = line.get(line.indexOf(station)); if(s.prev != null){ linkedStaions.add(s.prev); } if(s.next != null){ linkedStaions.add(s.next); } } } return linkedStaions; } }
com.DBUtil:
SubwayDBUtil.java
package com.DBUtil; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class SubwayDBUtil { public static String db_url="jdbc:mysql://localhost:3306/subway?useSSL=true&serverTimezone=UTC";//这是连接数据库,userdome是数据库的名称,userUnicode=true&characterEncoding=UTF-8是将字符集设置为utf-8,避免乱码。 public static String db_user="root";//数据的用户名 public static String db_password="lty100609";//数据库的密码 public static Connection getConn()//获取连接,返回Connection类型,必须设置为static这样才能在其他类中使用 { Connection conn=null; try { Class.forName("com.mysql.jdbc.Driver");//加载驱动 conn=DriverManager.getConnection(db_url,db_user,db_password);//连接数据库 } catch(Exception e) { e.printStackTrace(); } return conn; } public static void close(Statement state,Connection conn)//关闭函数 { if(state!=null)//只有状态和连接时,先关闭状态 { try { state.close(); } catch(SQLException e) { e.printStackTrace(); } } if(conn!=null) { try { conn.close(); } catch(SQLException e) { e.printStackTrace(); } } } public static void close(ResultSet rs,Statement state,Connection conn) { if(rs!=null)//有结果集,状态和连接时,先关闭结果集,在关闭状态,在关闭连接 { try { rs.close(); } catch(SQLException e) { e.printStackTrace(); } } if(state!=null) { try { state.close(); } catch(SQLException e) { e.printStackTrace(); } } if(conn!=null) { try { conn.close(); } catch(SQLException e) { e.printStackTrace(); } } } }
com.Servlet:
SeaechServlet.java(最少换乘算法,传参,获取页面参数值)(其实这个类中的最少换乘算法应该放到com.Dao包里比较好)
package com.Servlet; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.DBUtil.SubwayDBUtil; import com.Bean.*; import com.Dao.*; public class SearchServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException { searchSubway1(req, resp); searchSubway2(req, resp); req.getRequestDispatcher("/search.jsp").forward(req, resp); } public void searchSubway1(HttpServletRequest req, HttpServletResponse resp) throws UnsupportedEncodingException {//换乘最少 req.setCharacterEncoding("UTF-8"); String start; String end; start = req.getParameter("start"); end = req.getParameter("end"); Bean beanstart=new Bean(); Bean beanend=new Bean(); List<Bean> list = new ArrayList<>();//存放线路 HttpSession session = req.getSession(); Connection conn = SubwayDBUtil.getConn(); try { Statement stmt = conn.createStatement(); String sql = "select * from line"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()) { if(start.equals(rs.getString("stationname"))) { beanstart.setLineid(rs.getInt("lineid")); beanstart.setStationname(rs.getString("stationname")); beanstart.setTinformation(rs.getInt("tinformation")); beanstart.setOrdnum(rs.getInt("ordnum")); } if(end.equals(rs.getString("stationname"))) { beanend.setLineid(rs.getInt("lineid")); beanend.setStationname(rs.getString("stationname")); beanend.setTinformation(rs.getInt("tinformation")); beanend.setOrdnum(rs.getInt("ordnum")); } } if(beanstart.getLineid() == beanend.getLineid()) {//在同一条线上 if(beanstart.getOrdnum() > beanend.getOrdnum()) {//起始站的order比终点站的order大 int startorder = beanstart.getOrdnum();//起始站的order int endorder = beanend.getOrdnum();//终点站的order int lineid = beanstart.getLineid();//线路号 String sql1 = "select * from line where ordnum <='"+startorder+"' and ordnum >='"+endorder+"' and lineid ='"+lineid+"' order by ordnum desc"; ResultSet rs1 = stmt.executeQuery(sql1); while(rs1.next()) { Bean bean = new Bean(); bean.setStationname(rs1.getString("stationname")); list.add(bean); } session.setAttribute("list",list);//传值 } else if(beanstart.getOrdnum() < beanend.getOrdnum()) {//起始站的order比终点站的order小 int startorder = beanstart.getOrdnum();//起始站的order int endorder = beanend.getOrdnum();//终点站的order int lineid = beanstart.getLineid();//线路号 String sql1 = "select * from line where ordnum >='"+startorder+"' and ordnum <='"+endorder+"' and lineid ='"+lineid+"' order by ordnum asc"; ResultSet rs1 = stmt.executeQuery(sql1); while(rs1.next()) { Bean bean = new Bean(); bean.setStationname(rs1.getString("stationname")); list.add(bean); } session.setAttribute("list",list);//传值 } } else if(beanstart.getLineid() != beanend.getLineid()) {//不在同一条线上 Bean beantemp = new Bean(); //以起始站所在线为标准,找换乘站 String sql1 = "select * from line where lineid='"+beanstart.getLineid()+"' and tinformation='"+beanend.getLineid()+"'"; ResultSet rs1 = stmt.executeQuery(sql1); while(rs1.next()) { beantemp.setLineid(rs1.getInt("lineid")); beantemp.setStationname(rs1.getString("stationname")); beantemp.setTinformation(rs1.getInt("tinformation")); beantemp.setOrdnum(rs1.getInt("ordnum")); } if(beanstart.getOrdnum() > beantemp.getOrdnum()) {//起始站的order比换乘站的order大 int startorder = beanstart.getOrdnum();//起始站的order int temporder = beantemp.getOrdnum();//换乘站的order int lineid = beanstart.getLineid();//线路号 String sql2 = "select * from line where ordnum <='"+startorder+"' and ordnum >='"+temporder+"' and lineid ='"+lineid+"' order by ordnum desc"; ResultSet rs2 = stmt.executeQuery(sql2); while(rs2.next()) { Bean bean = new Bean(); bean.setStationname(rs2.getString("stationname")); list.add(bean); } } else if(beanstart.getOrdnum() < beantemp.getOrdnum()) {//起始站的order比换乘站的order小 int startorder = beanstart.getOrdnum();//起始站的order int temporder = beantemp.getOrdnum();//换乘站的order int lineid = beanstart.getLineid();//线路号 String sql2 = "select * from line where ordnum >='"+startorder+"' and ordnum <='"+temporder+"' and lineid ='"+lineid+"' order by ordnum asc"; ResultSet rs2 = stmt.executeQuery(sql2); while(rs2.next()) { Bean bean = new Bean(); bean.setStationname(rs2.getString("stationname")); list.add(bean); } } //以终点站所在线为标准,找换乘站 String sql3 = "select * from line where lineid='"+beanend.getLineid()+"' and tinformation='"+beanstart.getLineid()+"'"; ResultSet rs3 = stmt.executeQuery(sql3); while(rs3.next()) { beantemp.setLineid(rs3.getInt("lineid")); beantemp.setStationname(rs3.getString("stationname")); beantemp.setTinformation(rs3.getInt("tinformation")); beantemp.setOrdnum(rs3.getInt("ordnum")); } if(beantemp.getOrdnum() > beanend.getOrdnum()) {//换乘站的order比终点站的order大 int temporder = beantemp.getOrdnum();//换乘站的order int endorder = beanend.getOrdnum();//终点站的order int lineid = beanend.getLineid();//线路号 String sql2 = "select * from line where ordnum <='"+temporder+"' and ordnum >='"+endorder+"' and lineid ='"+lineid+"' order by ordnum desc"; ResultSet rs2 = stmt.executeQuery(sql2); while(rs2.next()) { Bean bean = new Bean(); bean.setStationname(rs2.getString("stationname")); list.add(bean); } } else if(beantemp.getOrdnum() < beanend.getOrdnum()) {//换乘站的order比终点站的order小 int temporder = beantemp.getOrdnum();//换乘站的order int endorder = beanend.getOrdnum();//终点站的order int lineid = beanend.getLineid();//线路号 String sql2 = "select * from line where ordnum >='"+temporder+"' and ordnum <='"+endorder+"' and lineid ='"+lineid+"' order by ordnum asc"; ResultSet rs2 = stmt.executeQuery(sql2); while(rs2.next()) { Bean bean = new Bean(); bean.setStationname(rs2.getString("stationname")); list.add(bean); } } session.setAttribute("list",list);//传值 } conn.close(); } catch (SQLException e) { e.printStackTrace(); } } public void searchSubway2(HttpServletRequest req, HttpServletResponse resp) throws UnsupportedEncodingException { req.setCharacterEncoding("UTF-8"); String start; String end; start = req.getParameter("start"); end = req.getParameter("end"); List<Bean> list2 = new ArrayList<>();//存放线路 HttpSession session = req.getSession(); Subway sw = new Subway(); Station s1 = new Station(start); Station s2 = new Station(end); list2 = sw.calculate(s1, s2); session.setAttribute("list2",list2);//传值 } }
4、整体展示
5、其他
在基本做完之后,感觉还有一些功能可以添加,如:(1)点击地图上的站点即可将站点名填进起始站文本框或终点站文本框;(2)设置悬浮窗,点击其中的线路号可只显示其对应线路。