合作人:张思远
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>
main.jsp
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>
head.jsp
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>
index_in.jsp
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>
beginsearch.jsp
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>
search.jsp
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>
map.jsp
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>
foot.jsp
(二)后台设计与算法
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;
}
}
Bean.java
com.Dao:
(此包中的类用来计算站点最少的路径,该算法我没有想出来,是我从网上找来然后修改的,原地址:)
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);
}
}
DataBuilder.java
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();
}
}
Ststion.java
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;
}
}
Subway.java
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();
}
}
}
}
SubwayDBUtil.java
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);//传值
}
}
SearchServlet.java
4、整体展示
5、其他
在基本做完之后,感觉还有一些功能可以添加,如:(1)点击地图上的站点即可将站点名填进起始站文本框或终点站文本框;(2)设置悬浮窗,点击其中的线路号可只显示其对应线路。