📄 checkkuaxian.java
字号:
package net.aetherial.gis.jiaotongbu.input.analyse;
import net.aetherial.gis.output.toLd.OpenDirectory;
import java.util.Vector;
import java.io.File;
import net.aetherial.gis.jiaotongbu.input.publicuse.Permanence;
import net.aetherial.gis.jiaotongbu.input.type.KuaxianLuxian;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class CheckKuaxian {
String errorString = "";
private String inputPath = "";
private String xianName = "";
public CheckKuaxian(String inputPath, String xianName) {
this.inputPath = inputPath;
this.xianName = xianName;
}
public void check() {
this.checkLuxianNotExist();
this.checkShuzi();
if (! (this.errorString.trim().equals(""))) {
this.sleepToClose();
}
}
private File[] getAllGPSFiles() {
OpenDirectory od = new OpenDirectory();
od.setGradeStr("县道|乡道");
return od.getOpenFile(this.inputPath);
}
private void sleepToClose() {
System.out.println("检查出问题:");
System.out.println(this.errorString);
System.out.println("出错,10秒后自动关闭。");
try {
Thread.sleep(10000);
}
catch (InterruptedException ex) {
}
System.exit(0);
}
private void checkShuzi() {
File[] alls = this.getAllGPSFiles();
String fileNumber = "";
KuaxianLuxian[] temp = null;
for (int i = 0; alls != null && i < alls.length; i++) {
fileNumber = alls[i].getName().toUpperCase().trim();
if (fileNumber.length() > 4) {
fileNumber = fileNumber.substring(0, 4);
}
temp = this.getThisKuaxian(fileNumber);
this.checkLianxu(temp);
}
}
private void checkLianxu(KuaxianLuxian[] kxs) {
double qidian = Double.MAX_VALUE, zhidian = Double.MIN_VALUE;
for (int i = 0; kxs != null && i < kxs.length; i++) {
qidian = Math.min(kxs[i].getQidianZhuanghao(), qidian);
zhidian = Math.max(kxs[i].getZhidianZhuanghao(), zhidian);
}
if (kxs == null || kxs.length == 0) {
return;
}
if (zhidian <= qidian) {
this.println("路线" + kxs[0].getNumber() + "起点为:" + qidian + ",止点为:" +
zhidian + ",起点位置小于等于止点位置。");
}
try {
KuaxianLuxian temp = this.getMinKuaxianLuxian(kxs, 0);
for (int i = 1; i < kxs.length; i++) {
temp = this.getMinKuaxianLuxian(kxs, temp.getZhidianZhuanghao());
}
if (temp == null) {
throw new Exception("");
}
}
catch (Exception ex) {
this.println("路线" + kxs[0].getNumber() + "桩号不连续。");
}
}
private KuaxianLuxian getMinKuaxianLuxian(KuaxianLuxian[] kxs,
double qidian) {
KuaxianLuxian temp = null;
for (int i = 0; kxs != null && i < kxs.length; i++) {
if (Math.abs(qidian - kxs[i].getQidianZhuanghao()) < 1) {
return kxs[i];
}
}
return null;
}
private void checkFanwei(KuaxianLuxian[] kxs) {
double qidian = Double.MAX_VALUE, zhidian = Double.MIN_VALUE, scale = 1,
licheng = 0;
for (int i = 0; kxs != null && i < kxs.length; i++) {
qidian = Math.min(kxs[i].getQidianZhuanghao(), qidian);
zhidian = Math.max(kxs[i].getZhidianZhuanghao(), zhidian);
licheng += kxs[i].getGpsLicheng();
}
KuaxianLuxian temp = null;
for (int i = 0; kxs != null && i < kxs.length; i++) {
if (kxs[i].getBelongXian().indexOf(this.xianName) != -1 ||
this.xianName.indexOf(kxs[i].getBelongXian()) != -1) {
temp = kxs[i];
break;
}
}
}
private KuaxianLuxian[] getThisKuaxian(String lxNumber) {
Vector array = new Vector();
KuaxianLuxian temp = null;
for (int i = 0; i < Permanence.kuaxian_lx.size(); i++) {
temp = (KuaxianLuxian) Permanence.kuaxian_lx.get(i);
if (temp.getNumber().toUpperCase().indexOf(lxNumber) != -1) {
array.add(temp);
}
}
KuaxianLuxian[] all = new KuaxianLuxian[array.size()];
array.copyInto(all);
return all;
}
private void checkLuxianNotExist() {
File[] alls = this.getAllGPSFiles();
if (alls == null || alls.length == 0) {
this.println("没有GPS数据.");
this.sleepToClose();
}
String fileNumber = "";
KuaxianLuxian temp = null;
boolean find = false;
for (int i = 0; i < alls.length; i++) {
find = false;
fileNumber = alls[i].getName().toUpperCase().trim();
if (fileNumber.length() > 4) {
fileNumber = fileNumber.substring(0, 4);
}
for (int j = 0; j < Permanence.kuaxian_lx.size(); j++) {
temp = (KuaxianLuxian) Permanence.kuaxian_lx.get(j);
if (temp.getNumber().toUpperCase().indexOf(fileNumber) != -1 &&
(this.xianName.indexOf(temp.getXian()) != -1 ||
temp.getXian().indexOf(this.xianName) != -1)) {
find = true;
}
}
if (!find) {
this.println("跨县信息中没有" + this.xianName + fileNumber +
"路线信息,请检查跨县信息表。");
}
}
}
private void println(String string) {
this.errorString += string + "\r\n";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -