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

📄 garmingmldoc.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
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 + -