⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readgps.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 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 + -