📄 deleteactive.java
字号:
package net.aetherial.gis.our.auto;
import net.aetherial.gis.our.FrameOur;
import java.io.File;
import org.w3c.dom.Node;
import net.aetherial.gis.surface.ItemValue;
import java.io.IOException;
import net.aetherial.gis.surface.CreateFile;
import net.aetherial.gis.dataType.GPSFile;
import org.w3c.dom.Document;
import net.aetherial.gis.garmin.GarminGMLDoc;
import org.w3c.dom.Element;
import net.aetherial.gis.util.Encryption;
import net.aetherial.gis.our.WipeWaypoint;
import net.aetherial.gis.dataType.WptType;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class DeleteActive {
FrameOur fo = null;
public DeleteActive(FrameOur fo) {
this.fo = fo;
}
public void delete(String inputDirectory,String outputDirectory){
File f = new File(inputDirectory);
File[] all = f.listFiles();
String filename = "";
for(int i =0;i<all.length;i++){
filename = all[i].getName();
/**
* 临时解密
*/
//ItemValue.encrypt = false;
fo.openFile(all[i]);
System.out.println("正在deleteActiveTrack");
this.deleteActiveTrack();
System.out.println("正在deleteNumberWaypoint");
this.deleteNumberWaypoint();
System.out.println("正在deleteSameWpt");
this.deleteSameWpt();
//System.out.println("正在deleteNoTrkWpt");
//this.deleteNoTrkWpt();
System.out.println("正在savedFile");
ItemValue.encrypt = true;
this.savedFile(outputDirectory,filename);
fo.reset();
}
}
public void deleteActiveTrack(){
int[] pos = ItemValue.getPosition("track");
Node node = null;
for (int i = 0; i < pos.length; i++) {
node = ItemValue.getTracks(pos[i]);
if (ItemValue.getTracksName(node).equals("ACTIVE LOG")) {
System.out.println("发现ACTIVE LOG,清除该航迹");
ItemValue.deleteTracks(node);
}
}
}
//去除航点中数字的部分,
public void deleteNumberWaypoint(){
int[] pos = ItemValue.getPosition("waypoint");
Node[] wpt = new Node[pos.length];
for(int i = 0;i<pos.length;i++){
wpt[i] = ItemValue.getWaypoint(pos[i]);
}
for(int i = 0;i<pos.length;i++){
if(this.canDelete(wpt[i])){
ItemValue.removeWaypoint(wpt[i]);
}
}
}
/**
* 判断该航点是否是行政村航点
*/
private boolean isXZC(Node wpt){
String kp = ItemValue.getWaypointKP(wpt);
if(kp.equals(WptType.W1XingZhengCun)){
return true;
}else{
return false;
}
}
private boolean canDelete(Node wpt){
WipeWaypoint wipe = new WipeWaypoint();
String name = ItemValue.getWaypointName(wpt);
String RS = ItemValue.getWaypointRS(wpt);
String RWa = ItemValue.getWaypointRWa(wpt);
String RWb = ItemValue.getWaypointRWb(wpt);
String KP = ItemValue.getWaypointKP(wpt);
if(wipe.isNumeric(name)){
if((RS.equals(""))&&(RWa.equals(""))&&(RWb.equals(""))&&(KP.equals(""))){
return true;
//ItemValue.removeWaypoint(wpt);
}else{
if(!(KP.equals(""))){
ItemValue.setWaypointName(wpt, KP);
return false;
}
if(!((RS.equals(""))&&(RWa.equals(""))&&(RWb.equals("")))){
ItemValue.setWaypointName(wpt, "路面变化点");
return false;
}
}
}
return false;
}
/**
* 去除同样的点,优先保留关联航迹的点
*/
private void deleteSameWpt(){
Node[] wpt1 = ItemValue.getWaypoint();
Node[] wpt2 = ItemValue.getWaypoint();
if(wpt1 == null){
return;
}
for (int i = 0; i < wpt1.length; i++) {
if (i<0) {
i=0;
}
for (int j = 0; j < wpt2.length; j++) {
if (j<0) {
j=0;
}
if(i!=j){
if(this.deleteWpt(wpt1[i],wpt2[j],(i+","+j))){
wpt1 = ItemValue.getWaypoint();
wpt2 = ItemValue.getWaypoint();
i--;
j--;
}
}
}
}
}
/**
* 去除掉没有关联航迹的航点
*/
private void deleteNoTrkWpt(){
Node[] wpt = ItemValue.getWaypoint();
if(wpt == null){
return;
}
for (int i = 0; i < wpt.length; i++) {
if(i<0){
i =0;
}
if(ItemValue.getWaypointTracksID(wpt[i]).equals("-2")){
ItemValue.removeWaypoint(wpt[i]);
wpt = ItemValue.getWaypoint();
i--;
}
}
}
private boolean deleteWpt(Node w1,Node w2,String str){
String name1 = ItemValue.getWaypointName(w1);
String name2 = ItemValue.getWaypointName(w2);
if (name1.equals(name2)) {
String x1 = ItemValue.getWaypointX(w1);
String x2 = ItemValue.getWaypointX(w2);
String y1 = ItemValue.getWaypointY(w1);
String y2 = ItemValue.getWaypointY(w2);
String z1 = ItemValue.getWaypointZ(w1);
String z2 = ItemValue.getWaypointZ(w2);
if((x1.equals(x2))&&(y1.equals(y2))&&(z1.equals(z2))){
System.out.println("Find Same:" + name1 + "--" + str);
if(ItemValue.getWaypointTracksID(w1).equals("-2")){
ItemValue.removeWaypoint(w1);
System.out.println("remove 1");
return true;
}
if(ItemValue.getWaypointTracksID(w2).equals("-2")){
ItemValue.removeWaypoint(w2);
System.out.println("remove 2");
return true;
}
}
}
return false;
}
private void savedFile(String outputDirectory, String fileName) {
Document d1 = GarminGMLDoc.d;
Element root1 = GarminGMLDoc.root;
ItemValue.getRidOfTracksAndWaypointIDNew();
File cff = new File(outputDirectory +
GPSFile.addGPSSuffix(GPSFile.getRidOfGPSSuffix(fileName)));
try {
cff.createNewFile();
}
catch (IOException ex) {
}
CreateFile cf = new CreateFile(cff);
/**
*临时加密
*/
ItemValue.encrypt = true;
if(ItemValue.encrypt == true){
try {
cf.memoryToFile(Encryption.encryptFromString(GarminGMLDoc.printDoc(),
Encryption.key));
}
catch (Exception ex) {
}
}else{
cf.memoryToFile(GarminGMLDoc.printDoc());
}
GarminGMLDoc.d = d1;
GarminGMLDoc.root = root1;
}
public static void main(String[] args) {
DeleteActive deleteactive = new DeleteActive(null);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -