checkrschenged.java

来自「基于Java的地图数据管理软件。使用MySQL数据库管理系统。」· Java 代码 · 共 150 行

JAVA
150
字号
package net.aetherial.gis.our.auto.extend;

import java.util.Vector;
import net.aetherial.gis.surface.ItemValue;
import java.io.File;
import net.aetherial.gis.surface.CreateFile;
import net.aetherial.gis.our.FrameOur;
import net.aetherial.gis.our.auto.CutByRS;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import net.aetherial.gis.our.auto.Auto;
import net.aetherial.gis.dataType.WptType;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class CheckRSChenged
    extends Auto {
  private String n = "";
  public CheckRSChenged(FrameOur fo) {
    this.setFrameOur(fo);
  }

//  private void check
  private void scanAllTrack(String fileName) {
    String ln = "\r\n";
    Node[] trks = ItemValue.getTracks();
    Node[] wpts = null;
    if (trks == null) {
      return;
    }
    for (int i = 0; i < trks.length; i++) {
      /**
       * 只有在水泥或者油路路面发生变化时这个类才起作用
       */
      if (this.isRSGood(ItemValue.getTracksStructure(trks[i]))) {
        if (this.isHaveRSChangedToBad(trks[i])) {
          if (! (fileName.equals(""))) {
            n = n + "在文件<" + fileName + "中,航迹:[" + ItemValue.getTracksName(trks[i]) +
                "] 路面变化点." + ln;
            wpts = this.getRSChangedWpts(trks[i]);
            for (int j = 0; j < wpts.length; j++) {
              n = n + "影响上报计划:" + ItemValue.getWaypointName(wpts[j]) +"    ";
            }
            n = n + ln;
          }
          else {
            n = n + "航迹:[" + ItemValue.getTracksName(trks[i]) + "] 路面变化点." + ln;
          }

        }
      }
    }
  }

  /**
   * 如果有路面变化成差的路况时,返回true
   */
  private boolean isHaveRSChangedToBad(Node trk) {
    Node[] wpts = ItemValue.getTracksWaypoint(trk);
    if (wpts == null) {
      return false;
    }
    else {
      for (int i = 0; i < wpts.length; i++) {
        if (this.isChangeToBad(ItemValue.getWaypointRS(wpts[i]))) {
          return true;
        }
      }
      return false;
    }
  }

  /**
   * 得到影响计划的航点
   */
  private Node[] getRSChangedWpts(Node trk) {
    Node[] wpts = ItemValue.getTracksWaypoint(trk);
    if (wpts == null) {
      return null;
    }
    else {
      Vector ve = new Vector();
      for (int i = 0; i < wpts.length; i++) {
        if (this.isChangeToBad(ItemValue.getWaypointRS(wpts[i]))) {
          ve.addElement(wpts[i]);
        }
      }
      if (ve.size() > 0) {
        wpts = new Node[ve.size()];
        for (int i = 0; i < wpts.length; i++) {
          wpts[i] = (Node) ve.elementAt(i);
        }
        return wpts;
      }else{
        return null;
      }
    }
  }

  /**
   * 判断是否是水泥路面或者油路路面
   * 因为只有在水泥或者油路路面发生变化时这个类才起作用
   */
  private boolean isRSGood(String rs) {
    if (rs.equals(WptType.RS_A_good)) {
      return true;
    }
    else if (rs.equals(WptType.RS_B_good)) {
      return true;
    }
    else {
      return false;
    }
  }

  /**
   * 路面类型是否变化成砂石或者土路
   */
  private boolean isChangeToBad(String rsChange) {
    if (rsChange.equals(WptType.RS_A_good + WptType.RS_To + WptType.RS_C_bad)) {
      return true;
    }
    else if (rsChange.equals(WptType.RS_B_good + WptType.RS_To +
                             WptType.RS_C_bad)) {
      return true;
    }
    else if (rsChange.equals(WptType.RS_A_good + WptType.RS_To +
                             WptType.RS_D_bad)) {
      return true;
    }
    else if (rsChange.equals(WptType.RS_B_good + WptType.RS_To +
                             WptType.RS_D_bad)) {
      return true;
    }
    else {
      return false;
    }
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?