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

📄 checkkuaxian.java

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