📄 compare.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 + -