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

📄 countnocut.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 JAVA
字号:
package net.aetherial.gis.our.auto.count.count;

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 net.aetherial.gis.dataType.WptType;
import net.aetherial.gis.our.auto.Auto;
import net.aetherial.gis.our.auto.count.frame.FrameCount;
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 CountNoCut
    extends Auto {
  private String directory = "";
  protected FrameCount fc = null;
  private final double TOKEN = 3;
  protected double dis_SHUI_NI_all_than_3 = 0.0, dis_YOU_LU_all_than_3 = 0.0,
      dis_SHUI_NI_all_less_3 = 0.0, dis_YOU_LU_all_less_3 = 0.0,
      dis_SHA_SHI_all = 0.0, dis_TU_LU_all = 0.0;
  protected double dis_SHUI_NI_than_3 = 0.0, dis_YOU_LU_than_3 = 0.0,
      dis_SHUI_NI_less_3 = 0.0, dis_YOU_LU_less_3 = 0.0, dis_SHA_SHI = 0.0,
      dis_TU_LU = 0.0;
  protected String trkType = "";
  protected double trkDis = 0.0;
  private CutByRS cut = null;
  public CountNoCut(FrameOur fo, FrameCount fc) {
    this.setFrameOur(fo);
    this.fc = fc;
  }

  protected void println(String message) {
    if (fc != null) {
      fc.println(message);
    }
    System.out.println(message);
  }

  /**
   * 计算多个文件
   */
  public void countAllFile() {
    if (super.input == null) {
      this.println("选择路径没有文件!super.input == null");
      return;
    }
    for (int i = 0; i < this.input.length; i++) {
      this.open(this.input[i]);
      this.println("打开文件" + this.input[i].getName() +
                   "...............");
      this.countAFile();
      this.printAFile();
      this.setMemoryReset();
    }
    this.println("");
    this.println("****************************************************");
    this.println("*     共计:" +
                 ItemValue.getRound(this.dis_SHUI_NI_all_than_3 +
                                    this.dis_SHUI_NI_all_less_3 +
                                    this.dis_YOU_LU_all_than_3 +
                                    this.dis_YOU_LU_all_less_3 +
                                    this.dis_SHA_SHI_all +
                                    this.dis_TU_LU_all, 1) +
                 "公里");
    this.println("* 1 . 水泥路面:大于3米 " +
                 ItemValue.getRound(this.dis_SHUI_NI_all_than_3, 1) +
                 "公里");
    this.println("* 2 . 水泥路面:小于3米 " +
                 ItemValue.getRound(this.dis_SHUI_NI_all_less_3, 1) +
                 "公里");

    this.println("* 3 . 油路路面:大于3米 " +
                 ItemValue.getRound(this.dis_YOU_LU_all_than_3, 1) +
                 "公里");
    this.println("* 4 . 油路路面:小于3米 " +
                 ItemValue.getRound(this.dis_YOU_LU_all_less_3, 1) +
                 "公里");

    this.println("* 5 . 砂石路面: " + ItemValue.getRound(this.dis_SHA_SHI_all, 1) +
                 "公里");
    this.println("* 6 . 土路路面: " + ItemValue.getRound(this.dis_TU_LU_all, 1) +
                 "公里");
    this.println("****************************************************");

  }

  public String getLicheng(){
    return ""
                       + ItemValue.getRound(this.dis_SHUI_NI_all_than_3 +
                                               this.dis_SHUI_NI_all_less_3, 1) +"\t"
                          + ItemValue.getRound(this.dis_YOU_LU_all_than_3 +
                                               this.dis_YOU_LU_all_less_3, 1) +"\t"
                          + ItemValue.getRound(this.dis_SHA_SHI_all, 1) +"\t"
                          + ItemValue.getRound(dis_TU_LU_all, 1) +"\t";

  }
  /**
   * 计算一个文件里的航迹,用protected,是为了以后写CountByCut时能够继承该类的方法
   */
  protected void countAFile() {
    cut = new CutByRS(this.getFrameOur());
    cut.getTrackRSToThis();
    Node[] trks = ItemValue.getTracks();
    double with = 0.0;
    if (trks == null) {
      this.println("文件中航迹为空!");
      return;
    }
    for (int i = 0; i < trks.length; i++) {
      /**
       * 这条航迹的路面类型
       */
      trkType = ItemValue.getTracksType(trks[i]);
      /**
       * 这条航迹的里程
       */
      trkDis = ItemValue.getRound(ItemValue.getTracksDistance(trks[i]) / 1000,
                                  1);

      if (trkType.equals(TrackType.RS_A_good)) {
        try {
          with = Double.parseDouble(ItemValue.getTracksWidth(trks[i]));
        }
        catch (NumberFormatException ex1) {
          with = 3.5;
        }
        if (with > this.TOKEN) {
          this.dis_SHUI_NI_than_3 = this.dis_SHUI_NI_than_3 + trkDis;
        }
        else {
          this.dis_SHUI_NI_less_3 = this.dis_SHUI_NI_less_3 + trkDis;
        }
//        this.dis_SHUI_NI = this.dis_SHUI_NI + trkDis;
      }
      else if (trkType.equals(TrackType.RS_B_good)) {
        try {
          with = Double.parseDouble(ItemValue.getTracksWidth(trks[i]));
        }
        catch (NumberFormatException ex) {
          with = 3.5;
        }
        if (with > this.TOKEN) {
          this.dis_YOU_LU_than_3 = this.dis_YOU_LU_than_3 + trkDis;
        }
        else {
          this.dis_YOU_LU_less_3 = this.dis_YOU_LU_less_3 + trkDis;
        }
      }
      else if (trkType.equals(TrackType.RS_C_type)) {
        this.dis_SHA_SHI = this.dis_SHA_SHI + trkDis;
      }
      else if (trkType.equals(TrackType.RS_D_bad)) {
        this.dis_TU_LU = this.dis_TU_LU + trkDis;
      }
    }
  }

  protected void printAFile() {
    //打印
    this.println("* 该文件小计:" +
                 ItemValue.getRound(this.dis_SHUI_NI_than_3 +
                                    this.dis_SHUI_NI_less_3 + this.dis_SHA_SHI +
                                    this.dis_YOU_LU_than_3 +
                                    this.dis_YOU_LU_less_3 + +this.dis_TU_LU, 1) +
                 "公里");
    this.println("* 1 . 水泥路面: 大于3米 " +
                 ItemValue.getRound(this.dis_SHUI_NI_than_3, 1) +
                 "公里");
    this.println("* 2 . 水泥路面: 小于3米 " +
                 ItemValue.getRound(this.dis_SHUI_NI_less_3, 1) +
                 "公里");
    this.println("* 3 . 油路路面: 大于3米 " +
                 ItemValue.getRound(this.dis_YOU_LU_than_3, 1) + "公里");
    this.println("* 4 . 油路路面: 小于3米 " +
                 ItemValue.getRound(this.dis_YOU_LU_less_3, 1) + "公里");
    this.println("* 5 . 砂石路面: " + ItemValue.getRound(this.dis_SHA_SHI, 1) +
                 "公里");
    this.println("* 6 . 土路路面: " + ItemValue.getRound(this.dis_TU_LU, 1) + "公里");
    this.println("");
    //汇总
    this.dis_SHUI_NI_all_than_3 = this.dis_SHUI_NI_than_3 +
        this.dis_SHUI_NI_all_than_3;
    this.dis_YOU_LU_all_than_3 = this.dis_YOU_LU_than_3 + dis_YOU_LU_all_than_3;
    this.dis_SHUI_NI_all_less_3 = this.dis_SHUI_NI_less_3 +
        this.dis_SHUI_NI_all_less_3;
    this.dis_YOU_LU_all_less_3 = this.dis_YOU_LU_less_3 + dis_YOU_LU_all_less_3;
    this.dis_SHA_SHI_all = this.dis_SHA_SHI + dis_SHA_SHI_all;
    this.dis_TU_LU_all = this.dis_TU_LU + dis_TU_LU_all;
    //清空
    this.dis_SHUI_NI_than_3 = 0.0;
    this.dis_YOU_LU_than_3 = 0.0;
    this.dis_SHUI_NI_less_3 = 0.0;
    this.dis_YOU_LU_less_3 = 0.0;
    this.dis_SHA_SHI = 0.0;
    this.dis_TU_LU = 0.0;
  }

  public void setSavedDirectory(String path) {
    this.directory = path;
  }

  public double getDis_YOU_LU_all_than_3() {
    return dis_YOU_LU_all_than_3;
  }

  public double getDis_YOU_LU_all_less_3() {
    return dis_YOU_LU_all_less_3;
  }

  public double getDis_TU_LU_all() {
    return dis_TU_LU_all;
  }

  public double getDis_SHUI_NI_all_than_3() {
    return dis_SHUI_NI_all_than_3;
  }

  public double getDis_SHUI_NI_all_less_3() {
    return dis_SHUI_NI_all_less_3;
  }

  public double getDis_SHA_SHI_all() {
    return dis_SHA_SHI_all;
  }
}

⌨️ 快捷键说明

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