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