之前我做了定位系统的递归运动轨迹,见上一篇微博;
但是由于给定两个位置相隔的比较远的基站位置,两个基站之间的路线有很多种,我们只需要其中一种就可以了,在我测试过程中,总是得到好几种路线放在一起的集合;
怎么跳出递归运算的for循环呢?
break;是跳出一层;
return:也没什么用
最主要的是标签
标签结构如下:
outgo:for(){
…
…
…
if(条件){
…
}
break outgo;
}
案例:
package cn.com.lf;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.image.BufferedImage;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import cn.com.gj.Route;
public class Recursive {
//递归算法寻找轨迹
//1.查询数据库获取list(某个时间段某个经过的基站的集合)ll
public static List list=new ArrayList();
public static List point = new ArrayList();
public static Point pp;
public static Point pa;
public static List ll = new ArrayList();// 最终的路线轨迹
public static List ll1 = new ArrayList();// 最终的路线轨迹
public static int m=0;
public static List select_num(String id, String start_time,
String end_time) {
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd");
String dd = sim.format(new Date());
String sql = "select bs from yh where number=? and time BETWEEN ? and ? order by time asc";
String[] sz = {id, start_time, end_time };
ResultSet rs = JdbcUtils.select(sql, sz);
List list0 = new ArrayList();
try {
rs.last();
int c = rs.getRow();
int j = 0;
rs.beforeFirst();
if (start_time == "" || end_time == "") {
}
if (c == 0) {
} else {
while (rs.next()) {
list0.add(rs.getString(1));
j++;
}
list.add(list0.get(0));
for (int i = 0; i < j; i++) {
if (i + 1 < j) {
if (!(list0.get(i).endsWith(list0.get(i + 1)))) {
list.add(list0.get(i + 1));
}
}
}
}
JdbcUtils.closeAll();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//ll就是经过的基站集合
return list;
}
public static void main(String[] args) {
BufferedImage bi=new BufferedImage(800, 800, BufferedImage.TYPE_INT_RGB);
//几何图形类新建对象----绘制图片
Graphics2D gh = bi.createGraphics();
List lo=new ArrayList();
/*lo.add("017");
lo.add("012");*/
lo.add("027");
lo.add("020");
crc(gh,lo);
for (Route rr2 : ll) {
System.out.println(rr2.getStarta() + ":" + rr2.getEnda() + ":"
+ rr2.getStartb() + ":" + rr2.getEndb());
}
}
//2.循环遍历这个集合
public static void crc(Graphics gh,List list){
//这个是取的第一个和第二个基站的;
int sa = 0;
int sb = 0;
int ea = 0;
int eb = 0;
int sz[] = null;
int zz[] = null;
for (int j = 0; j < list.size() - 1; j++) {
sz = case1(list.get(j), sa, sb);// #30的x y左边
zz = case1(list.get(j + 1), ea, eb);// #20的x y左边
List result= drawline(gh, sz[0], sz[1], zz[0], zz[1]);
List lr=RouteLine(sz[0],sz[1]);
if (result.get(0) != null) {
// 第一次寻找中介集合
// 查看添加的元素是不是最后一位
pp = new Point(sz[0], sz[1]);
point.add(pp);
pp = new Point(zz[0], zz[1]);
point.add(pp);
for (int i = 0; i < point.size() - 1; i++) {
int x=(int) point.get(i).getX();
int y=(int) point.get(i).getY();
int x1=(int) point.get(i+1).getX();
int y1=(int) point.get(i+1).getY();
Route re = new Route(x,y , x1,y1);
ll.add(re);
}
break;
} else {
pp = new Point(sz[0], sz[1]);
Route rrs=null;
Plan(gh, sz, zz,lr,rrs,pp,pa);
}
}
}
//递归函数
// 递归函数
public static void Plan(Graphics gh, int sz[], int zz[],List lr,Route rrs,Point pd,Point pa) {
// 把每一个要经过的点都放在一个集合里
//不把初始值放两次进去
int sa0=0;
int sb0=0;
m++;
if(m==1){
sa0=0;
sb0=0;
}
Point p0=null;
outgo:for (Route rr : lr) { //#22 #12 #21
if(rrs!=null){
sa0 = rrs.getStarta();//72
sb0 = rrs.getEnda();//281
p0= new Point(rrs.getStartb(), rrs.getEndb());
}
sz[0] = rr.getStartb();//72#22
sz[1] = rr.getEndb();//281
if (sz[0] != sa0 || sz[1] != sb0) {
List result0=drawline(gh, sz[0], sz[1], zz[0], zz[1]);
List lrr=RouteLine(sz[0],sz[1]);
if (result0.get(0) != null) {
ll=null;
ll=new ArrayList();
// 第一次寻找中介集合
// 查看添加的元素是不是最后一位
if(rrs!=null){
point.add(pa);
}
point.add(pd);
if(rrs!=null){
point.add(p0);
}
pp = new Point(sz[0], sz[1]);
point.add(pp);
pp = new Point(zz[0], zz[1]);
point.add(pp);
for (int i = 0; i < point.size() - 1; i++) {
int x=(int) point.get(i).getX();
int y=(int) point.get(i).getY();
int x1=(int) point.get(i+1).getX();
int y1=(int) point.get(i+1).getY();
Route re = new Route(x,y,x1,y1);
ll.add(re);
} // for结束
// 1.由于集合无论是否添加一个数组,大小都是1,所以需要判断第一个是不是空的就可以了
break outgo;
} // if
else {
ingo:for (Route rr2 : lrr) {
Point p1 = new Point(rr.getStartb(), rr.getEndb());
int sa1 = rr.getStarta();//337
int sb1 = rr.getEnda(); // 281
sz[0] = rr2.getStartb();//71
sz[1] = rr2.getEndb();//96
if (sz[0] != sa1 || sz[1] != sb1) {
List l3 = drawline(gh, sz[0], sz[1], zz[0], zz[1]);
List lrr1 =RouteLine(sz[0],sz[1]);
if (l3.get(0) != null) {
// 第一次寻找中介集合
// 查看添加的元素是不是最后一位
ll=null;
ll=new ArrayList();
if(rrs!=null){
point.add(pa);
}
point.add(pd);
point.add(p1);
pp = new Point(sz[0], sz[1]);
point.add(pp);
pp = new Point(zz[0], zz[1]);
point.add(pp);
for (int i = 0; i < point.size() - 1; i++) {
int x=(int) point.get(i).getX();
int y=(int) point.get(i).getY();
int x1=(int) point.get(i+1).getX();
int y1=(int) point.get(i+1).getY();
Route re = new Route(x,y,x1,y1);
ll.add(re);
} // for结束
// 1.由于集合无论是否添加一个数组,大小都是1,所以需要判断第一个是不是空的就可以了
break ingo;
} // if
else {
//point.add(pd);
Plan(gh, sz, zz,lrr1,rr2, p1,pd);
}
}
}
}
}
break outgo;
}
}
//这个是以某个基站为起点,所有可能相邻基站的路线集合
public static List drawline(Graphics gh, int sa, int sb, int ea,
int eb) {
List result = new ArrayList();
// 1.1#30
Route rr =null;
if( sa== 71 && sb == 96 ){
//==#22
if(ea == 72 && eb== 281){
gh.drawLine(71,96,72,281);
//这个rr是放直达的路线的
rr = new Route(sa, sb, ea, eb);
}
}
//2.#22
if( sa== 72 && sb == 281){
//==#30
if(ea== 71 && eb == 96){
gh.drawLine(72,281,71,96);
rr = new Route(sa, sb, ea, eb);
}
//==#20
else if(ea == 337 && eb == 281){
gh.drawLine(72,281,337,281);
rr = new Route(sa, sb, ea, eb);
}
//===#17曲线
else if(ea == 145 && eb == 86){
gh.drawLine(72, 281, 189, 281);// #22--(1)
gh.drawLine( 189, 281,148, 275);// (1)----(2)
gh.drawLine(148, 275,145, 86);// (2)--#17
rr = new Route(sa, sb, ea, eb);
}
//==#24曲线
else if(ea == 149 && eb == 462){
gh.drawLine(72, 281, 189, 281);// #22--(1)
gh.drawLine( 189, 281,148, 275);// (1)----(2)
gh.drawLine(148, 275,149, 462);// (2)--#24
rr = new Route(sa, sb, ea, eb);
}
}
//3.#17
if( sa== 145 && sb == 86){
//3.1#17--#24直线
if(ea== 149 && eb == 462){
gh.drawLine(145, 86,149, 462);
rr = new Route(sa, sb, ea, eb);
}
//3.2#17==#22曲线
else if(ea== 72 && eb == 281){
gh.drawLine(145, 86,148, 275);
gh.drawLine(148, 275,189, 281);
gh.drawLine(189, 281,72, 281);
rr = new Route(sa, sb, ea, eb);
}
//3.3#17==#20曲线
else if(ea== 337 && eb == 281){
gh.drawLine(145,86,148,275);
gh.drawLine(148, 275, 189, 281);
gh.drawLine(189, 281, 337, 283);
rr = new Route(sa, sb, ea, eb);
}
}
//4.#20
if(sa== 337 && sb == 281){
//4.1 #20==22直线
if(ea == 72 && eb == 281){
gh.drawLine(337,281,72,281);
rr = new Route(sa, sb, ea, eb);
}
// 4.2 20#--12#(1)直线
else if(ea == 396 && eb == 282) {
gh.drawLine(337, 281, 396, 282);
rr = new Route(sa, sb, ea, eb);
}
//4.3#20--#21直线
else if(ea == 507 && eb == 286) {
gh.drawLine(337, 281, 507, 286);
rr = new Route(sa, sb, ea, eb);
}
//4.4 #20--#17曲线
else if(ea == 145 && eb == 86) {
gh.drawLine(145,86,148,275);
gh.drawLine(148, 275, 189, 281);
gh.drawLine(189, 281, 337, 283);
rr = new Route(sa, sb, ea, eb);
}
//#4.5 20--#24
else if(ea == 149 && eb == 462) {
gh.drawLine(337, 283, 189, 281);// #20--(1)
gh.drawLine( 189, 281,148, 275);// (1)----(2)
gh.drawLine(148, 275,149, 462);// (2)--#24
rr = new Route(sa, sb, ea, eb);
}
}
//#5.#12
if(sa== 396 && sb == 282){
//5.1 #12-#13直线
if(ea == 441 && eb == 326){
gh.drawLine(396,282,441,326);
rr = new Route(sa, sb, ea, eb);
}
//5.1 #12-#20直线
else if(ea == 337 && eb == 281){
gh.drawLine(396,282,337,281);
rr = new Route(sa, sb, ea, eb);
}
}
//6.#15
if(sa== 580 && sb == 286){
//6.1 #15-#21直线
if(ea == 507 && eb == 286){
gh.drawLine(580,286,507,286);
rr = new Route(sa, sb, ea, eb);
}
}
//7.#28
if(sa== 352 && sb == 80){
//7.1 #28-#14直线
if(ea == 420 && eb == 71){
gh.drawLine(352,80,420,71);
rr = new Route(sa, sb, ea, eb);
}
}
//8.#14
if(sa== 420 && sb == 71){
//8.1#14-#28直线
if(ea == 352 && eb == 80){
gh.drawLine(352,80,420,71);
rr = new Route(sa, sb, ea, eb);
}
//8.2#14-#23直线
else if(ea == 441 && eb == 70){
gh.drawLine(441,70,420,71);
rr = new Route(sa, sb, ea, eb);
}
}
//9. #23
if(sa== 441 && sb == 70){
//9.1#23-#29直线
if(ea == 509 && eb == 58){
gh.drawLine(441,70,509,58);
rr = new Route(sa, sb, ea, eb);
}
//9.2#14-#23直线
else if(ea == 420 && eb == 71){
gh.drawLine(441,70,420,71);
rr = new Route(sa, sb, ea, eb);
}
//9.3 #14-#39直线
else if(ea == 446 && eb == 547){
gh.drawLine(441,70,446,547);
rr = new Route(sa, sb, ea, eb);
}
}
//10 #24
if(sa== 149 && sb == 462){
//10.1 #24--#17直线
if(ea == 145 && eb == 86){
gh.drawLine(149,462,145,86);
rr = new Route(sa, sb, ea, eb);
}
//10.2 #24--#22曲线
else if(ea == 72 && eb == 281){
gh.drawLine(72, 281, 189, 281);// #22--(1)
gh.drawLine( 189, 281,148, 275);// (1)----(2)
gh.drawLine(148, 275,149, 462);// (2)--#24
rr = new Route(sa, sb, ea, eb);
}
//10.3 #24--#20曲线
else if(ea == 337 && eb == 281){
gh.drawLine(337, 283, 189, 281);// #20--(1)
gh.drawLine( 189, 281,148, 275);// (1)----(2)
gh.drawLine(148, 275,149, 462);// (2)--#24
rr = new Route(sa, sb, ea, eb);
}
//10.4 #24--#40直线
else if(ea == 149 && eb == 560){
gh.drawLine(149,462,149,560);
rr = new Route(sa, sb, ea, eb);
}
//10.4 #24--#27
else if(ea == 600 && eb == 463){
gh.drawLine(149,462,600,463);
rr = new Route(sa, sb, ea, eb);
}
}
//11.#13
if( sa == 441 && sb == 326){
//11.1 #12
if(ea == 396 && eb == 282){
gh.drawLine(441,326,396,282);
rr = new Route(sa, sb, ea, eb);
}
//11.2 #19
else if(ea == 503 && eb == 378){
gh.drawLine(441,326,503,378);
rr = new Route(sa, sb, ea, eb);
}
}
//12 #19
if( sa == 503 && sb == 378){
//12.1 #13直线
if(ea == 441 && eb == 326){
gh.drawLine(503,378,441,326);
rr = new Route(sa, sb, ea, eb);
}
//12.2 #27直线
else if(ea == 600 && eb == 463){
gh.drawLine(503,378,600,463);
rr = new Route(sa, sb, ea, eb);
}
}
//13 #40
if( sa == 149 && sb == 560){
//13.1 #24
if(ea == 149 && eb == 462){
gh.drawLine(149,560,149,462);
rr = new Route(sa, sb, ea, eb);
}
//13.1 #31/34
if(ea == 656 && eb == 564){
gh.drawLine(149,560,656,564);
rr = new Route(sa, sb, ea, eb);
}
}
//14 #39
if(sa == 446 && sb == 547){
//14.1 #23直线
if(ea == 441 && eb == 70){
gh.drawLine(446,547,441,70);
rr = new Route(sa, sb, ea, eb);
}
//14.2 #37直线
else if(ea == 446 && eb == 596){
gh.drawLine(446,547,446,596);
rr = new Route(sa, sb, ea, eb);
}
//14.3 #38直线
else if(ea == 736 && eb == 561){
gh.drawLine(446,547,734,561);
rr = new Route(sa, sb, ea, eb);
}
}
//15 #31/#34
if(sa == 656 && sb == 564){
//15.1 # 38直线
if(ea == 736 && eb == 561){
gh.drawLine(656,564,736,561);
rr = new Route(sa, sb, ea, eb);
}
//15.2 #40直线
else if(ea == 149 && eb == 560){
gh.drawLine(656,564,149,560);
rr = new Route(sa, sb, ea, eb);
}
}
//16 #27
if(sa == 600 && sb == 463){
//16.1 #19直线
if(ea == 503 && eb == 378){
gh.drawLine(600,463,503,378);
rr = new Route(sa, sb, ea, eb);
}
//16.2 #24直线
else if(ea == 149 && eb == 462){
gh.drawLine(600,463,149,462);
rr = new Route(sa, sb, ea, eb);
}
//16.3 #38曲线
else if(ea == 736 && eb == 561){
gh.drawLine(600,463,736,460);
gh.drawLine(736,460,736,561);
rr = new Route(sa, sb, ea, eb);
}
}
//17 #37
if(sa == 446 && sb == 596){
//17.1 #39
if(ea == 446 && eb == 547){
gh.drawLine(446,596,446,547);
rr = new Route(sa, sb, ea, eb);
}
//17.2 #16
else if(ea == 444 && eb == 649){
gh.drawLine(446,596,444,649);
rr = new Route(sa, sb, ea, eb);
}
//17.3 #25曲线
else if(ea == 650 && eb == 601){
gh.drawLine(446,596,567,591);
gh.drawLine(567,591,650,601);
rr = new Route(sa, sb, ea, eb);
}
}
//18 #25
if(sa == 650 && sb == 601){
//18.1 #32曲线
if(ea == 690 && eb == 626){
gh.drawLine(650,601,739,620);
gh.drawLine(739,620,690,626);
rr = new Route(sa, sb, ea, eb);
}
//18.2 #37曲线
else if(ea == 446 && eb == 596){
gh.drawLine(446,596,567,591);
gh.drawLine(567,591,650,601);
rr = new Route(sa, sb, ea, eb);
}
}
//19 #16
if(sa == 444 && sb == 649){
//19.1 #37直线
if(ea == 446 && eb == 596){
gh.drawLine(444,649,446,596);
rr = new Route(sa, sb, ea, eb);
}
//19.2 #36/26直线
else if(ea == 549 && eb == 642){
gh.drawLine(444,649,549,642);
rr = new Route(sa, sb, ea, eb);
}
}
//20 #36/26
if(sa == 549 && sb == 642){
//20.1#16直线
if(ea == 444 && eb == 649){
gh.drawLine(549,642,444,649);
rr = new Route(sa, sb, ea, eb);
}
//20.2#35直线
else if(ea == 650 && eb == 657){
gh.drawLine(549,642,650,657);
rr = new Route(sa, sb, ea, eb);
}
}
//21 #35
if(sa == 650 && sb == 657){
//21.1 #11
if(ea == 694 && eb == 678){
gh.drawLine(650,657,694,678);
rr = new Route(sa, sb, ea, eb);
}
//21.2 #36/26
else if(ea == 549 && eb == 642){
gh.drawLine(650,657,549,642);
rr = new Route(sa, sb, ea, eb);
}
}
//22 #11
if(sa == 694 && sb == 678){
//22.1 #35
if(ea == 650 && eb == 657){
gh.drawLine(694,678,650,657);
rr = new Route(sa, sb, ea, eb);
}
//22.2 #32
else if(ea == 690 && eb == 626){
gh.drawLine(694,678,690,626);
rr = new Route(sa, sb, ea, eb);
}
}
//23 #32
if(sa == 690 && sb == 626){
//23.1 #11直线
if(ea == 694 && eb == 678){
gh.drawLine(690,626,694,678);
rr = new Route(sa, sb, ea, eb);
}
//23.1 #33直线
else if(ea == 690 && eb == 575){
gh.drawLine(690,626,690,575);
rr = new Route(sa, sb, ea, eb);
}
//23.1 #25曲线
else if(ea == 650 && eb == 601){
gh.drawLine(650, 603, 739, 620);
gh.drawLine(739, 620, 690, 626);
rr = new Route(sa, sb, ea, eb);
}
}
//24 #33
if(sa == 690 && sb == 575){
//24.1 #32
if(ea == 690 && eb == 626){
gh.drawLine(690, 575, 690, 626);
rr = new Route(sa, sb, ea, eb);
}
//24.2 #38
else if(ea == 736 && eb == 561){
gh.drawLine(690, 575, 736, 561);
rr = new Route(sa, sb, ea, eb);
}
}
//25 #38
if(sa == 736 && sb == 561){
//25.1 #27曲线
if(ea == 600 && eb == 463){
gh.drawLine(600,463,736,460);
gh.drawLine(736,460,736,561);
rr = new Route(sa, sb, ea, eb);
}
//25.2 #33直线
else if(ea == 690 && eb == 575){
gh.drawLine(736, 561,690,575);
rr = new Route(sa, sb, ea, eb);
}
//25.3 #31/34直线
else if(ea == 656 && eb == 564){
gh.drawLine(736, 561,656,564);
rr = new Route(sa, sb, ea, eb);
}
}
//26 #21
if(sa == 507 && sb == 286){
//26.1 #15
if(ea == 580 && eb == 286){
gh.drawLine(507, 286,580,286);
rr = new Route(sa, sb, ea, eb);
}
//26.1 #20
else if(ea == 337 && eb == 281){
gh.drawLine(507, 286,337,281);
rr = new Route(sa, sb, ea, eb);
}
}
//27 #29
if(sa == 509 && sb == 58){
//27.1 #23
if(ea == 441 && eb == 70){
gh.drawLine(509, 58,441,70);
rr = new Route(sa, sb, ea, eb);
}
}
result.add(rr);
return result;
}
//这个是以某个基站为起点,所有可能相邻基站的路线集合
public static List RouteLine(int sa, int sb){
List lr = new ArrayList();
// 1.1#30
if( sa== 71 && sb == 96 ){
lr=new ArrayList();
Route r = null;
r=new Route(71,96,72,281);
lr.add(r);
}
//2.#22
if( sa== 72 && sb == 281 ){
lr=new ArrayList();
Route r = null;
r=new Route(72,281,71,96);
lr.add(r);
r=new Route(72,281,337,281);
lr.add(r);
r=new Route(72,281,145,86);
lr.add(r);
r=new Route(72,281,149,462);
lr.add(r);
}
//3.#17
if( sa== 145 && sb == 86){
lr=new ArrayList();
Route r = null;
r=new Route(145, 86,149, 462);
lr.add(r);
r=new Route(145, 86,337, 281);
lr.add(r);
r=new Route(145, 86,72, 281);
lr.add(r);
}
//4.#20
if(sa== 337 && sb == 281){
lr=new ArrayList();
Route r = null;
r=new Route(337,281,72,281);
lr.add(r);
r=new Route(337, 281, 396, 282);
lr.add(r);
r=new Route(337, 281, 507, 286);
lr.add(r);
r=new Route(337, 281, 145, 86);
lr.add(r);
r=new Route(337, 281, 149, 462);
lr.add(r);
}
//#5.#12
if(sa== 396 && sb == 282){
lr=new ArrayList();
Route r = null;
r=new Route(396, 282, 441, 326);
lr.add(r);
r=new Route(396, 282, 337, 281);
lr.add(r);
}
//6.#15
if(sa== 580 && sb == 286){
lr=new ArrayList();
Route r = null;
r=new Route(580,286,507,286);
lr.add(r);
}
//7.#28
if(sa== 352 && sb == 80){
lr=new ArrayList();
Route r = null;
r=new Route(352,80,420,71);
lr.add(r);
}
//8.#14
if(sa== 420 && sb == 71){
lr=new ArrayList();
Route r = null;
r=new Route(420,71,352,80);
lr.add(r);
r=new Route(420,71,441,70);
lr.add(r);
}
//9. #23
if(sa== 441 && sb == 70){
lr=new ArrayList();
Route r = null;
r=new Route(441,70,509,58);
lr.add(r);
r=new Route(441,70,420,71);
lr.add(r);
r=new Route(441,70,446,547);
lr.add(r);
}
//10 #24
if(sa== 149 && sb == 462){
lr=new ArrayList();
Route r = null;
r=new Route(149,462,145,86);
lr.add(r);
r=new Route(149,462,72,281);
lr.add(r);
r=new Route(149,462,337,281);
lr.add(r);
r=new Route(149,462,149,560);
lr.add(r);
r=new Route(149,462,600,463);
lr.add(r);
}
//11.#13
if( sa == 441 && sb == 326){
lr=new ArrayList();
Route r = null;
r=new Route(441,326,396,282);
lr.add(r);
r=new Route(441,326,503,378);
lr.add(r);
}
//12 #19
if( sa == 503 && sb == 378){
lr=new ArrayList();
Route r = null;
r=new Route(503,378,441,326);
lr.add(r);
r=new Route(503,378,600,463);
lr.add(r);
}
//13 #40
if( sa == 149 && sb == 560){
lr=new ArrayList();
Route r = null;
r=new Route(149,560,149,462);
lr.add(r);
r=new Route(149,560,656,564);
lr.add(r);
}
//14 #39
if(sa == 446 && sb == 547){
lr=new ArrayList();
Route r = null;
r=new Route(446,547,441,70);
lr.add(r);
r=new Route(446,547,446,596);
lr.add(r);
r=new Route(446,547,736,561);
lr.add(r);
}
//15 #31/#34
if(sa == 656 && sb == 564){
lr=new ArrayList();
Route r = null;
r=new Route(656,564,736,561);
lr.add(r);
r=new Route(656,564,149,560);
lr.add(r);
}
//16 #27
if(sa == 600 && sb == 463){
lr=new ArrayList();
Route r = null;
r=new Route(600,463,503,378);
lr.add(r);
r=new Route(600,463,149,462);
lr.add(r);
r=new Route(600,463,736,561);
lr.add(r);
}
//17 #37
if(sa == 446 && sb == 596){
lr=new ArrayList();
Route r = null;
r=new Route(446,596,446,547);
lr.add(r);
r=new Route(446,596,444,649);
lr.add(r);
r=new Route(446,596,444,649);
lr.add(r);
}
//18 #25
if(sa == 650 && sb == 601){
lr=new ArrayList();
Route r = null;
r=new Route(650,601,690,626);
lr.add(r);
r=new Route(650,601,446,596);
lr.add(r);
}
//19 #16
if(sa == 444 && sb == 649){
lr=new ArrayList();
Route r = null;
r=new Route(444,649,446,596);
lr.add(r);
r=new Route(444,649,549,642);
lr.add(r);
}
//20 #36/26
if(sa == 549 && sb == 642){
lr=new ArrayList();
Route r = null;
r=new Route(549,642,444,649);
lr.add(r);
r=new Route(549,642,650,657);
lr.add(r);
}
//21 #35
if(sa == 650 && sb == 657){
lr=new ArrayList();
Route r = null;
r=new Route(650,657,694,678);
lr.add(r);
r=new Route(650,657,549,642);
lr.add(r);
}
//22 #11
if(sa == 694 && sb == 678){
lr=new ArrayList();
Route r = null;
r=new Route(694,678,650,657);
lr.add(r);
r=new Route(694,678,690,626);
lr.add(r);
}
//23 #32
if(sa == 690 && sb == 626){
lr=new ArrayList();
Route r = null;
r=new Route(690,626,694,678);
lr.add(r);
r=new Route(690,626,690,575);
lr.add(r);
r=new Route(690,626,650,601);
lr.add(r);
}
//24 #33
if(sa == 690 && sb == 575){
lr=new ArrayList();
Route r = null;
r=new Route(690, 575, 690, 626);
lr.add(r);
r=new Route(690, 575, 736, 561);
lr.add(r);
}
//25 #38
if(sa == 736 && sb == 561){
lr=new ArrayList();
Route r = null;
r=new Route(736, 561,600,463);
lr.add(r);
r=new Route(736, 561,690,575);
lr.add(r);
r=new Route(736, 561,656,564);
lr.add(r);
}
//26 #21
if(sa == 507 && sb == 286){
lr=new ArrayList();
Route r = null;
r=new Route(507, 286,580,286);
lr.add(r);
r=new Route(507, 286,337,281);
lr.add(r);
}
//27 #29
if(sa == 509 && sb == 58){
lr=new ArrayList();
Route r = null;
r=new Route(509, 58,441,70);
lr.add(r);
}
return lr;
}
//这个专门放基站的位置的x,y轴坐标
private static int[] case1(String a, int x, int y) {
switch (a) {
case "030":
x = 71;
y = 96;
break;
case "017":
x = 145;
y = 86;
break;
case "022":
x = 72;
y = 281;
break;
case "020":
x = 337;
y = 281;
break;
case "028":
x = 352;
y = 80;
break;
case "012":
x = 396;
y = 282;
break;
case "014":
x = 420;
y = 71;
break;
case "023":
x = 441;
y =70;
break;
case "029":
x = 509;
y = 58;
break;
case "013":
x = 441;
y = 326;
break;
case "019":
x = 503;
y = 378;
break;
case "027":
x = 600;
y = 463;
break;
case "024":
x = 149;
y = 462;
break;
case "040":
x = 149;
y = 560;
break;
case "038":
x = 736;
y = 561;
break;
case "033":
x = 690;
y = 575;
break;
case "015":
x = 580;
y = 286;
break;
case "039":
x = 446;
y = 547;
break;
case "037":
x = 446;
y = 596;
break;
case "031":
x = 656;
y = 564;
break;
case "034":
x = 656;
y = 564;
break;
case "036":
x = 549;
y = 642;
break;
case "026":
x = 549;
y = 642;
break;
case "011":
x = 694;
y = 678;
break;
case "016":
x = 444;
y = 649;
break;
case "032":
x = 690;
y = 626;
break;
case "021":
x = 507;
y = 286;
break;
case "035":
x = 650;
y = 657;
break;
case "025":
x = 650;
y = 601;
break;
}
int[] sz = { x, y };
return sz;
}
}