📄 garmingmldoc.java
字号:
package net.aetherial.gis.garmin;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.w3c.dom.svg.*;
import javax.xml.parsers.*;
import net.aetherial.gis.surface.ItemValue;
import net.aetherial.gis.garmin.*;
import net.aetherial.gis.surface.Confine;
public final class GarminGMLDoc {
public static Document d = null;
public static Element root = null;
private SVGDocument svgDoc = null;
public static Vector id = new Vector();
public GarminGMLDoc() {
}
public static void IDAadd() {
id.add("");
}
public static Document getDocument() {
try {
if (d == null) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
d = db.newDocument();
root = d.createElement("GarminDataCollection");
d.appendChild(root);
}
d.setNodeValue("garminDataCollection");
}
catch (Exception e) {
System.err.println(e);
}
return d;
}
public static void resetGMLDoc() {
d = null;
}
public static void moveToEnd(Node trackOrWaypoint){
root.appendChild(trackOrWaypoint);
// root.removeChild(trackOrWaypoint);
}
public static Element addWaypoint(Waypoint w) { //这里是GPS设备读取数据时调用的
Position p = w.getPosition();
String name = w.getIdentifier();
if (GarminConfiguration.addWaypointToLog(name)) {
double lon, lat, alt;
Element e = d.createElement("waypoint");
lat = p.getDoubleDegreeLatitude();
lon = p.getDoubleDegreeLongitude();
if (p.getLongOrientChar() == 'W') {
lon = 0 - lon;
}
if (p.getLatOrientChar() == 'S') {
lat = 0 - lat;
}
Element f = newGMLPoint(lon, lat, name);
e.appendChild(f);
Node firstTrack = ItemValue.getFirstTrack();
if (firstTrack == null) {
root.appendChild(e);
}
else {
root.insertBefore(e, firstTrack);
}
return e;
}
else {
return null;
}
}
/**
* 简化编写
*/
private static Element addElement(Text t, String gmlName, String value) {
Element e = d.createElement(gmlName);
t = d.createTextNode(value);
e.appendChild(t);
return e;
}
public static Element addTrack(String name) {
if (d == null) {
getDocument();
}
if (GarminConfiguration.addTrackToLog(name)) {
String number = "", grade = "", type = "", width = "", structure = "",
status = "", yanghu = "", lujiWith = "", gaijian = "";
String jihua_licheng = "", jihua_touzi = "", jihua_kaigong = "",
jihua_wangong = "", jihua_lumian = "", jihua_luji = "",
jihua_leixing = "", jihua_beizhu = "", jihua_bianhao = "",
jihua_juli = "";
String construct = "";
Element e = d.createElement("track");
Element ename = d.createElement("gml_name");
Text t = d.createTextNode(name);
ename.appendChild(t);
Element eid = d.createElement("gml_id");
t = d.createTextNode(id.size() + "");
eid.appendChild(t);
id.add("");
Element t1 = d.createElement("gml_t1");
t = d.createTextNode("");
t1.appendChild(t);
Element t2 = d.createElement("gml_t2");
t = d.createTextNode("");
t2.appendChild(t);
Element t3 = d.createElement("gml_t3");
t = d.createTextNode("");
t3.appendChild(t);
Element t4 = d.createElement("gml_t4");
t = d.createTextNode("");
t4.appendChild(t);
Element t5 = d.createElement("gml_t5");
t = d.createTextNode("");
t5.appendChild(t);
Element t6 = d.createElement("gml_t6");
t = d.createTextNode("");
t6.appendChild(t);
Element t7 = d.createElement("gml_t7");
t = d.createTextNode("");
t7.appendChild(t);
Element enumber = d.createElement("gml_number");
t = d.createTextNode(number);
enumber.appendChild(t);
Element eldnumber = d.createElement("gml_ldnumber");
t = d.createTextNode("000");
eldnumber.appendChild(t);
Element egrade = d.createElement("gml_grade");
t = d.createTextNode(grade);
egrade.appendChild(t);
Element etype = d.createElement("gml_type");
t = d.createTextNode(type);
etype.appendChild(t);
Element ewidth = d.createElement("gml_width");
t = d.createTextNode(width);
ewidth.appendChild(t);
Element estructure = d.createElement("gml_structure");
t = d.createTextNode(structure);
estructure.appendChild(t);
Element estatus = d.createElement("gml_status");
t = d.createTextNode(status);
estatus.appendChild(t);
//以下是计划************************************************************
Element e_jihua_licheng = d.createElement("gml_jihua_licheng");
t = d.createTextNode(jihua_licheng);
e_jihua_licheng.appendChild(t);
Element e_jihua_touzi = d.createElement("gml_jihua_touzi");
t = d.createTextNode(jihua_touzi);
e_jihua_touzi.appendChild(t);
Element e_jihua_kaigong = d.createElement("gml_jihua_kaigong");
t = d.createTextNode(jihua_kaigong);
e_jihua_kaigong.appendChild(t);
Element e_jihua_wangong = d.createElement("gml_jihua_wangong");
t = d.createTextNode(jihua_wangong);
e_jihua_wangong.appendChild(t);
Element e_jihua_lumian = d.createElement("gml_jihua_lumian");
t = d.createTextNode(jihua_lumian);
e_jihua_lumian.appendChild(t);
Element e_jihua_luji = d.createElement("gml_jihua_luji");
t = d.createTextNode(jihua_luji);
e_jihua_luji.appendChild(t);
Element e_jihua_leixing = d.createElement("gml_jihua_leixing");
t = d.createTextNode(jihua_leixing);
e_jihua_leixing.appendChild(t);
Element e_jihua_beizhu = d.createElement("gml_jihua_beizhu");
t = d.createTextNode(jihua_beizhu);
e_jihua_beizhu.appendChild(t);
Element e_jihua_bianhao = d.createElement("gml_jihua_bianhao");
t = d.createTextNode(jihua_bianhao);
e_jihua_bianhao.appendChild(t);
Element e_jihua_juli = d.createElement("gml_jihua_juli");
t = d.createTextNode(jihua_juli);
e_jihua_juli.appendChild(t);
//以上是计划************************************************************
e.appendChild(ename);
e.appendChild(eid);
e.appendChild(enumber);
e.appendChild(egrade);
e.appendChild(etype);
e.appendChild(ewidth);
e.appendChild(estructure);
e.appendChild(estatus);
e.appendChild(t1);
e.appendChild(t2);
e.appendChild(t3);
e.appendChild(t4);
e.appendChild(t5);
e.appendChild(t6);
e.appendChild(t7);
//
e.appendChild(addElement(t, "gml_construct", ""));
e.appendChild(e_jihua_licheng);
e.appendChild(e_jihua_touzi);
e.appendChild(e_jihua_kaigong);
e.appendChild(e_jihua_wangong);
e.appendChild(e_jihua_lumian);
e.appendChild(e_jihua_luji);
e.appendChild(e_jihua_leixing);
e.appendChild(e_jihua_beizhu);
e.appendChild(e_jihua_bianhao);
e.appendChild(e_jihua_juli);
//交通部
e.appendChild(addElement(t, "gml_yanghu", yanghu));
e.appendChild(addElement(t, "gml_lujiWith", lujiWith));
e.appendChild(addElement(t, "gml_gaijian", gaijian));
/**
* 路段编码
*/
e.appendChild(eldnumber);
Element eline = d.createElement("gml_LineString");
e.appendChild(eline);
root.appendChild(e);
ItemValue.hasTrack = true;
ItemValue.tracksNum++;
return eline;
}
else {
return null;
}
}
public static Element addTrack(String name, Node track) { //这里的用处是在指定的track前面插入个track
if (d == null) {
getDocument();
}
// if (GarminConfiguration.addTrackToLog(name)) {
String number = ItemValue.getTracksNumber(track);
String grade = ItemValue.getTracksGrade(track);
String type = ItemValue.getTracksType(track);
String width = ItemValue.getTracksWidth(track);
String structure = ItemValue.getTracksStructure(track);
String status = ItemValue.getTracksStatus(track);
String st1 = ItemValue.getTracksT1(track);
String st2 = ItemValue.getTracksT2(track);
String st3 = ItemValue.getTracksT3(track);
String st4 = ItemValue.getTracksT4(track);
String st5 = ItemValue.getTracksT5(track);
String st6 = ItemValue.getTracksT6(track);
String st7 = ItemValue.getTracksT7(track);
Element e = d.createElement("track");
Element ename = d.createElement("gml_name");
Text t = d.createTextNode(name);
ename.appendChild(t);
Element eid = d.createElement("gml_id");
t = d.createTextNode(id.size() + "");
eid.appendChild(t);
id.add("");
Element t1 = d.createElement("gml_t1");
t = d.createTextNode(st1);
t1.appendChild(t);
Element t2 = d.createElement("gml_t2");
t = d.createTextNode(st2);
t2.appendChild(t);
Element t3 = d.createElement("gml_t3");
t = d.createTextNode(st3);
t3.appendChild(t);
Element t4 = d.createElement("gml_t4");
t = d.createTextNode(st4);
t4.appendChild(t);
Element t5 = d.createElement("gml_t5");
t = d.createTextNode(st5);
t5.appendChild(t);
Element t6 = d.createElement("gml_t6");
t = d.createTextNode(st6);
t6.appendChild(t);
Element t7 = d.createElement("gml_t7");
t = d.createTextNode(st7);
t7.appendChild(t);
Element enumber = d.createElement("gml_number");
t = d.createTextNode(number);
enumber.appendChild(t);
Element egrade = d.createElement("gml_grade");
t = d.createTextNode(grade);
egrade.appendChild(t);
Element etype = d.createElement("gml_type");
t = d.createTextNode(type);
etype.appendChild(t);
Element ewidth = d.createElement("gml_width");
t = d.createTextNode(width);
ewidth.appendChild(t);
Element estructure = d.createElement("gml_structure");
t = d.createTextNode(structure);
estructure.appendChild(t);
Element estatus = d.createElement("gml_status");
t = d.createTextNode(status);
estatus.appendChild(t);
e.appendChild(ename);
e.appendChild(eid);
e.appendChild(enumber);
e.appendChild(egrade);
e.appendChild(etype);
e.appendChild(ewidth);
e.appendChild(estructure);
e.appendChild(estatus);
e.appendChild(t1);
e.appendChild(t2);
e.appendChild(t3);
e.appendChild(t4);
e.appendChild(t5);
e.appendChild(t6);
e.appendChild(t7);
e.appendChild(addElement(t, "gml_construct",
ItemValue.getTracks_construct(track)));
e.appendChild(addElement(t, "gml_jihua_licheng",
ItemValue.getTracks_jihua_licheng(track)));
e.appendChild(addElement(t, "gml_jihua_touzi",
ItemValue.getTracks_jihua_touzi(track)));
e.appendChild(addElement(t, "gml_jihua_kaigong",
ItemValue.getTracks_jihua_kaigong(track)));
e.appendChild(addElement(t, "gml_jihua_wangong",
ItemValue.getTracks_jihua_wangong(track)));
e.appendChild(addElement(t, "gml_jihua_lumian",
ItemValue.getTracks_jihua_lumian(track)));
e.appendChild(addElement(t, "gml_jihua_luji",
ItemValue.getTracks_jihua_luji(track)));
e.appendChild(addElement(t, "gml_jihua_leixing",
ItemValue.getTracks_jihua_leixing(track)));
e.appendChild(addElement(t, "gml_jihua_beizhu",
ItemValue.getTracks_jihua_beizhu(track)));
e.appendChild(addElement(t, "gml_jihua_bianhao",
ItemValue.getTracks_jihua_bianhao(track)));
e.appendChild(addElement(t, "gml_jihua_juli",
ItemValue.getTracks_jihua_juli(track)));
e.appendChild(addElement(t, "gml_yanghu",
ItemValue.getTracks_jitongbu_yanghu(track)));
e.appendChild(addElement(t, "gml_lujiWith",
ItemValue.getTracks_jitongbu_luji_With(track)));
e.appendChild(addElement(t, "gml_gaijian",
ItemValue.getTracks_jitongbu_gaijian(track)));
e.appendChild(addElement(t, "gml_ldnumber",
ItemValue.getTracks_ld_original_number(track)));
Element eline = d.createElement("gml_LineString");
e.appendChild(eline);
root.insertBefore(e, track);
ItemValue.hasTrack = true;
ItemValue.tracksNum++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -