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

📄 extracttrackinfo.java

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

import net.aetherial.gis.our.auto.*;
import net.aetherial.gis.our.FrameOur;
import net.aetherial.gis.surface.ItemValue;
import java.io.File;
import java.util.regex.Pattern;
import org.w3c.dom.Node;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class ExtractTrackInfo
    extends Auto {
  int tracks = 0;
  boolean all = false;
  boolean none = true;
  boolean part = false;
  boolean empty = false;
  double fuHeLiChen = 0.0;
  double length = 0.0;
  String[][] tracksInfo = new String[12][10];
  public ExtractTrackInfo() {
    super();
    tracks = 0;
    all = false;
    none = true;
    part = false;
    empty = false;
    fuHeLiChen = 0.0;
    length = 0.0;

    for (int i = 0; i < tracksInfo.length; i++) {
      for (int j = 0; j < tracksInfo[i].length; j++) {
        tracksInfo[i][j] = "";
      }
    }
  }

  public void extract(String[] args) {
    //ExtractTrackInfo cp = new ExtractTrackInfo();
    String kpType = "行政村|自然村|学校";
    String gpsFolder = "F:\\新建文件夹\\cf";
    if (args.length < 2) {
      System.out.println("too few arguments");
      //System.exit(0);
    }
    String input = args[0];
    String output = args[1];
    try {
      setFrameOur(new FrameOur());
      setInputDirectory(input);
      // for (int i = 0; i < cp.input.length; i++) {

      open(new File(input));

      String outputName = output;
      java.io.PrintStream bw = new java.io.PrintStream(new java.io.
          FileOutputStream(
              new File(output), true));
      Node[] tracks = ItemValue.getTracks();
      this.empty = (tracks == null) || (tracks.length == 0);
      int xzcTracks = 0;
      for (int t = 0; tracks != null && t < tracks.length; t++) {
        Node currentTrk = tracks[t];
        double orignalLength = 0;
        String name = ItemValue.getTracksName(currentTrk);
        if (name.indexOf("(拟建)") > -1) {
          this.tracks++;
          String startP = "", endP = "", keyP = "";

          Node[] waypoints = null;
          Node[] tempTracks = ItemValue.getTracks();
          for (int s = 0; s < tempTracks.length; s++) {
            if (name.indexOf(ItemValue.getTracksName(tempTracks[s])) > -1 &&
                !name.equals(ItemValue.getTracksName(tempTracks[s]))) {
              orignalLength = ItemValue.getTracksDistance(tempTracks[s]);
              waypoints = ItemValue.getTracksWaypoint(tempTracks[s]);
              break;
            }
          }
          if (waypoints == null) {
            waypoints = ItemValue.getTracksWaypoint(currentTrk);
          }

          Node[] xzc = null;
          if (waypoints != null) {
            xzc = ItemValue.getXingZCInWaypoint(waypoints);
          }
          String xzcStr = "";
          for (int w = 0; xzc != null && w < xzc.length; w++) {
            xzcStr += ItemValue.getWaypointName(xzc[w]) + ", ";
          }

          if (waypoints != null) {
            if (waypoints.length > 2) {
              startP = ItemValue.getWaypointName(waypoints[0]);
              endP = ItemValue.getWaypointName(waypoints[waypoints.length - 1]);
              for (int k = 1; k < waypoints.length - 1; k++) {
                if (kpType.indexOf(ItemValue.getWaypointKP(waypoints[k])) > -1) {
                  keyP += ItemValue.getWaypointName(waypoints[k]) + ", ";
                }
              }
            }
          }

          name = name.substring(0, name.indexOf("(拟建)"));
          name = name
              .replaceAll("村委会","村")
              .replaceAll("行政村", "村")
              .replaceAll("村支部","村")
              .replaceAll("村委", "村")
              .replaceAll("村部", "村");

          xzcStr = xzcStr
              .replaceAll("村委会","村")
              .replaceAll("行政村", "村")
              .replaceAll("村支部","村")
              .replaceAll("村委", "村")
              .replaceAll("村部", "村");

          startP = startP
              .replaceAll("村委会","村")
              .replaceAll("行政村", "村")
              .replaceAll("村支部","村")
              .replaceAll("村委", "村")
              .replaceAll("村部", "村");

          endP = endP
              .replaceAll("村委会","村")
              .replaceAll("行政村", "村")
              .replaceAll("村支部","村")
              .replaceAll("村委", "村")
              .replaceAll("村部", "村");

          keyP = keyP
              .replaceAll("村委会","村")
              .replaceAll("行政村", "村")
              .replaceAll("村支部","村")
              .replaceAll("村委", "村")
              .replaceAll("村部", "村");
          bw.println(
              "" +
              args[2] + "\t" +
              this.tracks + "\t" +
              name + "\t" + //航迹名称
              ItemValue.getTracksGrade(currentTrk) + "\t" + //公 路 性 质/行政等级
              ( (xzcStr.length() > 0) ? xzcStr : "无") + "\t" + //途经行政村名称
              ItemValue.getTracksT5(currentTrk) + " \t" + //线路等级/技术等级
              (orignalLength == 0 ? ItemValue.getTracksDistance(currentTrk) :
               orignalLength) / 1000 + "\t" + // 测量长度
              ItemValue.getTracksDistance(currentTrk) / 1000 + "\t" + //建设长度
              ItemValue.getTracks_jitongbu_luji_With(currentTrk) + " \t" + //路基宽度
              ItemValue.getTracksWidth(currentTrk) + " \t" + //路面宽度
              ItemValue.getTracksType(currentTrk).replaceAll("砂石路", "砂石") +
              "\t" + //路面类型
              ItemValue.getTracksStatus(currentTrk) + "\t" + //路面现状
              startP + "\t" + //起点
              endP + "\t" + //终点
              keyP + "" //主要控制点

              );

          if (xzcStr.length() > 0) {
            xzcTracks++;
            this.part = true;
            this.fuHeLiChen += ItemValue.getTracksDistance(currentTrk) / 1000;
          }

          none = !all && !part && !empty;

          if (this.tracks < tracksInfo[0].length) {
            tracksInfo[0][this.tracks] = name;
            tracksInfo[1][this.tracks] = ItemValue.getTracksT2(currentTrk);
            tracksInfo[2][this.tracks] = ItemValue.getTracksGrade(currentTrk);
            tracksInfo[3][this.tracks] = ( (xzcStr.length() > 0) ? xzcStr : "无");
            tracksInfo[4][this.tracks] = ItemValue.getTracksT5(currentTrk);
            tracksInfo[5][this.tracks] = "" +
                ItemValue.getTracksStringDistance(currentTrk);
            tracksInfo[6][this.tracks] = ItemValue.getTracks_jitongbu_luji_With(
                currentTrk);
            tracksInfo[7][this.tracks] = ItemValue.getTracksWidth(currentTrk);
            tracksInfo[8][this.tracks] = ItemValue.getTracksType(currentTrk).
                replaceAll("砂石路", "砂石");
            tracksInfo[9][this.tracks] = startP;
            tracksInfo[10][this.tracks] = endP;
            tracksInfo[11][this.tracks] = keyP;

          }
        }
        this.length += ItemValue.getTracksDistance(currentTrk) / 1000;
      }
      if (tracks != null && xzcTracks == tracks.length) {
        all = true;
      }
      if(tracks != null && this.tracks == 0 && tracks.length > 0){
        System.err.println(input+" contains "+ tracks.length +" tracks but no track specified as (拟建)");
      }

    }
    catch (Exception ex) {
      System.out.println(input);
      ex.printStackTrace();
    }

    if (empty) {
      all = part = none = false;
    }
    if (all) {
      part = none = empty = false;
    }
    if (part) {
      all = none = empty = false;
    }
    if (none) {
      all = part = empty = false;
    }
  }

  public static void main(String[] args) {
    ExtractTrackInfo cp = new ExtractTrackInfo();
    cp.extract(args);
  }

  public int getTracks() {
    return tracks;
  }

  public boolean isPart() {
    return part;
  }

  public boolean isNone() {
    return none;
  }

  public double getLength() {
    return length;
  }

  public boolean isAll() {
    return all;
  }

  public String[][] getTracksInfo() {
    return tracksInfo;
  }

  public boolean isEmpty() {
    return empty;
  }

  public double getFuHeLiChen() {
    return fuHeLiChen;
  }
}

⌨️ 快捷键说明

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