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

📄 deleteactive.java

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