地铁管理系统

地铁线路管理系统

 

合作人:肖成龙

设计思想:

数据库建立了两张表,一张将所有的地铁线路信息储存进去,

还有一张用来存储六条地铁之间的连通节点。

通过连通性,判断是否需要换乘线路。

预估时间:一周

源程序代码:

数据库代码:

 Dbutil.java

package com.hdq.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 数据库连接工具
 * @author Hu
 *
 */
public class DBUtil {
 
 public static String db_url = "jdbc:mysql://localhost:3306/studentlist";
 public static String db_user = "root";
 public static String db_pass = "password";
 
 public static Connection getConn () {
  Connection conn = null;
  
  try {
   Class.forName("com.mysql.jdbc.Driver");//加载驱动
   conn = DriverManager.getConnection(db_url, db_user, db_pass);
  } catch (Exception e) {
   e.printStackTrace();
  }
  
  return conn;
 }
 
 /**
  * 关闭连接
  * @param state
  * @param 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();
   }
  }
 }
 public static void main(String[] args) throws SQLException {
//  Connection conn = getConn();
//  PreparedStatement pstmt = null;
//  ResultSet rs = null;
//  String sql ="select * from course";
//  pstmt = conn.prepareStatement(sql);
//  rs = pstmt.executeQuery();
//  if(rs.next()){
//   System.out.println("空");
//  }else{
//   System.out.println("不空");
//  }
 }
}

 ClassService.java

package com.hdq.service;
import java.util.List;
import com.hdq.dao.ClassDao;
/**
 * CourseService
 * 服务层
 * @author HDQ
 *
 */
public class ClassService {
 ClassDao cDao = new ClassDao();
 
 /**
  * 添加
  * @param course
  * @return
  */
 public boolean add(String table,String strList[],String strList1[]) {
  boolean f = cDao.add(table,strList,strList1);
  return f;
 }
 
 /**
  * 删除
  */
 public boolean del(String table,String qian,String hou) {
  return cDao.delete(table,qian,hou);
 }
 
 /**
  * 修改
  * @return 
  */
 public boolean update(String table,String []strlist,String []strlist1,String qian,String hou) {
  return cDao.update(table,strlist,strlist1,qian,hou);
 }
 /**
  * 查找
  * @return 
  * @throws IllegalAccessException 
  * @throws InstantiationException 
  */
 public <T> List<T> search(String table, String []strList, String []strList1,Class<T> clazz) throws InstantiationException, IllegalAccessException {
  return cDao.search(table,strList,strList1,clazz);
 }
 
 /**
  * 由时间查找
  * @return 
  * @throws IllegalAccessException 
  * @throws InstantiationException 
  */
 public <T> List<T> searchByTime(String table, String []strList, String []strList1,String biaoshi,String qian,String hou,Class<T> clazz) throws InstantiationException, IllegalAccessException {
  return cDao.searchByTime(table, strList, strList1, biaoshi, qian, hou, clazz);
 }
 /**
  * 全部数据
  * @return 
  * @throws IllegalAccessException 
  * @throws InstantiationException 
  * @throws ClassNotFoundException 
  */
 public <T> List<T> list(String table,String []strList,Class<T> clazz) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
  return cDao.list(table,strList,clazz);
 }
 
 /**
  * 创建数据库表单
  * @return 
  * @throws IllegalAccessException 
  * @throws InstantiationException 
  */
 public boolean createTable(String table,String []info,String []type,int []size)
 {
  return cDao.createTable(table, info, type, size);
 }
}

 Linenum.java

package com.hdq.entity;
public class Linenum {
 int linenum;
 public int getLinenum() {
  return linenum;
 }
 public void setLinenum(int linenum) {
  this.linenum = linenum;
 }
}

Lineinfo.java

package com.hdq.entity;
public class LineInfo {
 int linenum;
 String name;
 public int getLinenum() {
  return linenum;
 }
 public void setLinenum(int linenum) {
  this.linenum = linenum;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public LineInfo()
 {
  linenum=-1;
 }
}

ClassDao.java

package com.hdq.dao;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
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 com.hdq.util.DBUtil;
/**
 * 通用类Dao
 * Dao层操作数据
 * @author HDQ
 *
 */
public class ClassDao {
 /**
  * 添加
  * @return
  */
 public <T> boolean add(String table,String []strList,String []strList1) {
  if(strList.length==0)
   return false;
  String sql = "insert into "+table+"(";
  for(int i=0;i<strList.length;i++)
  {
   if(i!=strList.length-1)
    sql+=strList[i]+",";
   else sql+=strList[i]+")";
  }
  sql+=" values('";
  for(int i=0;i<strList1.length;i++)
  {
   if(i!=strList1.length-1)
    sql+=strList1[i]+"','";
   else sql+=strList1[i]+"')";
  }
  //创建数据库链接
  Connection conn = DBUtil.getConn();
  Statement state = null;
  boolean f = false;
  int a = 0;
  
  try {
   state = conn.createStatement();
   a=state.executeUpdate(sql);
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   //关闭连接
   DBUtil.close(state, conn);
  }
  
  if (a > 0) {
   f = true;
  }
  return f;
 }
 /**
  * 删除
  * 
  * @return
  */
 
 public boolean delete (String table,String zhixing,String biaoshi) {
  boolean f = false;
  String sql = "delete from "+table+" where "+zhixing+"='" + biaoshi + "'";
  
  Connection conn = DBUtil.getConn();
  Statement state = null;
  int a = 0;
  
  try {
   state = conn.createStatement();
   a = state.executeUpdate(sql);
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   DBUtil.close(state, conn);
  }
  
  if (a > 0) {
   f = true;
  }
  return f;
 }
 /**
  * 修改
  
  * @param pass
  */
 public boolean update(String table,String []strlist,String []strlist1,String qian,String hou) {
  String sql = "update "+table+" set ";
  for(int i=0;i<strlist.length;i++)
  {
   if(i!=strlist.length-1)
    sql+=strlist[i]+"='" + strlist1[i] + "',";
   else sql+=strlist[i]+"='" + strlist1[i] + "' where "+qian+"='" + hou + "'";
  }
  Connection conn = DBUtil.getConn();
  Statement state = null;
  boolean f = false;
  int a = 0;
  try {
   state = conn.createStatement();
   a = state.executeUpdate(sql);
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   DBUtil.close(state, conn);
  }
  
  if (a > 0) {
   f = true;
  }
  return f;
 }
 
 /**
  * 验证通用类名称是否唯一
  * true --- 不唯一
  
  * @return
  */
 public boolean name(String table,String zhi,String weiyi) {
  boolean flag = false;
  String sql = "select "+zhi+" from "+table+" where "+zhi+" = '" + weiyi + "'";
  Connection conn = DBUtil.getConn();
  Statement state = null;
  ResultSet rs = null;
  
  try {
   state = conn.createStatement();
   rs = state.executeQuery(sql);
   while (rs.next()) {
    flag = true;
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   DBUtil.close(rs, state, conn);
  }
  return flag;
 }
 
 
 
 /**
  * 查找
  * @return
  * @throws IllegalAccessException 
  * @throws InstantiationException 
  */
 @SuppressWarnings("deprecation")
 public <T> List<T> search(String table,String []strList,String []strList1,Class<T> clazz) throws InstantiationException, IllegalAccessException {
  String sql = "select * from "+table;
  int i=0,k=0;
  for(String it:strList1)
  {
   if(it!=null&&!it.equals(""))
   {
    if(k==0)
     sql +=" where "+ strList[i]+" like '%" + it + "%'";
    else sql +=" and "+ strList[i]+" like '%" + it + "%'";
    ++k;
   }
   ++i;
  }
  List<T> list = new ArrayList<>();
  Connection conn = DBUtil.getConn();
  Statement state = null;
  ResultSet rs = null;
  try {
   state = conn.createStatement();
   rs = state.executeQuery(sql);
   T bean = null;
   while (rs.next()) {
    bean=clazz.newInstance();
    for(String it:strList)
    {
     Field fs=getDeclaredField(bean, it);
     if(fs==null){
      throw new IllegalArgumentException("Could not find field["+ 
        it+"] on target ["+bean+"]");
     }
     makeAccessiable(fs);
        try{
            fs.set(bean, rs.getObject(it));
        }
        catch(IllegalAccessException e){
            System.out.println("不可能抛出的异常");
        }
    }
    list.add(bean);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   DBUtil.close(rs, state, conn);
  }
  
  return list;
 }
 /**
  * 由时间和条件查找
  * @return
  * @throws IllegalAccessException 
  * @throws InstantiationException 
  */
 @SuppressWarnings("deprecation")
 public <T> List<T> searchByTime(String table,String []strList,String []strList1,String biaoshi,String qian,String hou,Class<T> clazz) throws InstantiationException, IllegalAccessException {
  String sql = "select * from "+table+" where ";
  int i=0,k=0;
  for(String it:strList1)
  {
   if(it!=null&&!it.equals(""))
   {
    sql += strList[i]+" like '%" + it + "%'";
    ++k;
   }
   ++i;
  }
  if(qian!=null&&!qian.equals(""))
  {
   if(k>0)
    sql+=" and "+biaoshi+" Between '"+qian+"' AND '"+hou+"'";
   else sql+=biaoshi+" Between '"+qian+"' AND '"+hou+"'";
  }
  //and shijian Between '"+request.getParameter("shijian1")+"' AND '"+request.getParameter("shijian2")+"'"
  //查询的时间格式例如:2015-10-27 24:00:0
  List<T> list = new ArrayList<>();
  Connection conn = DBUtil.getConn();
  Statement state = null;
  ResultSet rs = null;
  try {
   state = conn.createStatement();
   rs = state.executeQuery(sql);
   T bean = null;
   while (rs.next()) {
    bean=clazz.newInstance();
    for(String it:strList)
    {
     Field fs=getDeclaredField(bean, it);
     if(fs==null){
      throw new IllegalArgumentException("Could not find field["+ 
        it+"] on target ["+bean+"]");
     }
     makeAccessiable(fs);
        try{
            fs.set(bean, rs.getObject(it));
        }
        catch(IllegalAccessException e){
            System.out.println("不可能抛出的异常");
        }
    }
    list.add(bean);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   DBUtil.close(rs, state, conn);
  }
  
  return list;
 }
 
 /**
  * 创建数据库
  * @return
  * @throws ClassNotFoundException 
  * @throws IllegalAccessException 
  * @throws InstantiationException 
  */
 public boolean createTable(String table,String []info,String []type,int []size)
 {
  String sql = "CREATE TABLE "+table+"(";
  String lei[]=new String[] {"char","varchar"};
  int i=0;
  for(String it:info)
  {
   if(!it.equals(""))
   {
    boolean g_trit=false;
    for(String sit:lei)
    {
     if(type[i].toLowerCase().contains(sit.toLowerCase()))
     {
      g_trit=true;
     }
    }
    if(g_trit)
     sql += it+" "+type[i]+"("+size[i]+")";
    else sql += it+" "+type[i];
   }
   
   if(i!=info.length-1)
    sql+=",";
   ++i;
  }
  sql+=")";
  //and shijian Between '"+request.getParameter("shijian1")+"' AND '"+request.getParameter("shijian2")+"'"
  //查询的时间格式例如:2015-10-27 24:00:0
  Connection conn = DBUtil.getConn();
  Statement state = null;
  ResultSet rs = null;
  int a=0;
  boolean f=false;
  try {
   state = conn.createStatement();
   a = state.executeUpdate(sql);
   
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   DBUtil.close(rs, state, conn);
  }
  if(a>0)
   f=true;
  return f;
 }
   
 /**
  * 全部数据
  * @return
  * @throws ClassNotFoundException 
  * @throws IllegalAccessException 
  * @throws InstantiationException 
  */
 @SuppressWarnings("deprecation")
 public <T> List<T> list(String table,String []strList,Class<T> clazz) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
  String sql = "select * from "+table;
  List<T> list = new ArrayList<>();
  Connection conn = DBUtil.getConn();
  Statement state = null;
  ResultSet rs = null;
  
  try {
   state = conn.createStatement();
   rs = state.executeQuery(sql);
   T bean = null;
   
   while (rs.next()) {
    bean=clazz.newInstance();
    for(String it:strList)
    {
     Field fs=getDeclaredField(bean, it);
     if(fs==null){
      throw new IllegalArgumentException("Could not find field["+ 
        it+"] on target ["+bean+"]");
     }
     makeAccessiable(fs);
        try{
            fs.set(bean, rs.getObject(it));
        }
        catch(IllegalAccessException e){
            System.out.println("不可能抛出的异常");
        }
    }
    
    list.add(bean);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   DBUtil.close(rs, state, conn);
  }
  
  return list;
 }
 
 //获取field属性,属性有可能在父类中继承 
 public static Field getDeclaredField(Object obj,String fieldName){
     for (Class<?> clazz=obj.getClass(); clazz!=Object.class; clazz=clazz.getSuperclass()){
         try{
             return clazz.getDeclaredField(fieldName);
         }
         catch(Exception e){
         }
     }
     return null;
 }
 //判断field的修饰符是否是public,并据此改变field的访问权限 
 public static void makeAccessiable(Field field){
     if(!Modifier.isPublic(field.getModifiers())){
         field.setAccessible(true);
     }
 }
}

web服务界面代码:

subway.jsp

<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>石家庄地铁线路查询</title>
    <style>
        #dvs
        {
            margin: 20px 20px;
            background:rgb(240,240,240);
             300px;
            
        }
        /*body
        {
            background: url(image/subway.jpg) ;
            background-position: center;
                        background-size: auto;
            background-repeat: no-repeat;
        }*/


        .subway-zoomcontainer {
            position: absolute;
            cursor: pointer;
            right: 9px;
            bottom: 83px;
            box-shadow: 1px 2px 1px rgba(0,0,0,.15);
            overflow: hidden;
            border: solid 1px #ccc;
            background: #fff;
        }
        .subway-zoomin-icon {
            position: relative;
            left: 8px;
            top: 8px;
             10px;
            height: 10px;
            background: url(https://webmap1.bdimg.com/wolfman/static/common/images/api/mapZoom2x.png) 0 0;
            background-size: 40px 10px;
        }
        .subway-zoomin {
             26px;
            height: 26px;
            border-bottom: solid 1px #ccc;
        }
        .subway-zoomout {
             26px;
            height: 26px;
        }
        .subway-zoomout-icon {
            position: relative;
            left: 8px;
            top: 8px;
             10px;
            height: 10px;
            background: url(https://webmap1.bdimg.com/wolfman/static/common/images/api/mapZoom2x.png) -10px 0;
            background-size: 40px 10px;
        }

        /*百度地图功能测试*/
        /* body, html{ 100%;height: 100%;margin:0;font-family:"微软雅黑";font-size:14px;}
         #l-map{height:100%;100%;}
         #r-result{100%;}*/
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
    <link rel="stylesheet" href="subway.css">
</head>
<body>
    <!-- 百度地图搜索框测试 -->
    <!-- <div id="l-map">
        </div> -->
    <!-- 搜索框结束 -->
    
    <div id="left-panel" class="" style="height: 857px;">
    <form method="post" action="handleSql.jsp">
        <div id="searchbox" class="clearfix">
            <div id="searchbox-container">
                <div id="sole-searchbox-content" class="searchbox-content" style="display: none;">
                    <input id="sole-input" class="searchbox-content-common" type="text" name="word" autocomplete="off" maxlength="256" placeholder="搜地点、查公交、找路线" value="">
                    <div class="input-clear" title="清空" style="display: none;"></div>
                        <div class="searchbox-content-button right-button route-button loading-button" data-title="路线">
                        </div>
                    </div>
                    <div id="metro-searchbox-content" class="searchbox-content route-searchbox-content metroline">   
                         <div class="route-header">        
                             <div class="searchbox-content-button right-button cancel-button" data-title="清空">
                                 
                             </div>        
                             <div class="searchbox-content-common route-tabs">    
                                 <div class="tab-item metroline-tab" data-index="metroline">        
                                     <i></i>
                                     <span>站点查询</span>    
                                 </div>    
                                 <div class="tab-item metrostation-tab" data-index="metrostation">        
                                     <!-- <i></i><span>站点查询</span>    -->
                                      </div>            
                                      <div class="arrow-wrap">
                                          
                                      </div>        
                                     </div>        
                                     <!-- <div class="searchbox-content-button right-button cancel-button" data-title="清空">
                                         
                                     </div>     -->
                                 </div>    
                                 <div class="routebox">        
                                 
                                     <div class="searchbox-content-common routebox-content metroline-content" style="display: block;">            
                                         <div class="routebox-revert" title="切换起终点">                
                                             <div class="routebox-revert-icon">                
                                             </div>            
                                         </div>           
                                          <div class="routebox-inputs">                
                                              <div class="routebox-input route-start">                    
                                                  <div class="route-input-icon">                    
                                                  </div>                    
                                                  <input name="start" id="sub_start_input" autocomplete="off" maxlength="256" placeholder="输入起点" class="route-start-input" type="text" value="">                    
                                                  <div class="input-clear" title="清空">                   
                                                   </div>               
                                                    </div>               
                                                     <div class="routebox-input route-end">                   
                                                      <div class="route-input-icon">                    
                                                      </div>                    
                                                      <input name="end" id="sub_end_input" autocomplete="off" maxlength="256" placeholder="输入终点" class="route-end-input" type="text" value="">                   
                                                       <div class="input-clear" title="清空">                    
                                                       </div>                
                                                   </div>            
                                                  </div>        
                                              </div>        
                                              <div class="searchbox-content-common routebox-content metrostation-content" style="display: none;">            
                                                  <div class="routebox-inputs">                
                                                      <div class="routebox-input route-start">                    
                                                          <div class="route-input-icon">                    
                                                          </div>                    
                                                          <input id="sub_station_input" autocomplete="off" maxlength="256" placeholder="输入站点" class="route-start-input" type="text" value="">                    
                                                          <div class="input-clear" title="清空">                    
                                                          </div>                
                                                      </div>            
                                                  </div>        
                                              </div>    
                                          </div>
                                     </div>
                                 </div>
                        <Input type="submit" id="search-button" data-title="搜索" data-tooltip="1" value="">
                        <div id="toast-wrapper" class="">
                        <div id="toast" class="warning">
                        <img class="info-tip-img" src="/wolfman/static/common/images/transparent.gif" alt="">
                        
                    </div>
                    
                </div>
            </div>
            </form>
        <ul id="cards-level0" class="cardlist"></ul>
        <ul id="cards-level1" class="cardlist"></ul>
        <ul id="cards-level2" class="cardlist"></ul>
    </div>


    <!-- 放大缩小框 -->
    <div class="subway-zoomcontainer" style="z-index:2;user-select: none;">
        <div class="subway-zoomin">
            <div class="subway-zoomin-icon" style="background-position: 0px 0px;" onclick="zoom(1.1)">
                
            </div>
        </div>
        <div class="subway-zoomout">
            <div class="subway-zoomout-icon" style="background-position: -10px 0px;" onclick="zoom(0.9)">
                
            </div>
        </div>
    </div>

    <img src="Tony.png" id="subwayimage22" style="position:absolute;top:0;z-index:1;user-select: none;"  width="9999" height="9999" onmousemove="on_Mousemove(event)" onmousedown="on_Mousedown(event);" onmouseup="on_Mouseup(event);" draggable="false"> 
    <svg style="user-select: none;" width="9999" height="9999" xmlns="http://www.w3.org/2000/svg" id="svg" class="svgimg" style="position:absolute;top:0;z-index:0;">
     <!-- Created with Method Draw - http://github.com/duopixel/Method-Draw/ -->
     <g>
      <title>background</title>
      <rect fill="#fff" id="canvas_background" height="819" width="1662" y="-1" x="-1"/>
      <g display="none" overflow="visible" y="0" x="0" height="100%" width="100%" id="canvasGrid">
       <rect fill="url(#gridpattern)" stroke-width="0" y="0" x="0" height="100%" width="100%"/>
      </g>
     </g>
     <g transform="scale(1,1) translate(0,0)" id="subwayimage">
      <title>Layer 1</title>
     <line fill="none" stroke-width="1.5" fill-opacity="null" x1="8.757729" y1="286.750008" x2="424.745186" y2="286.750008" id="svg_3" stroke-linejoin="null" stroke-linecap="null" stroke="#e8e819"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="428.750002" y1="285.749998" x2="429.750002" y2="522.749987" id="svg_7" stroke-linejoin="null" stroke-linecap="null" stroke="#e8e819"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="430.750012" y1="522.75" x2="1235.916179" y2="518.75" id="svg_8" stroke-linejoin="null" stroke-linecap="null" stroke="#e8e819"/>
  <line fill="none" stroke="#56ffff" stroke-width="1.5" fill-opacity="null" x1="340.75001" y1="321.75" x2="340.75001" y2="631.75" id="svg_9" stroke-linejoin="null" stroke-linecap="null"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="340.750008" y1="322.75" x2="924.625372" y2="320.75" id="svg_12" stroke-linejoin="null" stroke-linecap="null" stroke="#00ffff"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="204.750011" y1="397.75" x2="713.750043" y2="392.75" id="svg_13" stroke-linejoin="null" stroke-linecap="null" stroke="#ff0000"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="711.75001" y1="393.75" x2="759.750009" y2="409.75" id="svg_14" stroke-linejoin="null" stroke-linecap="null" stroke="#ff0000"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="758.750006" y1="408.75" x2="802.75001" y2="408.75" id="svg_16" stroke-linejoin="null" stroke-linecap="null" stroke="#ff0000"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="803.75" y1="407.750007" x2="803.75" y2="228.750009" id="svg_18" stroke-linejoin="null" stroke-linecap="null" stroke="#ff0000"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="802.750011" y1="230.750004" x2="755.750009" y2="187.749999" id="svg_19" stroke-linejoin="null" stroke-linecap="null" stroke="#ff0000" transform="rotate(-2.0042965412139893 779.250000000002,209.24999999999773) "/>
  <line fill="none" stroke="#ff0000" stroke-width="1.5" fill-opacity="null" x1="755.75001" y1="188.75" x2="756.75001" y2="141.75" id="svg_20" stroke-linejoin="null" stroke-linecap="null"/>
  <line fill="none" stroke="#ff0000" stroke-width="1.5" fill-opacity="null" x1="755.75001" y1="142.75" x2="798.75001" y2="142.75" id="svg_22" stroke-linejoin="null" stroke-linecap="null"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="798.75001" y1="143.749998" x2="799.75001" y2="-14.25" id="svg_24" stroke-linejoin="null" stroke-linecap="null" stroke="#ff0000"/>
  <line fill="none" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="546.999999" y1="272.999999" x2="546.999999" y2="497.999997" id="svg_25" stroke-linejoin="null" stroke-linecap="null" stroke="#000"/>
  <line fill="none" stroke="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="545.999999" y1="272.999999" x2="573.999999" y2="228.999999" id="svg_26" stroke-linejoin="null" stroke-linecap="null"/>
  <line fill="none" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="573.999999" y1="231.999999" x2="572.999999" y2="189.999999" id="svg_28" stroke-linejoin="null" stroke-linecap="null" stroke="#000"/>
  <line fill="none" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="574.999999" y1="190.999999" x2="641.999997" y2="115.000001" id="svg_29" stroke-linejoin="null" stroke-linecap="null" stroke="#000"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="691.999999" y1="224.999999" x2="691.999999" y2="277.999999" id="svg_30" stroke-linejoin="null" stroke-linecap="null" stroke="#00bf00"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="640.999998" y1="276.999999" x2="691.999999" y2="276.999999" id="svg_31" stroke-linejoin="null" stroke-linecap="null" stroke="#00bf00"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="639.999999" y1="276.999998" x2="641.999999" y2="603.999985" id="svg_32" stroke-linejoin="null" stroke-linecap="null" stroke="#00bf00"/>
  <line fill="none" stroke="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="642.999999" y1="116.999999" x2="643.999999" y2="74.999999" id="svg_33" stroke-linejoin="null" stroke-linecap="null"/>
  <line fill="none" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" opacity="0.5" x1="644.999999" y1="74.999999" x2="1025.969094" y2="76.999999" id="svg_34" stroke-linejoin="null" stroke-linecap="null" stroke="#000"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="338.000012" y1="603.22223" x2="643.999986" y2="602.22223" id="svg_35" stroke-linejoin="null" stroke-linecap="null" stroke="#00ff00"/>
  <line fill="none" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="474.999998" y1="499.222229" x2="547.999999" y2="499.222229" id="svg_36" stroke-linejoin="null" stroke-linecap="null" stroke="#000"/>
  <line fill="none" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="474.000966" y1="498.222232" x2="474.000966" y2="565.22223" id="svg_37" stroke-linejoin="null" stroke-linecap="null" stroke="#000"/>
  <line fill="none" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="473.001931" y1="566.22223" x2="506" y2="567.22223" id="svg_38" stroke-linejoin="null" stroke-linecap="null" stroke="#000"/>
  <line fill="none" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="506.999999" y1="567.222226" x2="506.999999" y2="680.22223" id="svg_39" stroke-linejoin="null" stroke-linecap="null" stroke="#000"/>
  <line fill="none" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="507.999998" y1="678.000009" x2="678.999998" y2="678.000009" id="svg_40" stroke-linejoin="null" stroke-linecap="null" stroke="#000"/>
  <line fill="none" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="677" y1="675.444455" x2="677" y2="816.444464" id="svg_44" stroke-linejoin="null" stroke-linecap="null" stroke="#000"/>
  <line fill="none" stroke="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" x1="677.999999" y1="814.222237" x2="876.999999" y2="813.222237" id="svg_45" stroke-linejoin="null" stroke-linecap="null"/>
  <line fill="none" stroke="#00ff00" stroke-width="1.5" fill-opacity="null" x1="340.999999" y1="605.555563" x2="262.999999" y2="535.555563" id="svg_46" stroke-linejoin="null" stroke-linecap="null"/>
  <line fill="none" stroke="#0000ff" stroke-width="1.5" fill-opacity="null" x1="265.999999" y1="503.555563" x2="390.999999" y2="505.555563" id="svg_47" stroke-linejoin="null" stroke-linecap="null"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="390.999999" y1="505.555562" x2="390.999999" y2="455.555563" id="svg_48" stroke-linejoin="null" stroke-linecap="null" stroke="#0000bf"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="391.999998" y1="455.555563" x2="753.000001" y2="455.555563" id="svg_49" stroke-linejoin="null" stroke-linecap="null" stroke="#005fbf"/>
  <line fill="none" stroke-width="1.5" fill-opacity="null" x1="749.999997" y1="456.555561" x2="781.999998" y2="408.555557" id="svg_50" stroke-linejoin="null" stroke-linecap="null" stroke="#005fbf"/>
  <line fill="none" stroke="#005fbf" stroke-width="1.5" fill-opacity="null" x1="782.999999" y1="409.555563" x2="784.999999" y2="635.555563" id="svg_51" stroke-linejoin="null" stroke-linecap="null"/>
  <ellipse fill="#000" stroke-width="1.5" cx="23.999999" cy="286.999999" id="svg_52" rx="4" ry="5"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="6.978282" y="278.125815" id="svg_53" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.4274840133538049,0,0,0.49652937054634094,11.41375450861757,135.19759746547788) " stroke="#000">鹿泉一中</text>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="65.999999" cy="286.999999" id="svg_55" rx="4" ry="5"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="45.373584" y="318.018471" id="svg_57" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.42949756979942316,0,0,0.5261452794075012,29.51215553283691,138.71865515969694) " stroke="#000">鹿泉医院</text>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="103.499999" cy="287.499999" id="svg_58" rx="4.5" ry="4.5"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="102.580619" y="263.508617" id="svg_60" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.45255220560829534,0,0,0.662858346304631,40.19398863447108,101.01990253497603) " stroke="#000">鹿泉中心</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="144.499998" cy="287.499999" id="svg_61" rx="5.5" ry="4.5" stroke="#000"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="229.999999" cy="224.999999" id="svg_62"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="182.999999" cy="287" id="svg_63" rx="6" ry="4" stroke="#000"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="224.499999" cy="286.499999" id="svg_64" rx="4.5" ry="5.5"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="263.499999" cy="286.499999" id="svg_65" rx="5.5" ry="3.5" stroke="#000"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="313.499999" cy="286.999999" id="svg_66" rx="3.5" ry="4" stroke="#000"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="367.999999" cy="286.499999" id="svg_67" rx="5" ry="4.5" stroke="#000"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="426.999999" cy="286.499999" id="svg_68" rx="5" ry="4.5"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="113.525258" y="304.999999" id="svg_69" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.5095589571441436,0,0,0.5340622479145443,70.75605791345589,146.23171817854396) " stroke="#000">北海山</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="153.428338" y="283.124303" id="svg_70" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.5316401124000549,0,0,0.6274738311767578,82.43134021759033,100.42490610480309) " stroke="#000">南新城</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="215.999999" y="300.999999" id="svg_71" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.518863929258747,0,0,0.5828509302834969,92.84869269010156,132.15302958513118) " stroke="#000">大郭镇</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="257.999999" y="266.999999" id="svg_72" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.531300482240013,0,0,0.6650809049606323,108.79399648471028,98.29637623764575) " stroke="#000">西三庄</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="266.195882" y="403.188314" id="svg_73" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.593551516532898,0,0,0.5678108930587769,125.99902987480164,78.45582881942391) " stroke="#000">水上公园</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="323.999999" y="213.604117" id="svg_74" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.5908783417995345,0,0,0.4932380938363247,156.93890582558458,166.36538727592077) " stroke="#000">高柱</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="409.745273" y="342.075136" id="svg_75" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.6243754323861133,0,0,0.5317951440811157,151.72563770056468,89.6758613102138) " stroke="#000">柏林路</text>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="429.499999" cy="320.777781" id="svg_76" rx="3.5" ry="4" transform="rotate(150.56007385253906 429.5,320.7777709960938) "/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="392.999999" y="191.777781" id="svg_77" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.6282671689987182,0,0,0.6038267016410828,184.0910025835037,221.16994393244383) " stroke="#000">市庄</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="385.999997" cy="321.777781" id="svg_78" rx="6" ry="4" stroke="#000"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="365.072888" y="341.516546" id="svg_80" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.4330810010433197,0,0,0.5751209500439103,210.89386761188507,143.77809940149177) " stroke="#000">火车站北</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="341.999999" cy="323.277781" id="svg_81" rx="4" ry="3.5" stroke="#000"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="301.890896" y="316.360535" id="svg_82" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.5021069645881653,0,0,0.5678108930587769,137.41847777366638,150.5368683114648) " stroke="#000">和平西路</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="340.499999" cy="363.777687" id="svg_84" rx="3.5" ry="5" stroke="#000"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="341.999999" cy="397.277781" id="svg_85" rx="4" ry="4.5"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="310.499999" cy="397.777782" id="svg_87" rx="3.5" ry="4" stroke="#000"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="277.999999" cy="397.277781" id="svg_88" rx="4" ry="3.5" stroke="#000"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="244" cy="397.777776" id="svg_89" rx="4" ry="4" stroke="#000"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="204.999998" cy="398.277781" id="svg_90" rx="5" ry="4.5" stroke="#000"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="191.902536" y="397.103708" id="svg_91" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.6489189863204956,0,0,0.5317951440811157,55.470800161361694,176.19133984297514) " stroke="#000">上庄</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="136.999999" y="422.777781" id="svg_92" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.541362689660481,0,0,0.6481665786687394,152.41833927082087,145.80502269391235) " stroke="#000">西王</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="380.785432" y="310.36219" id="svg_93" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.48190700171947043,0,0,0.49856112721208845,71.35371248145269,231.39091786145127) " stroke="#000">法医医院</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="380.851183" y="376.117976" id="svg_94" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.4969634097944683,0,0,0.5674911127816953,94.06428106636382,204.73437038335672) " stroke="#000">军医医院</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="490.206265" y="385.092941" id="svg_95" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.4815846631121872,0,0,0.5155719481236503,104.38777184118646,217.2121037854659) " stroke="#000">和平医院</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="572.994236" y="278.767862" id="svg_96" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.45024311542510986,0,0,0.5678108930587769,83.01328957080841,208.8823977485299) " stroke="#000">河北二建</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="385.499999" cy="395.277781" id="svg_97" rx="5.5" ry="4.5" stroke="#000"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="681.010904" y="336.37766" id="svg_98" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.4127495288848877,0,0,0.5859964181326838,86.25241294503212,196.20553576949595) " stroke="#000">烈士陵园</text>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="340.499999" cy="437.222227" id="svg_99" rx="5.5" ry="5"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="339.999999" cy="473.722227" id="svg_100" rx="5" ry="4.5" stroke="#000"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="337.729133" y="450.196827" id="svg_101" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.46062146153900907,0,0,0.4773196660918935,132.2895832066389,226.53763671107066) " stroke="#000">益友百货</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="175.999999" y="507.222227" id="svg_102" font-size="24" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.5581445693969727,0,0,0.49577939510345453,190.7665557861328,224.54699360765517) " stroke="#000">审计厅</text>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="340.499999" cy="504.722227" id="svg_105" rx="5.5" ry="4.5"/>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="336.999999" y="522.222227" id="svg_106" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">碧海云天</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="304.999995" cy="504.722227" id="svg_107" rx="4" ry="4.5" stroke="#000"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="264.499999" cy="503.722227" id="svg_108" rx="3.5" ry="4.5" stroke="#000"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="282.999999" y="519.222227" id="svg_109" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" stroke="#000">创业园</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="239.999999" y="516.756579" id="svg_110" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(1,0,0,1.0750292539596558,0,-37.472423024475574) " stroke="null">西岗头</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="266.000964" cy="536.722227" id="svg_111" rx="6.000966" ry="5.5" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="215.999999" y="548.222227" id="svg_113" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">碧水蓝湾</text>
  <ellipse fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="340.999999" cy="552.722227" id="svg_114" rx="6" ry="5.5"/>
  <ellipse fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="364.999999" cy="567.222227" id="svg_115"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="346.999999" y="558.222227" id="svg_116" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">五星花园</text>
  <ellipse fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="298.499999" cy="568.722227" id="svg_117" rx="5.5" ry="4.5"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="260.999999" y="584.222227" id="svg_118" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">东良厢</text>
  <ellipse fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="340.499999" cy="604.222227" id="svg_119" rx="3.5" ry="5"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="286.999999" y="615.222227" id="svg_120" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" stroke="null">华一医院</text>
  <ellipse fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="340.999999" cy="629.722227" id="svg_121" rx="5" ry="4.5"/>
  <text style="cursor: move;" fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="306.999999" y="644.000009" id="svg_123" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">滨河街头</text>
  <ellipse fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="415.999999" cy="602.500009" id="svg_124" rx="4" ry="4.5"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="397.999999" y="622.000009" id="svg_125" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">滨河街</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="506.499999" cy="602.00001" id="svg_126" rx="5.5" ry="5" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="468.999999" y="617.000009" id="svg_127" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">塔谈南</text>
  <ellipse fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="507.499999" cy="646.000009" id="svg_128" rx="4.5" ry="4"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="512.999999" y="672.502548" id="svg_129" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(1,0,0,1.0280837222424697,0,-39.12820605410744) " stroke="null">南位</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="505.999999" cy="678.500009" id="svg_130" rx="4" ry="4.5" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="494.999999" y="696.000009" id="svg_131" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">嘉华</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="555.499999" cy="677.500023" id="svg_132" rx="3.5" ry="3.5" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="523.999999" y="697.000009" id="svg_133" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">河北科技大学</text>
  <ellipse fill="#020202" stroke-width="1.5" cx="628.999998" cy="679.000005" id="svg_137" rx="4" ry="4" stroke="null"/>
  <ellipse fill="#020202" stroke-width="1.5" cx="638.999999" cy="715.000009" id="svg_138"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="610.999999" y="698.000009" id="svg_139" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">东尹村</text>
  <ellipse fill="#020202" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="677.499999" cy="677.500009" id="svg_140" rx="4.5" ry="3.5"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="690.999999" y="691.000009" id="svg_141" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">楼底</text>
  <ellipse fill="#000" stroke-width="1.5" cx="677.499999" cy="747.722237" id="svg_142" rx="5.5" ry="5.5"/>
  <ellipse fill="#000" stroke-width="1.5" cx="676.999999" cy="786.222237" id="svg_143" rx="5" ry="4"/>
  <text fill="#000000" stroke-width="0" x="685.999999" y="752.222237" id="svg_144" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">于底</text>
  <text fill="#000000" stroke-width="0" x="686.999999" y="790.222237" id="svg_145" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">留营</text>
  <ellipse fill="#000" stroke-width="1.5" cx="676.999999" cy="814.222237" id="svg_146" rx="4" ry="5" transform="rotate(-17.003820419311523 677,814.2222290039059) "/>
  <ellipse fill="#000" stroke-width="1.5" cx="762.499999" cy="814.722239" id="svg_147" rx="4.5" ry="4.5" stroke="null"/>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="873.999999" cy="813.222237" id="svg_148" rx="5" ry="6"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="673.999999" y="832.222237" id="svg_150" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">油通村</text>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="743.999999" y="831.222237" id="svg_151" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">栾城西</text>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="862.999999" y="830.222237" id="svg_152" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">栾城</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="506.999999" cy="569.555563" id="svg_153" rx="6" ry="5"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="513.999999" y="573.555563" id="svg_154" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">塔谈</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="473.001931" cy="522.055563" id="svg_155" rx="5" ry="4.5"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="431.999999" y="540.555563" id="svg_156" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">火车站</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="428.999999" cy="493.555563" id="svg_157" rx="5" ry="5"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="430.999999" y="496.555563" id="svg_158" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">中兴路</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="428.999999" cy="454.055563" id="svg_159" rx="6" ry="5.5"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="375.94493" y="451.554597" id="svg_160" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">槐安大桥</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="428.999999" cy="428.06041" id="svg_161" rx="4" ry="4.5" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="432.996134" y="433.557495" id="svg_162" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">十一中</text>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="428.991304" y="409.552664" id="svg_163" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">新百广场</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="428.999999" cy="395.055563" id="svg_164" rx="5" ry="5.5"/>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="428.499999" cy="362.555563" id="svg_165" rx="4.5" ry="4"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="430.999999" y="366.555563" id="svg_166" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">市二中</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="556.999999" cy="601.555563" id="svg_167" rx="4" ry="5"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="542.999999" y="616.555563" id="svg_168" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">南栾</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="594.499999" cy="601.555563" id="svg_169" rx="4.5" ry="6" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="576.999999" y="616.555563" id="svg_170" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">涂料厂</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="640.999999" cy="601.055563" id="svg_171" rx="4" ry="3.5" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="644.999999" y="614.555563" id="svg_172" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">赵卜口</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="500.499999" cy="522.055563" id="svg_173" rx="4.5" ry="5.5"/>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="533.999999" cy="523.055563" id="svg_174" rx="4" ry="4.5"/>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="570.999999" cy="522.055563" id="svg_175" rx="5" ry="4.5"/>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="613.999999" cy="520.555563" id="svg_176" rx="4" ry="5"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="481.999999" y="540.555563" id="svg_177" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">金街村</text>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="514.999999" y="516.555563" id="svg_178" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">印刷二厂</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="539.370951" y="538.555563" id="svg_179" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(1.0378473997116089,0,0,1,-3.7421616464853287,0) " stroke="null">塔冢</text>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="601.999999" y="536.555563" id="svg_180" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">裕华</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="642.499998" cy="522.555563" id="svg_181" rx="4.5" ry="5" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="633.988405" y="541.561359" id="svg_182" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">南王</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="502.999515" cy="500.056044" id="svg_183" rx="4.001449" ry="3.500483" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="484.467594" y="490.918269" id="svg_184" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">东三教</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="546.527504" cy="497.925032" id="svg_185" rx="5.004831" ry="5.004831"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="550.531361" y="498.925999" id="svg_186" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">东岗头</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="549.530403" y="450.879628" id="svg_188" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">新世隆</text>
  <ellipse fill="#000" stroke-width="1.5" cx="546.527516" cy="454.883489" id="svg_190" rx="5.004831" ry="4.003865"/>
  <ellipse fill="#000" stroke-width="1.5" cx="469.453112" cy="453.38204" id="svg_191" rx="4.003865" ry="4.504348"/>
  <ellipse fill="#000" stroke-width="1.5" cx="512.494655" cy="454.383006" id="svg_192" rx="4.003865" ry="4.504348" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="455.439587" y="446.875753" id="svg_193" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">裕隆</text>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="485.468574" y="451.880589" id="svg_194" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">人防大厦</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="546.527504" cy="426.856437" id="svg_195" rx="5.004831" ry="4.003865"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="551.532327" y="429.859333" id="svg_196" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">河北大戏院</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="546.027021" cy="393.824555" id="svg_197" rx="4.504348" ry="4.003865"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="523.505274" y="407.838084" id="svg_198" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">北国商城</text>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="463.947798" cy="394.825521" id="svg_199" rx="4.504348" ry="4.003865" transform="rotate(-8.515549659729004 463.9478149414066,394.8255310058595) "/>
  <ellipse fill="#000" stroke="null" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="507.990308" cy="393.824555" id="svg_200" rx="4.504348" ry="4.003865"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="448.432829" y="387.818752" id="svg_201" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">大石桥</text>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="487.470491" y="387.818756" id="svg_202" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">市招待所</text>
  <ellipse fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="486.469536" cy="321.977427" id="svg_203" rx="4.003865" ry="4.003865"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="464.448291" y="316.972589" id="svg_204" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">军械学院</text>
  <ellipse fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="547.52847" cy="321.977427" id="svg_205" rx="5.004831" ry="5.004831"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="553.53427" y="315.971636" id="svg_207" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">蓝天圣木</text>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="548.028953" cy="355.009309" id="svg_208" rx="4.504348" ry="4.003865" stroke="null"/>
  <text fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="551.532349" y="358.01221" id="svg_209" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">长安公园</text>
  <ellipse fill="#000000" stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="571.551657" cy="393.546505" id="svg_210" rx="3.002898" ry="3.503381"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="611.590302" cy="394.046997" id="svg_211" rx="4.003865" ry="4.003867" stroke="null"/>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="549.530398" y="386.039262" id="svg_213" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">省博物馆</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="585.565171" y="408.060512" id="svg_214" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">河北医大</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" cx="589.068565" cy="322.47791" id="svg_215" rx="3.503381" ry="4.504348"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" x="572.552632" y="335.990957" id="svg_217" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">常青园</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" cx="639.617354" cy="320.97646" id="svg_218" rx="4.003865" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" x="617.5961" y="316.972593" id="svg_219" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">建华市场</text>
  <ellipse fill="#000" stroke-width="1.5" cx="640.618307" cy="359.513667" id="svg_220" rx="3.002894" ry="3.503383" stroke="#000000"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" x="643.621248" y="363.01704" id="svg_221" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">长安医院</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="639.617354" cy="393.546505" id="svg_222" rx="4.003865" ry="4.504348"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="622.600919" y="386.039262" id="svg_223" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">建百大楼</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="667.143923" cy="394.547471" id="svg_224" rx="3.503381" ry="4.504348"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="648.626038" y="412.064383" id="svg_225" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">艺术学校</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="694.170008" cy="394.046988" id="svg_226" rx="2.502415" ry="3.002898"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="680.65698" y="388.041193" id="svg_227" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">谈固</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="714.18934" cy="393.04601" id="svg_228" rx="2.502409" ry="3.002899" stroke="#000000"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="710.68595" y="388.041192" id="svg_229" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">白佛口</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="573.55359" cy="455.105922" id="svg_230" rx="3.002898" ry="4.003865"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="611.089819" cy="456.106888" id="svg_232" rx="3.503381" ry="4.003865" transform="rotate(34.604347229003906 611.0898437499999,456.10687255859375) "/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="551.532328" y="474.124278" id="svg_233" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.8376125693321228,0,0,0.8965385556221008,89.37905676104128,47.591964461526004) " stroke="#000000">石门公园</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="593.740997" y="473.002796" id="svg_234" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.8782094717025757,0,0,1.0333660371708502,73.00771278329194,-16.100229403334858) " stroke="#000000">省地震局</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="641.118803" cy="455.606405" id="svg_235" rx="4.504348" ry="4.504348"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="642.372324" y="471.236893" id="svg_236" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.8014817833900452,0,0,0.8965385556221008,127.54795417189598,49.17843431824622) " stroke="#000000">东明商城</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="641.619286" cy="425.577421" id="svg_237" rx="4.003865" ry="4.504348"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="646.62412" y="433.084667" id="svg_238" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">儿童医院</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="681.657939" cy="456.10687" id="svg_239" rx="3.002903" ry="4.003867" stroke="#000000"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="723.198026" cy="456.106888" id="svg_240" rx="4.504348" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="661.638609" y="454.104957" id="svg_242" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">国际城</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="697.673397" y="449.100123" id="svg_243" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.7739247408284767,0,0,1.0532593947250035,165.2605724980005,-23.222637915761684) " stroke="#000000">二十里铺</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="641.118803" cy="493.142634" id="svg_244" rx="4.504348" ry="4.003865"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="645.623181" y="496.145532" id="svg_246" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.8164405471893446,0,0,0.8458039164543152,118.44023293112517,77.31050842836521) " stroke="#000000">经济学院</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="672.148753" cy="521.169686" id="svg_248" rx="3.503381" ry="4.003865"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="696.17194" cy="522.170652" id="svg_249" rx="2.502415" ry="3.002898"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="735.209619" cy="521.169686" id="svg_250" rx="3.503381" ry="3.002898"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="784.256959" cy="521.169686" id="svg_251" rx="3.503381" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="662.639575" y="536.184179" id="svg_252" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">卓达</text>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="687.66374" y="517.165821" id="svg_253" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">位同</text>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="716.691763" y="537.185144" id="svg_254" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">中仰陵</text>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="770.743914" y="539.187077" id="svg_255" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">南豆</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="782.75551" cy="470.620897" id="svg_256" rx="4.003865" ry="3.503381"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="785.758408" y="475.125243" id="svg_257" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">北豆</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="781.254061" cy="410.562931" id="svg_258" rx="4.504348" ry="6.506279" stroke="#000000"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="760.734255" y="400.052785" id="svg_260" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">海世界</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="803.275316" cy="407.059548" id="svg_261" rx="4.504348" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="791.764205" y="423.075005" id="svg_262" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">卓达星辰</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="803.775799" cy="363.017038" id="svg_263" rx="4.003865" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="812.784498" y="371.024766" id="svg_264" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">石家庄东</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="802.774837" cy="321.476942" id="svg_265" rx="3.002899" ry="4.504346" stroke="#000000"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="766.740049" y="335.990953" id="svg_266" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">东杜庄</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="680.156482" cy="319.975494" id="svg_267" rx="3.503381" ry="4.003865" transform="rotate(-91.8455581665039 680.156494140625,319.97549438476557) "/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="661.638606" y="333.989019" id="svg_269" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">南翟营</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="718.193195" cy="320.475978" id="svg_270" rx="3.503381" ry="3.503381"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="702.67822" y="334.989985" id="svg_271" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">土贤庄</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="761.234745" cy="319.975495" id="svg_272" rx="2.50242" ry="3.002898" stroke="#000000"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="743.717831" y="316.972597" id="svg_273" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">西兆通</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="849.820241" cy="320.47598" id="svg_274" rx="4.003865" ry="4.504348" stroke="#000000"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="923.391251" cy="319.975494" id="svg_275" rx="4.504348" ry="5.004831"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="907.876275" y="336.991918" id="svg_276" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">东五女</text>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="834.80575" y="334.989984" id="svg_277" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">南杨庄</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="804.276282" cy="272.930086" id="svg_278" rx="3.503381" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="817.789325" y="278.935883" id="svg_280" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">东兆通</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="803.275327" cy="230.889509" id="svg_281" rx="3.503385" ry="5.004831" stroke="#000000"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="774.747784" y="241.900136" id="svg_282" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">西庄</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="639.617354" cy="277.434434" id="svg_284" rx="3.002898" ry="3.503381"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="598.577743" y="283.940715" id="svg_285" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">北翟营</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="691.667592" cy="275.432502" id="svg_286" rx="4.003865" ry="3.503381"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="694.670493" y="280.937816" id="svg_287" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">高营镇</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="691.667592" cy="227.886611" id="svg_288" rx="4.003865" ry="3.002898"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="701.677246" y="234.893374" id="svg_289" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">十里镇</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="547.52847" cy="273.430569" id="svg_290" rx="5.004831" ry="3.503381"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="552.533303" y="282.939748" id="svg_291" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">运河桥</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="573.053107" cy="227.886611" id="svg_292" rx="3.503381" ry="3.002898"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="579.55939" y="235.89434" id="svg_293" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">铁道大学</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="573.55359" cy="191.184514" id="svg_294" rx="5.004831" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="581.561325" y="199.192243" id="svg_295" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">西古城</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="600.079192" cy="162.156497" id="svg_297" rx="4.504348" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="606.585473" y="174.16809" id="svg_298" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">市农科院</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="627.105277" cy="133.628962" id="svg_299" rx="3.503381" ry="3.503381"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="633.61156" y="140.135243" id="svg_300" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">神学院</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="643.120735" cy="102.098529" id="svg_301" rx="4.504348" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="652.629912" y="108.104326" id="svg_302" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">西关</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="756.730391" cy="160.154564" id="svg_303" rx="4.003865" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="725.700437" y="169.163259" id="svg_304" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">临济</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="778.251163" cy="141.136208" id="svg_305" rx="3.503381" ry="4.003865"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="751.725569" y="133.128479" id="svg_306" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">行政中心</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="799.271451" cy="112.10819" id="svg_307" rx="4.504348" ry="4.003865"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="805.777734" y="117.11302" id="svg_308" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" stroke="#000000">罗家庄南</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="642.119769" cy="75.072443" id="svg_309" rx="4.504348" ry="3.002898"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="611.590308" y="71.06858" id="svg_311" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">正定</text>
  <ellipse fill="#000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="668.645372" cy="75.072443" id="svg_312" rx="3.002898" ry="2.001932" stroke="#000000"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="708.183534" cy="75.072443" id="svg_313" rx="3.503381" ry="3.002898"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="746.220247" cy="75.072444" id="svg_314" rx="3.503381" ry="4.003865"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="777.250197" cy="75.572926" id="svg_315" rx="3.503381" ry="3.503381" transform="rotate(-19.983339309692383 777.2501831054686,75.57292938232423) "/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="799.771934" cy="76.07341" id="svg_316" rx="3.002898" ry="4.003865"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="654.63184" y="53.051188" id="svg_317" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.6310911178588865,0,0,1.1429800318956038,234.08095569908622,6.064623812149378) " stroke="#000000">石家庄学院</text>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="694.67049" y="69.066649" id="svg_318" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">北关</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="722.028133" y="92.089297" id="svg_319" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.8579109907150269,0,0,0.8965385556221008,102.10205387510359,7.064776701236042) " stroke="#000000">天元湘西</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="759.733263" y="66.063749" id="svg_320" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.9008024982113554,0,0,0.8448078036308289,75.10194451922942,11.062743675987804) " stroke="#000000">天元湖</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="801.773877" y="88.085004" id="svg_321" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.8697400689125061,0,0,1,104.29342794977129,0) " stroke="#000000">罗家庄</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="853.824105" cy="75.072443" id="svg_322" rx="3.002898" ry="3.002898"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="897.866615" cy="75.072443" id="svg_323" rx="3.002898" ry="3.002898"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="941.909124" cy="74.57196" id="svg_324" rx="3.002898" ry="3.503381"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="989.455015" cy="77.074376" id="svg_325" rx="3.503381" ry="4.003865"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="1025.489796" cy="77.574859" id="svg_326" rx="2.502415" ry="3.503381"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="799.771934" cy="56.054086" id="svg_328" rx="3.002898" ry="2.001932"/>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="799.271451" cy="38.036696" id="svg_329" rx="2.502415" ry="3.002898"/>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="805.777722" y="62.059883" id="svg_330" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="matrix(0.8808890581130981,0,0,1,95.84336383268237,0) " stroke="#000000">罗家庄北</text>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="806.778709" y="42.040558" id="svg_331" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">侯家庄</text>
  <ellipse fill="#000" stroke="#000000" stroke-width="1.5" stroke-opacity="null" fill-opacity="null" cx="798.770968" cy="20.019306" id="svg_332" rx="3.002898" ry="3.002898"/>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="807.779682" y="27.026065" id="svg_335" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">树路</text>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="838.809613" y="72.069541" id="svg_336" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">诸福屯</text>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="884.854064" y="71.068579" id="svg_337" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">姚村</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="925.893694" y="71.068578" id="svg_338" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" stroke="#000000">蔡家岗</text>
  <text fill="#000000" stroke="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="969.93616" y="72.069541" id="svg_339" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">北白皮</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="1014.97967" y="72.069545" id="svg_340" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" stroke="#000">只都</text>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="822.126851" cy="521.558953" id="svg_341" rx="4.003865" ry="4.504348"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="871.174191" cy="520.057504" id="svg_342" rx="4.003865" ry="5.004831"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="932.233125" cy="520.057504" id="svg_343" rx="5.004831" ry="5.004831"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="972.27177" cy="520.057504" id="svg_344" rx="4.003865" ry="4.003865"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="1062.358721" cy="519.056538" id="svg_345" rx="5.004831" ry="5.004831"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="784.090138" cy="562.598564" id="svg_346" rx="5.004831" ry="5.505314"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="784.090138" cy="595.129964" id="svg_347" rx="4.003865" ry="4.003865"/>
  <ellipse fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="786.092069" cy="635.669095" id="svg_348" rx="6.005796" ry="5.505314" stroke="#000"/>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="789.094968" y="600.134794" id="svg_350" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">工农路</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="790.095941" y="565.10098" id="svg_351" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">东仰陵</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="805.110429" y="539.075861" id="svg_352" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">韩通</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="850.153902" y="536.072961" id="svg_353" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">北乐乡</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="917.218631" y="537.073929" id="svg_354" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">南席</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="954.254379" y="537.073927" id="svg_355" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">南席东</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="1041.338431" y="538.074896" id="svg_356" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">藁城西</text>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="1105.900748" cy="518.556055" id="svg_357" rx="4.504348" ry="4.504348"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="1157.450503" cy="518.556055" id="svg_358" rx="4.003865" ry="4.504348"/>
  <ellipse fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" cx="1232.522963" cy="518.055572" id="svg_359" rx="5.004831" ry="5.004831"/>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="1214.505573" y="541.07779" id="svg_360" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">工业园</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="1093.388672" y="538.074891" id="svg_361" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">藁城</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="1141.435048" y="536.072963" id="svg_362" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">藁城东</text>
  <text fill="#000000" stroke="#000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="795.100762" y="638.171507" id="svg_363" font-size="12" font-family="Helvetica, Arial, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve">郄马</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="135.751262" y="408.128657" id="svg_364" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-style="italic" font-weight="bold" transform="matrix(1.323177665479534,0,0,2.240630644060161,-55.21473357696062,-507.71592987101945) " stroke="#000">一号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="265.656498" y="684.755763" id="svg_365" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-weight="bold" font-style="italic" transform="matrix(1.5315284729003906,0,0,1.7718292474746704,-116.98609483242035,-542.8492174465209) " stroke="#000">五号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="970.937142" y="321.087678" id="svg_366" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-style="italic" font-weight="bold" transform="matrix(1.495351626744423,0,0,1.800472932482904,-508.79553720948513,-260.92749635914345) " stroke="#000">五号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="772.612192" y="23.155663" id="svg_367" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-weight="bold" font-style="italic" transform="matrix(1.2898725271224976,0,0,1.744183897972107,-251.8494042288512,-9.744157914072275) " stroke="#000">一号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="166.750789" y="595.474795" id="svg_368" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-weight="bold" font-style="italic" transform="matrix(1.4374249470139944,0,0,2.0201489091609233,-50.89796812457011,-629.1003914656308) " stroke="#000">四号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="474.294909" y="172.551198" id="svg_369" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-weight="bold" font-style="italic" transform="matrix(1.9909437202542648,0,0,1.6511370186348984,-297.1530456625842,-74.43033276948424) " stroke="#000">四号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="181.180804" y="504.691205" id="svg_370" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-weight="bold" font-style="italic" transform="rotate(-1.686640977859497 211.4925231933589,500.616546630859) matrix(1.6718876414088293,0,0,1.8462280011996268,-122.86901496428285,-422.74901314991126) " stroke="#000">六号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="801.467225" y="665.012241" id="svg_371" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" transform="rotate(-4.6771039962768555 828.464843749997,657.8839111328131) matrix(1.4308805400142246,0,0,1.786565288425906,-345.16096890320233,-521.435148001328) " stroke="#000" font-weight="bold" font-style="italic">六号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="920.888836" y="870.618091" id="svg_372" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-weight="bold" font-style="italic" transform="rotate(-5.417753219604492 919.7630004882803,830.1729736328117) matrix(1.5495148384528639,0,0,2.322592209137838,-537.1188968088334,-1180.662874606645) " stroke="#000">二号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="1012.786558" y="115.330423" id="svg_373" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-style="italic" font-weight="bold" transform="matrix(1.6311510801315308,0,0,1.8007729053497314,-657.0381361525506,-89.16105818003416) " stroke="#000">二号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="26.825145" y="233.484693" id="svg_374" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-weight="bold" font-style="italic" transform="matrix(1.5498554311623651,0,0,2.181600953061905,-21.428133679609594,-268.99278488329577) " stroke="#000">三号线</text>
  <text fill="#000000" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="1193.151622" y="470.787721" id="svg_375" font-size="12" font-family="Euphoria, sans-serif" text-anchor="start" style="user-select: none;" xml:space="preserve" font-weight="bold" font-style="italic" transform="matrix(1.9775887326892412,0,0,1.9396863738681418,-1188.54474343339,-416.25077726611875) " stroke="#000">三号线</text>
     </g>
    </svg>
    <br>
    <!-- <input type="button" onclick="zoom(1.1)" value="测试按钮"> -->
    
      





    <!-- 缩放结束 -->
    <br>
    
    <!-- 显示详细详细 -->
    <div class="tooltip" id="tooltip-1" style="left: 397px; top: 57px; display: none;">搜索</div>

    



<script type="text/javascript">
//     // 百度地图API功能测试
//     function G(id) {
//         return document.getElementById(id);
//     }

//     var map = new BMap.Map("l-map");
//     map.centerAndZoom("石家庄",10);                   // 初始化地图,设置城市和地图级别。

//     // 定义一个控件类,即function
//     function ZoomControl() {
//         this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;
//         this.defaultOffset = new BMap.Size(10, 10);
//     }

//     // 通过JavaScript的prototype属性继承于BMap.Control
//     ZoomControl.prototype = new BMap.Control();

//     // 自定义控件必须实现自己的initialize方法,并且将控件的DOM元素返回
//     // 在本方法中创建个div元素作为控件的容器,并将其添加到地图容器中
//     ZoomControl.prototype.initialize = function(map){
//       // 创建一个DOM元素
//       var div = document.createElement("div");
//       div.innerHTML = '<div id="r-result">搜索地址:<input type="text" id="suggestId" size="20" value="百度" style="150px;" /></div><div id="searchResultPanel" style="border:1px solid #C0C0C0;150px;height:auto; display:none;"></div>';

//       // 添加DOM元素到地图中
//       map.getContainer().appendChild(div);
//       // 将DOM元素返回
//       return div;
//     }

//     // 创建控件
//     var myZoomCtrl = new ZoomControl();
//     // 添加到地图当中
//     map.addControl(myZoomCtrl);


//     var ac = new BMap.Autocomplete(    //建立一个自动完成的对象
//         {"input" : "suggestId"
//         ,"location" : map
//     });

//     ac.addEventListener("onhighlight", function(e) {  //鼠标放在下拉列表上的事件
//     var str = "";
//         var _value = e.fromitem.value;
//         var value = "";
//         if (e.fromitem.index > -1) {
//             value = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
//         }
//         str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value;

//         value = "";
//         if (e.toitem.index > -1) {
//             _value = e.toitem.value;
//             value = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
//         }
//         str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value;
//         G("searchResultPanel").innerHTML = str;
//     });

//     var myValue;
//     ac.addEventListener("onconfirm", function(e) {    //鼠标点击下拉列表后的事件
//     var _value = e.item.value;
//         myValue = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
//         G("searchResultPanel").innerHTML ="onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;

//         setPlace();
//     });

//     function setPlace(){
//         map.clearOverlays();    //清除地图上所有覆盖物
//         function myFun(){
//             var pp = local.getResults().getPoi(0).point;    //获取第一个智能搜索的结果
//             map.centerAndZoom(pp, 14);
//             map.addOverlay(new BMap.Marker(pp));    //添加标注
//         }
//         var local = new BMap.LocalSearch(map, { //智能搜索
//           onSearchComplete: myFun
//         });
//         local.search(myValue);
//     }
// 

//--------------------滚轮实现矢量图(路径)放大功能---------------------------
var myimage = document.getElementById("subwayimage22");
if (myimage.addEventListener) {
    // IE9, Chrome, Safari, Opera
    myimage.addEventListener("mousewheel", MouseWheelHandler, false);
    // Firefox
    myimage.addEventListener("DOMMouseScroll", MouseWheelHandler, false);
}
// IE 6/7/8
else myimage.attachEvent("onmousewheel", MouseWheelHandler);
function MouseWheelHandler(e) {

    // cross-browser wheel delta
    var e = window.event || e; // old IE support
    var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
    //myimage.style.width = Math.max(50, Math.min(1900, myimage.width + (30 * delta))) + "px";

    e.wheelDelta>0 || e.detail >0?zoombypositon(1.1,e):zoombypositon(0.9,e);
   return false;
}


//------------------------------实现放大矢量图功能----------------------------------------
var svg = document.getElementById("svgimg");
    var svgPanel = document.getElementById("subwayimage");
    var bgPath=document.getElementById("subwayimage").getBBox();
    var gridSvg = document.getElementById("grid");
    var width = 800;  //设置svg整体的宽和高
    var height = 400;
    var gridLength = 20; //定义网格的大小
    var scale=1.0;
    svg.setAttribute("width",width);
    svg.setAttribute("height",height);

    //绘制网格
    drawGrid(gridSvg,width,height,gridLength);

    /**
     * 绘制网格     
     * @param {Object} svgBackground 绘制网格对象
     * @param {Int} winWidth 区域宽度
     * @param {Int} winHeigth 区域高度
     * @param {Int} gridLength 网格大小
     */
    function drawGrid(svgBackground,winWidth,winHeight,gridLength) {
        var childs = gridSvg.childNodes;
        //删除之前的网格节点,便于重绘
        for (var i = childs.length - 1; i >= 0; i--) {
            svgBackground.removeChild(childs.item(i));
        }
        for (var i = 0, len = Math.ceil(winWidth / gridLength); i <= len; i++) {
            var attrs = {
                x1: i * gridLength,
                y1: 0,
                x2: i * gridLength,
                y2: winHeight,
                stroke: "#ddd"
            };
            var line = resetSVG("line", attrs);
            svgBackground.appendChild(line);
        };                                                                                                                                                         
        for (var i = 0, len = Math.ceil(winHeight / gridLength); i <= len; i++) {
            var attrs = {
                x1: 0,
                y1: i * gridLength,
                x2: winWidth,
                y2: i * gridLength,
                stroke: "#ddd"
            };
            var line = resetSVG("line", attrs);
            svgBackground.appendChild(line);
        };
    }

    /**
     * js创建svg元素        
     * @param {String} tag svg的标签名
     * @param {Object} svg元素的属性
     */
    function resetSVG(tag, attrs) {
        var element = document.createElementNS('http://www.w3.org/2000/svg', tag);
        for (var k in attrs) {
            element.setAttribute(k, attrs[k]);
        }
        return element;
    }

    /**
     * svg放缩
     * {Float} num 放缩的倍数
     */
    function zoom(num){
        if((scale<2.14||num<1)&&(scale>0.5||num>1))
         {
            scale*= num;
            if(!fmemory)
            {
                bx1=0;
                by1=0;
                bx=0;
                by=0;
                bx=1;
                by=1;
                fmemory=true;
            }
            svgPanel.setAttribute("transform","scale("+scale+") translate("+bx+","+by+")");
         }
    }
    var bx1=0.0;
    var by1=0.0;
    var bx=bgPath.x;
    var by=bgPath.y;
    var addTemp=false;
    function zoombypositon(num,e){
        if((scale<2.0||num<1)&&(scale>0.5||num>1))
        {
             scale*= num;
        
                var bWitdth=bgPath.width;
                var bHeight=bgPath.height;
                bx=bgPath.x;
                by=bgPath.y;
                var x=e.clientX-bx;
                var y=e.clientY-by;
                x-=x*scale;
                y-=y*scale;
                bx+=x/scale;
                by+=y/scale;
                //-----偏移量设置----
                if(fmemory)
                {
                    bx-=(bgPath.x-bx1)/scale;
                    by-=(bgPath.y-by1)/scale;
                }
                else
                {
                    bx-=bgPath.x/scale;
                    by-=bgPath.y/scale;
                }
                
                svgPanel.setAttribute("transform","scale("+scale+") translate("+bx+","+by+")");
                addTemp=true;
     }
       
    }
    var g_checkDown=false;
    var fmemory=false;
    var x=0.0;
    var y=0.0;
    // var t,et;
     function on_Mouseup(e)
    {
         //alert("鼠标移动到了按钮,通过onmouseover方法触发了mouseover事件");
        g_checkDown=false;
        
    }
    function on_Mousedown(e)
    {
         //alert("鼠标移动到了按钮,通过onmouseover方法触发了mouseover事件");
        g_checkDown=true;
        x=e.clientX;
            y=e.clientY;
            if(!fmemory)
            {
                bx1=0;
        by1=0;
        bx=0;
        by=0;
        bx=1;
        by=1;
        fmemory=true;
            }
    else
    {
        bx1=bx;
        by1=by;
    }
            // et=e;
        // t=setTimeout("text()",500);
        
            
    }
    var oldscale=1.0;
    var g_once=false;
     function on_Mousemove(e)
    {


        if(!g_once)
        {
            oldscale=1.0;
            g_once=true;
        }

        if(g_checkDown)
        {
            bx1+=((e.clientX-x))/scale;
            by1+=((e.clientY-y))/scale;
            bx+=((e.clientX-x))/scale;
            by+=((e.clientY-y))/scale;
            if(addTemp)
            {
                //偏移量设置
                // bx1-=(bx-bgPath.x)*(oldscale-scale);
                // by1-=(by-bgPath.y)*(oldscale-scale);
                addTemp=false;
                oldscale=scale;
            }
            
            svgPanel.setAttribute("transform", "scale("+scale+") translate("+(bx1)+","+(by1)+")");
            x=e.clientX;
                y=e.clientY;
                //alert("鼠标移动到了按钮,通过onmouseover方法触发了mouseover事件"+(bx+e.clientX-x));
        }
    }
    //计时器例子
    // function text(e)
    // {
    //     if(g_checkDown)
    //     {
    //         bx=bgPath.x;
    //             by=bgPath.y;
    //         svgPanel.setAttribute("transform","translate("+(bx+et.clientX-x)+","+by+et.clientY-y+")");
    //         x=et.clientX;
    //             y=et.clientY;
    //             //alert("鼠标移动到了按钮,通过onmouseover方法触发了mouseover事件"+(bx+e.clientX-x));
    //             alert("鼠标移动到了按钮,通过onmouseover方法触发了mouseover事件"+(bx+et.clientX-x));
    //             t=setTimeout("text()",500);
                
    //     }
    //     else
    //     {
    //         clearTimeout(t)
    //     }
    // }

   

//---------------------绑定滚轮放大矢量图图功能--------------
// if(document.addEventListener){                                
//     document.addEventListener('DOMMouseScroll',scrollZoom,false);
// }
// window.onmousewheel=document.onmousewheel=scrollZoom;

// *
//  * 滑轮滚动处理事件,向上滚放大
//  * {Object} e 事件对象
 
// function scrollZoom(e){
//     e=e || window.event;
//     //e.detail用来兼容 FireFox
//     e.wheelDelta>0 || e.detail >0?zoom(1.1):zoom(0.9);
// }
//-----------------------------------------

// 文件可移动到电脑
// window.onload = function () {
//             var box1 = document.getElementById("subwayimage");
//             box1.onmousedown = function (event) {
//                 // console.log(1);
//                 /*再次点击时使得图标任然在那个位置,鼠标可以点击到图标上*/
//                 var ol = event.clientX - box1.offsetLeft;
//                 var ot = event.clientY - box1.offsetTop;
//                 /*鼠标点击*/
//                 document.onmousemove = function (event) {
//                     var left = event.clientX - ol;
//                     var top = event.clientY - ot;
//                     box1.style.left = left+"px";/*赋值*/
//                     box1.style.top = top+"px";
//                 }
//                 /*鼠标松开*/
//                 document.onmouseup = function (event) {
//                     document.onmousemove = null;
//                     document.onmouseup = null;
//                 }
//             }
//         }



</script>

</body>
</html>
 <%
         Object message = request.getAttribute("message");
         if(message!=null && !"".equals(message)){
     
    %>
         <script type="text/javascript">
              alert("<%=request.getAttribute("message")%>");
         </script>
    <%} %>

handleSql.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
  <%@ page language="java" import="java.util.*"%>
  <%@ page language="java" import="lyz.ClassService"%>
  <%@ page language="java" import="com.hdq.entity.LineInfo"%>
  <%@ page language="java" import="com.hdq.entity.Linenum" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数据处理层</title>

</head>
<body>
<%
    request.setCharacterEncoding("utf-8");
    //--------------------------------
    String start=request.getParameter("start");
    String end=request.getParameter("end");
    ClassService service=new ClassService();
    @SuppressWarnings("unchecked")
    List<Linenum> ln=(List<Linenum>)service.list("linenum", new String[]{"linenum"},new Linenum().getClass());
    int g_slinenum=-1,g_elinenum=-1;
    int g_snum=-1,g_enum=-1;
    List<LineInfo> pathInfo=new ArrayList<LineInfo>();
    c:for(Linenum it:ln)
    {
        int g_count=0;
        @SuppressWarnings("unchecked")
        List<LineInfo> info=(List<LineInfo>)service.list("line"+it.getLinenum(), new String[]{"linenum","name"},new LineInfo().getClass());
        
        for(LineInfo it1:info)
        {
            
            if(it1.getName().equals(start))
            {
                
                //找到相应的节点
                g_slinenum=it.getLinenum();
                g_snum=g_count;
            }
            if(it1.getName().equals(end))
            {
                g_elinenum=it.getLinenum();
                g_enum=g_count;
            }
            if(g_elinenum!=-1&&g_slinenum!=-1)
                break c;
            g_count++;
        }
        
    }
    if(g_slinenum!=-1&&g_elinenum!=-1)
    {
        if(g_elinenum!=g_slinenum)
        {
            //情况一:换乘线路只有一或没有的情况给予最短路径
            @SuppressWarnings("unchecked")
            List<LineInfo> einfo=(List<LineInfo>)service.list("line"+g_elinenum, new String[]{"linenum","name"},new LineInfo().getClass());
            @SuppressWarnings("unchecked")
            List<LineInfo> sinfo=(List<LineInfo>)service.list("line"+g_slinenum, new String[]{"linenum","name"},new LineInfo().getClass());
            int g_center=-1,g_ecenter=-1;
            boolean fOutside=false,feOutside=false;
            for(int i=0;i<sinfo.size();i++)
            {
                if(i==g_snum)
                    fOutside=true;
                if(sinfo.get(i).getLinenum()==g_elinenum)
                {
                    g_center=i;
                }
                if(g_center!=-1&&fOutside)
                    break;
            }
            
            if(g_center<g_snum)
            {
                pathInfo=sinfo.subList(g_center, g_snum+1);
                Collections.reverse(pathInfo);
            }
            else
            {
                
                pathInfo=sinfo.subList(g_snum, g_center+1);
            }
            List<LineInfo> subPathInfo=new ArrayList<LineInfo>();
            for(int i=0;i<einfo.size();i++)
            {
                
                if(i==g_enum)
                    feOutside=true;
                if(g_center<g_snum)
                {
                    if(einfo.get(i).getName().equals(sinfo.get(g_snum).getName()))
                    {
                        g_ecenter=i;
                    }
                }
                else
                {
                    if(einfo.get(i).getName().equals(sinfo.get(g_center).getName()))
                    {
                        g_ecenter=i;
                    }
                }
                if(g_ecenter!=-1&&feOutside)
                    break;
            }
            
            if(g_ecenter<g_enum)
            {
                subPathInfo=einfo.subList(g_ecenter, g_enum+1);
            }
            else
            {
                subPathInfo=einfo.subList(g_enum, g_ecenter+1);
                Collections.reverse(subPathInfo);
            }
            LineInfo pointInfo=new LineInfo();
            pointInfo.setName("换乘"+g_elinenum+"号线路");
            pathInfo.add(pointInfo);
            pathInfo.addAll(subPathInfo);
            
        }
        else
        {
            @SuppressWarnings("unchecked")
            List<LineInfo> sinfo=(List<LineInfo>)service.list("line"+g_slinenum, new String[]{"linenum","name"},new LineInfo().getClass());
            
            if(g_snum>g_enum)
            {
                pathInfo=sinfo.subList(g_enum,g_snum+1);
                Collections.reverse(pathInfo);
            }
            else pathInfo=sinfo.subList(g_snum,g_enum+1);
        }
        //情况二:考虑可能换乘两路的情况
        @SuppressWarnings("unchecked")
        List<LineInfo> einfo=(List<LineInfo>)service.list("line"+g_elinenum, new String[]{"linenum","name"},new LineInfo().getClass());
        @SuppressWarnings("unchecked")
        List<LineInfo> sinfo=(List<LineInfo>)service.list("line"+g_slinenum, new String[]{"linenum","name"},new LineInfo().getClass());
        //开始中间节点的储存
        List<LineInfo> scenterPointList=new ArrayList<LineInfo>();
        List<Integer> snumList=new ArrayList<Integer>();
        //结束中间节点的储存
        List<LineInfo> ecenterPointList=new ArrayList<LineInfo>();
        List<Integer> enumList=new ArrayList<Integer>();
        List<Integer> ecnumList=new ArrayList<Integer>();
        List<Integer> scnumList=new ArrayList<Integer>();
        
        //储存所有可能出现的路径的容器
        List<List<LineInfo>> pathList=new ArrayList<List<LineInfo>>();
        for(int i1=0;i1<einfo.size();i1++)
        {
            for(int j1=0;j1<sinfo.size();j1++)
            {
                if(einfo.get(i1).getLinenum()==sinfo.get(j1).getLinenum()&&sinfo.get(j1).getLinenum()!=-1)
                {
                    scenterPointList.add(sinfo.get(j1));
                    snumList.add(j1);
                    ecenterPointList.add(einfo.get(i1));
                    enumList.add(i1);
                }
            }
        }
        for(int i=0;i<scenterPointList.size();i++)
        {
            //储存开始节点到线路节点信息
            List<LineInfo> pathTemp;
            //起点到开始中间节点路径
            if(g_snum>snumList.get(i))
            {
                pathTemp=new ArrayList<LineInfo>(sinfo.subList(snumList.get(i), g_snum+1));
                Collections.reverse(pathTemp);
            }
            else
            {
                pathTemp=new ArrayList<LineInfo>(sinfo.subList( g_snum,snumList.get(i)+1));
            }
            //获取中间节点线路
            @SuppressWarnings("unchecked")
            List<LineInfo> centerinfo=(List<LineInfo>)service.list("line"+scenterPointList.get(i).getLinenum(), new String[]{"linenum","name"},new LineInfo().getClass());
            //初始化中间线路节点的开始站点和结束站点位置
            int scnum=-1,ecnum=-1;
            for(int j=0;j<centerinfo.size();j++)
            {
                if(scenterPointList.get(i).getName().equals(centerinfo.get(j).getName()))
                {
                    scnum=j;
                }
                if(ecenterPointList.get(i).getName().equals(centerinfo.get(j).getName()))
                {
                    ecnum=j;
                }
                if(ecnum!=-1&&scnum!=-1)
                {
                    break;
                }
            }
            if(scnum!=-1&&ecnum!=-1)
            {
                if(scnum>ecnum)
                {
                    List<LineInfo> temp=new ArrayList<LineInfo>(centerinfo.subList(ecnum,scnum+1));
                    Collections.reverse(temp);
                    LineInfo pointInfo=new LineInfo();
                    pointInfo.setName("换乘"+scenterPointList.get(i).getLinenum()+"号线路");
                    pathTemp.add(pointInfo);
                    pathTemp.addAll(temp);
                    
                }
                else
                {
                    List<LineInfo> temp=new ArrayList<LineInfo>(centerinfo.subList(scnum,ecnum+1));
                    LineInfo pointInfo=new LineInfo();
                    pointInfo.setName("换乘"+scenterPointList.get(i).getLinenum()+"号线路");
                    pathTemp.add(pointInfo);
                    pathTemp.addAll(temp);
                }
                LineInfo pointInfo=new LineInfo();
                pointInfo.setName("换乘"+centerinfo.get(ecnum).getLinenum()+"号线路");
                pathTemp.add(pointInfo);
            }
            ecnumList.add(ecnum);
            scnumList.add(scnum);
            //从开始中间节点到结束节点路径
            if(g_enum>enumList.get(i))
            {
                List<LineInfo> temp=new ArrayList<LineInfo>(einfo.subList(enumList.get(i), g_enum+1));
                pathTemp.addAll(temp);
            }
            else
            {
                List<LineInfo> temp=new ArrayList<LineInfo>(einfo.subList( g_enum,enumList.get(i)+1));
                Collections.reverse(temp);
                pathTemp.addAll(temp);
            }
            pathList.add(pathTemp);
        }
        //最优路径求解
        //若不是同一线路则进行求解
        if(g_slinenum!=g_elinenum)
        {
            for(int z=0;z<pathList.size();z++)
            {
                //若是换乘两次才进行比较
                if(ecnumList.get(z)!=-1&&scnumList.get(z)!=-1)
                {
                    if((pathInfo.size()-2)>(pathList.get(z).size()-4))
                    {
                        pathInfo=pathList.get(z);
                    }
                }
            }
        }
    /*
        //上述情况都是根据同学的想法实现的,但是总是不对,下面用自己之前的迷宫实现最优路径
        //情况三:迷宫算法
        //迷宫算法储存转换节点权值
        List<Integer> valueList=new ArrayList<Integer>();
        List<List<List<LineInfo>>> theShortest=new ArrayList<List<List<LineInfo>>>();
        for(int i=0;i<sinfo.size();i++)
        {
            //更改的线路号
            int g_changePoint=sinfo.get(i).getLinenum();
            if(g_changePoint==-1)
                continue;
            List<LineInfo> temp=new ArrayList<LineInfo>();
            LineInfo changePoint=sinfo.get(i);
            if(g_snum>i)
            {
                temp=new ArrayList<LineInfo>(sinfo.subList(i, g_snum+1));
                Collections.reverse(temp);
            }
            else
            {
                temp=new ArrayList<LineInfo>(sinfo.subList( g_snum,i+1));
            }
            //权值初始化
            Integer valueUp=0;
            
            //换乘不能重复
            List<Integer> cantRepeat=new ArrayList<Integer>();
            cantRepeat.add(g_changePoint);
            valueUp++;
            //储存上一路径信息
            List<LineInfo> lastPath=new ArrayList<LineInfo>(sinfo);
            List<List<LineInfo>> tempSelect=new ArrayList<List<LineInfo>>();
            while(changePoint.getLinenum()!=g_elinenum)
            {
                List<LineInfo> pathTemp=new ArrayList<LineInfo>(temp);
                //获取转折节点线路
                @SuppressWarnings("unchecked")
                List<LineInfo> changePath=(List<LineInfo>)service.list("line"+changePoint.getLinenum(), new String[]{"linenum","name"},new LineInfo().getClass());
                 
                //另一结束节点在本线路中位置
                for(int g=0;g<changePath.size();g++)
                {
                    g_changePoint=changePath.get(g).getLinenum();
                    if(g_changePoint==-1)
                        continue;
                    if(cantRepeat.contains(g_changePoint)||g_changePoint==g_slinenum)
                        continue;
                    
                    //初始化中间线路节点的开始站点和结束站点位置
                    int scnum=-1;
                    for(int j=0;j<changePath.size();j++)
                    {
                        if(lastPath.get(i).getName().equals(changePath.get(j).getName()))
                        {
                            scnum=j;
                        }
                        if(scnum!=-1)
                        {
                            break;
                        }
                    }
                    //scnum开始节点,g结束节点位置,g_changePoint线路号,changePath路径信息
                    if(scnum>g)
                    {
                        //添加换乘节点信息:代填
                        LineInfo pointInfo=new LineInfo();
                        pointInfo.setName("换乘"+changePoint.getLinenum()+"号线路");
                        pathTemp.add(pointInfo);
                        pathTemp.addAll(temp);
                        //路径添加
                        List<LineInfo> temp1=new ArrayList<LineInfo>(changePath.subList(g, scnum+1));
                        Collections.reverse(temp1);
                        pathTemp.addAll(temp1);
                        
                        //中介线路号更改
                        g_changePoint=changePath.get(g).getLinenum();
                        //储存上条路径
                        lastPath=new ArrayList<LineInfo>(changePath);
                        //权值加一
                        valueUp++;
                        //最后节点的存储
                        changePoint=changePath.get(g);
                        cantRepeat.add(changePoint.getLinenum());
                    }
                    else
                    {
                        //添加换乘节点信息:代填
                        LineInfo pointInfo=new LineInfo();
                        pointInfo.setName("换乘"+changePoint.getLinenum()+"号线路");
                        pathTemp.add(pointInfo);
                        pathTemp.addAll(temp);
                        //路径添加
                        List<LineInfo> temp1=new ArrayList<LineInfo>(changePath.subList(scnum, g+1));
                        pathTemp.addAll(temp1);
                        
                        //中介线路号更改
                        g_changePoint=changePath.get(g).getLinenum();
                        //储存上条路径
                        lastPath=new ArrayList<LineInfo>(changePath);
                        //权值加一
                        valueUp++;
                        //最后节点的存储
                        changePoint=changePath.get(g);
                        cantRepeat.add(changePoint.getLinenum());
                    }
                    //存储进待选里面最后分析
                    tempSelect.add(pathTemp);
                    //----------------
                }
                theShortest.add(tempSelect);
            }    
        }
        //把上面求得的路径归一
        List<List<LineInfo>> tempSum=new ArrayList<List<LineInfo>>();
        
        
        //权值列表
        List<Integer> valueUpList=new ArrayList<Integer>();
        for(int i=0;i<theShortest.size();i++)
        {
            //添加换乘节点信息:代填
            LineInfo pointInfo=new LineInfo();
            pointInfo.setName("换乘"+g_elinenum+"号线路");
            tempSum.get(i).add(pointInfo);
            List<LineInfo> temp=new ArrayList<LineInfo>();
            for(int j=0;j<theShortest.get(i).size();j++)
            {
                tempSum.get(j).addAll(theShortest.get(i).get(j));
                if(valueUpList.size()>j)
                    valueUpList.set(j, valueUpList.get(j)+1);
                else valueUpList.add(2);
            }
        }
        
        //最终路径
        List<Integer> finalNum=new ArrayList<Integer>();
        for(int i=0;i<einfo.size();i++)
        {
            String finalName=tempSum.get(i).get(tempSum.get(i).size()-1).getName();
            if(finalName.equals(einfo.get(i).getName()))
            {
                finalNum.add(i);
            }
        }
        for(int i=0;i<einfo.size();i++)
        {
            if(g_enum>finalNum.get(i))
                tempSum.add(new ArrayList<LineInfo>(einfo.subList(finalNum.get(i), g_enum+1)));
            else
            {
                List<LineInfo> temp=new ArrayList<LineInfo>(einfo.subList(g_enum, finalNum.get(i)+1));
                Collections.reverse(temp);
                tempSum.add(temp);
            }
        }
        //若不是同一线路则进行求解
                if(g_slinenum!=g_elinenum)
                {
                    for(int z=0;z<tempSum.size();z++)
                    {
                        //若是换乘两次才进行比较
                        if(ecnumList.get(z)!=-1&&scnumList.get(z)!=-1)
                        {
                            if((pathInfo.size()-2)>(tempSum.get(z).size()-valueUpList.get(z)*2))
                            {
                                pathInfo=tempSum.get(z);
                            }
                        }
                    }
                }
        */
        //-----------------------------------迷宫循环
        String info=new String("查询的信息如下:");
        for(LineInfo it:pathInfo)
        {
            info+=it.getName();
            if(!it.getName().equals(pathInfo.get(pathInfo.size()-1).getName()))
            {
                info+="-";
            }
        }
        request.setAttribute("message",info);
    }
    else
    {
        request.setAttribute("message","查无信息,请确定你输入的起点和终点的名称正确");
    }
    request.getRequestDispatcher("subway.jsp").forward(request,response);
%>
</body>
</html>

实验截图:

 

 2.

3

4

编程总结分析:这一次的地铁管理系统是我们开学来第一次团队开发出来的程序,刚开始我和合作人肖成龙我们俩是自己写自己的,但是到后来代码合起来的时候发现有很多问题。然后我们就改进方法分工合作,用统一的编程软件开发。最终我们成功了。经过这次教训我知道了开发不是一个人的事情,是靠团队的力量来完成的,以后的路上肯定会有许多开发项目,这次的教训可以让我们避免再犯同样的错误。

 
原文地址:https://www.cnblogs.com/1502762920-com/p/10772699.html