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

📄 unitealltrack.java

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

import org.w3c.dom.*;
import net.aetherial.gis.surface.ItemValue;
import java.util.Vector;
import net.aetherial.gis.publicuse.track.ConcatenatedTrack;
import net.aetherial.gis.garmin.GarminGMLDoc;
import net.aetherial.gis.output.toLd.cut.RelateWPTAfterCut;

/**
 * <p>Title: </p>
 *
 * <p>Description:连接所有的同编号航迹 </p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class UniteAllTrack {
  public UniteAllTrack() {
  }

  /**
   * 是否所有的航迹同编号
   */
  public boolean isAllTrackNumberSame() {
    Node[] trks = ItemValue.getTracks();
    if (trks == null) {
      return false;
    }
    String number = "";
    for (int i = 0; i < trks.length; i++) {
      if (i == 0) {
        number = ItemValue.getTracksNumber(trks[i]).trim();
      }
      else {
        if (! (number.equals(ItemValue.getTracksNumber(trks[i]).trim()))) {
          return false;
        }
      }
    }
    return true;
  }
  /**
   * 自动生成多条连续的航迹
   */
  public Vector createLinkedTrks() {
    Vector ctrks = ConcatenatedTrack.addTracks(ItemValue.getTracks());
    Vector trackPoints = null;
    Vector newTrk = new Vector();
    for (int i = 0; i < ctrks.size(); i++) {
      trackPoints = ( (ConcatenatedTrack) ctrks.get(i)).getTrackPoints();
      newTrk.add(createNewTrack(trackPoints,
                                ( (ConcatenatedTrack) ctrks.get(i)).getFirstTrack()));
    }
    return newTrk;
  }
  /**
   * 指定的航迹数组生成航迹
   */
  public Node createLinkedTrk(Node[] trks) throws Exception {
    Vector ctrks = ConcatenatedTrack.addTracks(trks);
    if (ctrks.size() != 1) {
      String n = "";
      Node[] temp;
      for (int i = 0; i < ctrks.size(); i++) {
        n = n + "\r\n" + (i + 1) + ".";
        temp = ( (ConcatenatedTrack) ctrks.get(i)).getConcatenatedTrack();
        for (int j = 0; temp != null && j < temp.length; j++) {
          if (j == 0) {
            n = n + ItemValue.getTracksName(temp[j]) + "{" +
                ItemValue.getTracksStringDistance(temp[j]) + "}\r\n";
          }
          else {
            n = n + " " + ItemValue.getTracksName(temp[j]) + "{" +
                ItemValue.getTracksStringDistance(temp[j]) + "}\r\n";
          }

        }
      }
      throw new Exception("无法连接,因为航迹组成" + ctrks.size() + "段。" + n);
    }
    else {
      ConcatenatedTrack ct = (ConcatenatedTrack) ctrks.get(0);
      Node newTrack = createNewTrack(ct.getTrackPoints(), ct.getFirstTrack());
//      (new RelateWPTAfterCut()).relateWptToTrk(ItemValue.getWaypoint(), newTrack);
      return newTrack;
    }
  }

  /**
   * 系统中所有节点生成连续的航迹
   */
  public Node createLinkedTrk() throws Exception {
    return createLinkedTrk(ItemValue.getTracks());
  }

  /**
   * 用一个ConcatenatedTrack生成一个连续的航迹
   */
  public Node createLinkedTrk(ConcatenatedTrack concatenatedTrack) throws Exception {
    return createLinkedTrk(concatenatedTrack.getConcatenatedTrack());
  }

  public Vector getConcatenatedTrack() {
    return ConcatenatedTrack.addTracks(ItemValue.getTracks());
  }

  private Node createNewTrack(Vector trackpoints, Node trkRef) {
    if (trackpoints.size() == 0) {
      return null;
    }
    else {
      Element e = GarminGMLDoc.addTrack(ItemValue.getTracksNumber(trkRef) +
                                        "合并", trkRef);
      for (int i = 0; i < trackpoints.size(); i++) {
        GarminGMLDoc.addTrackPoint(e, (Node) trackpoints.get(i));
      }
      return e.getParentNode();
    }
  }

}

⌨️ 快捷键说明

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