📄 readgps.java
字号:
package net.aetherial.gis.our.duibi.data;
import net.aetherial.gis.our.FrameOur;
import net.aetherial.gis.our.auto.Auto;
import net.aetherial.gis.surface.ItemValue;
import org.w3c.dom.Node;
import java.util.Vector;
import net.aetherial.gis.dataType.TrackType;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class ReadGPS
extends Auto {
String nString = "";
FrameOur fo = null;
private String type = "";
public ReadGPS(FrameOur fo) {
this.setFrameOur(fo);
}
public void openAllFile() {
if (super.input == null) {
System.out.println("super.input == null");
return;
}
for (int i = 0; i < this.input.length; i++) {
this.open(this.input[i]);
}
}
/**
* 得到与给定的公路局数据编号相同的航迹
*/
private Node[] getSameNumberTrk(Node[] alltrks, RoadGLJ glj) {
if (alltrks == null) {
return null;
}
else {
String tBianHao = "";
Vector ve = new Vector();
for (int i = 0; i < alltrks.length; i++) {
tBianHao = getTracksShortNumber(alltrks[i]);
if (tBianHao.equals(glj.getRoadNumber())) {
ve.addElement(alltrks[i]);
}
}
Node[] trks = new Node[ve.size()];
for (int i = 0; i < trks.length; i++) {
trks[i] = (Node) ve.elementAt(i);
}
return trks;
}
}
public String compareAll(RoadGLJ[] glj) {
String n = "";
if (glj != null) {
Node[] trks = getHaveNumberRoad();
Node[] temp = null;
if (trks != null) {
for (int i = 0; i < glj.length; i++) {
temp = this.getSameNumberTrk(trks, glj[i]);
if ( (temp != null) && (temp.length != 0)) {
n = n +
this.getCompareString(this.getSameNumberTrk(trks, glj[i]),
glj[i]);
}
}
}
}
return n;
}
public String getLeftTrack(RoadGLJ[] glj) {
String n = "";
Node[] trks = getAllXianXiangTrack();
Vector ve = new Vector();
String numberTemp = "";
boolean find = false;
if (trks != null) {
for (int i = 0; i < trks.length; i++) {
find = false;
numberTemp = getTracksShortNumber(trks[i]);
if (glj != null) {
for (int j = 0; j < glj.length; j++) {
if (numberTemp.equals(glj[j].getRoadNumber())) {
find = true;
break;
}
}
if (!find) {
ve.addElement(trks[i]);
}
}
}
Node temp = null;
for (int i = 0; i < ve.size(); i++) {
temp = (Node) ve.elementAt(i);
n = n + "\t\t\t\t\t";
if (ItemValue.getTracksNumber(temp).trim().equals("")) {
n = n + ItemValue.getTracksGrade(temp) + "\t";
}else{
n = n + ItemValue.getTracksNumber(temp) + "\t";
}
n = n + ItemValue.getTracksName(temp) + "\t";
n = n + ( (ItemValue.getTracksDistance(temp)) / 1000) + "\t";
n = n + ItemValue.getTracksType(temp) + "\t" + "\r\n";
}
}
return n;
}
private String getCompareString(Node[] sametrks, RoadGLJ glj) {
String n = "";
if ( (sametrks != null) && (sametrks.length != 0)) {
double licheng = 0.0;
for (int i = 0; i < sametrks.length; i++) {
licheng = licheng + ItemValue.getTracksDistance(sametrks[i]);
}
n = n + glj.getShi() + "\t";
n = n + glj.getXian() + "\t";
n = n + glj.getRoadNumber() + "\t";
n = n + glj.getLicheng() + "\t";
n = n + "符合" + "\t";
n = n + ItemValue.getTracksNumber(sametrks[0]) + "\t";
n = n + ItemValue.getTracksName(sametrks[0]) + "\t";
n = n + (licheng / 1000) + "\t";
n = n + ItemValue.getTracksType(sametrks[0]) + "\t" + "\r\n";
glj.setFind(true);
System.out.println("Find in class ReadGPS!" +
ItemValue.getTracksName(sametrks[0]));
}
return n;
}
/**
* 得到简约的编号文本数据,如:
* X003
* 如果不符合返回""
*/
private String getTracksShortNumber(Node trk) {
String number = ItemValue.getTracksNumber(trk).replaceAll(" ", "").
replaceAll("o", "0").replaceAll("O", "0");
if (number.length() >= 4) {
// System.out.println("number in getTracksShortNumber:" + number);
return number.substring(0, 4).toUpperCase();
}
else {
return " ";
}
}
public Node[] getAllXianXiangTrack() {
Node[] trks = ItemValue.getTracks();
if (trks == null) {
return null;
}
else {
Vector ve = new Vector();
String tempNumber = " ";
for (int i = 0; i < trks.length; i++) {
tempNumber = getTracksShortNumber(trks[i]);
String type = ItemValue.getTracksGrade(trks[i]);
String code = tempNumber.substring(0,1);
if (this.type.indexOf(code) > -1 ||
//(ItemValue.getTracksGrade(trks[i]).equals(TrackType.Grade_XIAN)) ||
this.type.indexOf(type) > -1) {
ve.addElement(trks[i]);
}
}
if (ve.size() == 0) {
return null;
}
Node[] temp = new Node[ve.size()];
for (int i = 0; i < temp.length; i++) {
temp[i] = (Node) ve.elementAt(i);
}
return temp;
}
}
private Node[] getHaveNumberRoad() {
Node[] trks = ItemValue.getTracks();
if (trks == null) {
return null;
}
else {
Vector ve = new Vector();
String tempNumber = "";
for (int i = 0; i < trks.length; i++) {
tempNumber = getTracksShortNumber(trks[i]);
String type = ItemValue.getTracksGrade(trks[i]);
String code = tempNumber.substring(0,1);
if (this.type.indexOf(code) > -1 ||
//(ItemValue.getTracksGrade(trks[i]).equals(TrackType.Grade_XIAN)) ||
this.type.indexOf(type) > -1) {
ve.addElement(trks[i]);
}
}
if (ve.size() == 0) {
return null;
}
Node[] temp = new Node[ve.size()];
for (int i = 0; i < temp.length; i++) {
temp[i] = (Node) ve.elementAt(i);
}
return temp;
}
}
public void refresh() {
this.setMemoryReset();
}
public void setType(String type) {
this.type = type;
}
public String getType() {
return type;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -