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

📄 compare.java

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

import net.aetherial.gis.test.tools.lost.track.TrackHypotaxis;
import net.aetherial.gis.test.tools.lost.track.TracksCompare;
import org.w3c.dom.Node;
import net.aetherial.gis.test.tools.lost.diqu.DiquCompare;
import java.io.File;
import java.util.*;
import net.aetherial.gis.test.tools.lost.xiangcun.XiangcunCompare;
import net.aetherial.gis.our.FrameOur;
import net.aetherial.gis.test.tools.lost.track.ClassifyTracks;
import net.aetherial.gis.surface.ItemValue;
import net.aetherial.gis.surface.CreateFile;

/**
 * <p>标题: 农村公路数据采集与核对工具</p>
 *
 * <p>描述: 比较</p>
 *
 * <p>版权: Copyright (c) 2006</p>
 *
 * <p>公司: 安徽省通途信息技术公司</p>
 *
 * @author 王爱国
 * @version 1.0
 */
public class Compare {
  private FrameOur fo = null;
  public Compare() {
    Parameter.Configure();
  }

  public List compareXian(File sourceDirectory) throws TongtuClientException {
    System.out.println("开始比较:" + sourceDirectory.getAbsolutePath());
    /**
     * 得到所有对应地区
     */

    DiquCompare diqu = new DiquCompare();
    File[] compareDirectorys = diqu.getBeCompareDirectory(sourceDirectory,
        diqu.getCorrespondenceXianQu(new File(Parameter.DIQU_EXCEL)));
    XiangcunCompare xiangcun = new XiangcunCompare();
//    System.out.println(" compareDirectorys:" + compareDirectorys.length + ",[0]:" +compareDirectorys[0].getAbsolutePath());

    /**
     * 得到所有对应地区的乡村道GPS文件
     */
    List list = new ArrayList();
    File[] tempGPSFiles = null;
    for (int i = 0; compareDirectorys != null && i < compareDirectorys.length;
         i++) {
      xiangcun.setBeCompareFileDirectory(compareDirectorys[i]);
      tempGPSFiles = xiangcun.getBeCompareXiangcunFiles();
//      System.out.println("  tempGPSFiles:" + tempGPSFiles.length);
      for (int j = 0; j < tempGPSFiles.length; j++) {
        list.add(tempGPSFiles[j]);
//        System.out.println("   " + tempGPSFiles[j].getAbsolutePath());
      }
    }
    File[] targetGPSFiles = new File[list.size()];
    for (int i = 0; i < list.size(); i++) {
      targetGPSFiles[i] = (File) list.get(i);
    }

    /**
     * 得到源GPS文件
     */
    xiangcun.setBeCompareFileDirectory(sourceDirectory);
    File[] sourceGPSFiles = xiangcun.getBeCompareXiangcunFiles();

    /**
     * 比较
     */
    ClassifyTracks classify = new ClassifyTracks();
    TracksCompare trackCompare = new TracksCompare();
    Node[] primal = null, target = null;
    int errType = 0;
    ErrorRecord errTemp = null;

    List errorInfor = new ArrayList();

    for (int i = 0; sourceGPSFiles != null && i < sourceGPSFiles.length; i++) {
      this.fo.openFile(sourceGPSFiles[i]);
      classify.setKeepTracks(ItemValue.getTracks());
      for (int j = 0; targetGPSFiles != null && j < targetGPSFiles.length; j++) {
        this.fo.openFile(targetGPSFiles[j]);
      }
      primal = classify.getSourceTracks();
      target = classify.getBeCompareTracks();
      for (int j = 0; primal != null && j < primal.length; j++) {
        errType = trackCompare.getTracksCompareType(primal[j], target);
        if (errType != trackCompare.TYPE_1_相等) {
          errTemp = new ErrorRecord();
          errTemp.setValue(sourceGPSFiles[i], primal[j]);
          errTemp.setErrType(errType);
          errorInfor.add(errTemp);
        }
      }
      this.fo.reset();
    }
    System.out.println("结束比较:" + sourceDirectory.getAbsolutePath());
    return errorInfor;
  }

  public List compareShi(File sourceDirectory) throws TongtuClientException {
    File[] xians = sourceDirectory.listFiles();
    List temp = new ArrayList();
    for (int i = 0; xians != null && i < xians.length; i++) {
      if (xians[i].getName().indexOf("汇总") == -1 &&
          xians[i].getName().indexOf("svn") == -1) {
        temp.addAll(this.compareXian(xians[i]));
      }
    }
    return temp;
  }

  public String getErrorString(List errorRecords) {
    String n = "";
    for (int i = 0; i < errorRecords.size(); i++) {
      n += (ErrorRecord) errorRecords.get(i) + "\r\n";
    }
    return n;
  }

  public void setFo(FrameOur fo) {
    this.fo = fo;
  }

  private String getSplashPath(String path){
    if (path.endsWith("\\") || path.endsWith("/")) {
      return path;
    }else{
      return path + "\\";
    }
  }
  public String createLogFile(File difang, String content) {

    File f = new File(getSplashPath(Parameter.OUTPUT_TXT) + difang.getName() + "缺少的乡村道" +
                      System.currentTimeMillis() + ".txt");
    CreateFile cf = new CreateFile(f);
    cf.memoryToFile(content);
    return f.getAbsolutePath();
  }

  public static void main(String args[]) {

    FrameOur fo = new FrameOur();
    ItemValue.setShowDialogMessage(false);
    Compare com = new Compare();
    com.setFo(fo);
    List list = new ArrayList();
    File diqu = null;
    if (args[0] == null || args[0].equals("")) {
      diqu = new File(
          "E:\\农村公路通达情况调查\\数据\\报省数据\\村村通数据\\安徽省\\安庆市");
    }else{
      diqu = new File(com.getSplashPath(Parameter.PRIMAL_DIRECTORY) +  args[0]);
    }
//    System.out.println(diqu.getAbsolutePath());
    try {
      list = com.compareShi(diqu);
    }
    catch (TongtuClientException ex) {
      System.out.println(ex.getMessage());
    }
    String str = com.getErrorString(list);
    com.createLogFile(diqu, str);
    System.out.println(str);

  }

}

⌨️ 快捷键说明

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