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

📄 fileusejdom.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package net.aetherial.gis.surface;

import java.io.*;
import java.util.*;

import org.jdom.*;
import org.jdom.input.*;
import net.aetherial.gis.garmin.*;

public class FileUseJDom {
  private int cutCount = 0;
  Element root = null;
  Document d = null;
  public long IDleast = 0;
  public long IDlargest = 0;
  //public FileUseJDom() {
  //}
  public FileUseJDom(FileReader fr) {
    try {
      Reader r = new BufferedReader(fr);
      SAXBuilder builder = new SAXBuilder();
      d = builder.build(r);
      root = d.getRootElement();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  public FileUseJDom(File f) {
    try {
      Reader r = new BufferedReader(new FileReader(f));
      SAXBuilder builder = new SAXBuilder();
      d = builder.build(r);
      root = d.getRootElement();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  public FileUseJDom(String content) {
    try {
      //Reader r = new BufferedReader(new FileReader(filePath));
      StringReader sr = new StringReader(content);
      SAXBuilder builder = new SAXBuilder();
      d = builder.build(sr);
      root = d.getRootElement();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  public FileUseJDom(InputStream in) {
    try {
      //Reader r = new BufferedReader(new FileReader(filePath));
      //StringReader sr = new StringReader(content);
      SAXBuilder builder = new SAXBuilder();
      d = builder.build(in);
      root = d.getRootElement();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  /**
   * 归纳的关于读取每项元素的方法
   */
  private Element get_jihua_Element(Element track, String gml) {
    Element e = null;
    e = track.getChild(gml);
    if (e == null) {
      e = new Element(gml);
    }
    return e;
  }

  /**
   * 读取航迹
   */
  public void getTracks() {
    ItemValue.idPairs = new Hashtable();
    org.w3c.dom.Element e = null;
    Element track = null;
    Element trackName = null, number = null, id = null, grade = null, type = null,
        width = null, structure = null, status = null, t1 = null, t2 = null, t3 = null,
        t4 = null, t5 = null, t6 = null, t7 = null, construct = null,
        jihua_licheng = null,
        jihua_touzi = null, jihua_kaigong = null, jihua_wangong = null,
        jihua_lumian = null, jihua_luji = null, jihua_leixing = null,
        jihua_beizhu = null, jihua_bianhao = null, jihua_juli = null, yanghu = null,
        lujiWith = null, gaijian = null, ldnumber = null;
    Element trackPoints = null, aPoint = null;
    Element x = null, y = null, z = null, time = null;
    List tracks = root.getChildren("track");
    List coords = null;
    Iterator i = tracks.iterator();
    Iterator j = null;
    String idTemp = "";
    long thisIdTemp = 0;
    while (i.hasNext()) {
      track = (Element) i.next();
      //得到航迹的基本属性
      trackName = track.getChild("gml_name");
      number = track.getChild("gml_number");
      id = track.getChild("gml_id");

      if (id == null) {
        id = new Element("gml_id");
      }
      {
        idTemp = id.getTextTrim();

        idTemp = idTemp.replaceAll("new", "");
        if (idTemp.equals("")) {
          idTemp = "" + 1;
        }
        thisIdTemp = Long.parseLong(idTemp);
        if (this.IDleast == 0) {
          this.IDleast = thisIdTemp;
        }
        else {
          if (this.IDleast > thisIdTemp) {
            this.IDleast = thisIdTemp;
          }
        }
        if (this.IDlargest < thisIdTemp) {
          this.IDlargest = thisIdTemp;
        }
      }
      ItemValue.idPairs.put(id.getTextTrim(), "" + (ItemValue.tracksNum + 1));
      t1 = track.getChild("gml_t1");
      if (t1 == null) {
        t1 = new Element("gml_t1");
      }
      t2 = track.getChild("gml_t2");
      if (t2 == null) {
        t2 = new Element("gml_t2");
      }
      t3 = track.getChild("gml_t3");
      if (t3 == null) {
        t3 = new Element("gml_t3");
      }
      t4 = track.getChild("gml_t4");
      if (t4 == null) {
        t4 = new Element("gml_t4");
      }
      t5 = track.getChild("gml_t5");
      if (t5 == null) {
        t5 = new Element("gml_t5");
      }
      t6 = track.getChild("gml_t6");
      if (t6 == null) {
        t6 = new Element("gml_t6");
      }
      t7 = track.getChild("gml_t7");
      if (t7 == null) {
        t7 = new Element("gml_t7");
      }
      ldnumber = track.getChild("gml_ldnumber");
      if (ldnumber == null) {
        ldnumber = new Element("gml_ldnumber");
      }

      construct = this.get_jihua_Element(track, "gml_construct");
      jihua_licheng = this.get_jihua_Element(track, "gml_jihua_licheng");
      jihua_touzi = this.get_jihua_Element(track, "gml_jihua_touzi");
      jihua_kaigong = this.get_jihua_Element(track, "gml_jihua_kaigong");
      jihua_wangong = this.get_jihua_Element(track, "gml_jihua_wangong");
      jihua_lumian = this.get_jihua_Element(track, "gml_jihua_lumian");
      jihua_luji = this.get_jihua_Element(track, "gml_jihua_luji");
      jihua_leixing = this.get_jihua_Element(track, "gml_jihua_leixing");
      jihua_beizhu = this.get_jihua_Element(track, "gml_jihua_beizhu");
      jihua_bianhao = this.get_jihua_Element(track, "gml_jihua_bianhao");
      jihua_juli = this.get_jihua_Element(track, "gml_jihua_juli");
      //System.out.println("gml_id"+id.getTextTrim());
      yanghu = this.get_jihua_Element(track, "gml_yanghu");
      lujiWith = this.get_jihua_Element(track, "gml_lujiWith");
      gaijian = this.get_jihua_Element(track, "gml_gaijian");
      grade = track.getChild("gml_grade");
      type = track.getChild("gml_type");
      width = track.getChild("gml_width");
      structure = track.getChild("gml_structure");
      status = track.getChild("gml_status");
      //
      trackPoints = track.getChild("gml_LineString");
      coords = trackPoints.getChildren("gml_coord");
      j = coords.iterator();
      if (!ItemValue.nianBao && ItemValue.baoBu) {
        trackName.setText("[村道]" + trackName.getText());
        number.setText("");
        grade.setText("村道");
      }
      if (ItemValue.nianBao && ItemValue.ganXian) {

        number.setText(ItemValue.ganXianName);
        if (number.getTextTrim().length() > 1) {
          if ("G".equalsIgnoreCase("" + number.getTextTrim().charAt(0))) {
            grade.setText("国道");
          }
          if ("S".equalsIgnoreCase("" + number.getTextTrim().charAt(0))) {
            grade.setText("省道");
          }
          if ("X".equalsIgnoreCase("" + number.getTextTrim().charAt(0))) {
            grade.setText("县道");
          }
          if ("Y".equalsIgnoreCase("" + number.getTextTrim().charAt(0))) {
            grade.setText("乡道");
          }
        }
      }
      //System.out.println("trackName:"+trackName.getTextTrim());
      if (ItemValue.test == true) {
        e = GarminGMLDoc.addXmlTrack(this.setNameToGPSMap(trackName.getTextTrim()),
                                     (String) ItemValue.idPairs.get(id.
            getTextTrim()), //id.getTextTrim(),
                                     number.getTextTrim().replaceAll("g", "G").
                                     replaceAll("s", "S").replaceAll("x", "X").
                                     replaceAll("y", "Y").replaceAll("c", "C"),
                                     ldnumber.getTextTrim(),
                                     grade.getTextTrim(),
                                     type.getTextTrim(),
                                     width.getTextTrim(),
                                     structure.getTextTrim(),
                                     status.getTextTrim(),
                                     t1.getTextTrim(),
                                     t2.getTextTrim(),
                                     t3.getTextTrim(),
                                     t4.getTextTrim(),
                                     t5.getTextTrim(),
                                     t6.getTextTrim(),
                                     t7.getTextTrim(),
                                     construct.getTextTrim(),
                                     jihua_licheng.getTextTrim(),
                                     jihua_touzi.getTextTrim(),
                                     jihua_kaigong.getTextTrim(),
                                     jihua_wangong.getTextTrim(),
                                     jihua_lumian.getTextTrim(),
                                     jihua_luji.getTextTrim(),
                                     jihua_leixing.getTextTrim(),
                                     jihua_beizhu.getTextTrim(),
                                     jihua_bianhao.getTextTrim(),
                                     jihua_juli.getTextTrim(),
                                     yanghu.getTextTrim(),
                                     lujiWith.getTextTrim(),
                                     gaijian.getTextTrim());
      }
      else {
        e = GarminGMLDoc.addXmlTrack(trackName.getTextTrim().replaceAll(" ", "").
                                     replaceAll("(", "(").replaceAll(")", ")"),
                                     (String) ItemValue.idPairs.get(id.
            getTextTrim()), //id.getTextTrim(),
                                     number.getTextTrim().replaceAll("g", "G").
                                     replaceAll("s", "S").replaceAll("x", "X").
                                     replaceAll("y", "Y").replaceAll("c", "C"),
                                     ldnumber.getTextTrim(),
                                     grade.getTextTrim(),
                                     type.getTextTrim(),
                                     width.getTextTrim(),
                                     structure.getTextTrim(),
                                     status.getTextTrim(),
                                     t1.getTextTrim(),
                                     t2.getTextTrim(),
                                     t3.getTextTrim(),
                                     t4.getTextTrim(),
                                     t5.getTextTrim(),
                                     t6.getTextTrim(),
                                     t7.getTextTrim(),
                                     construct.getTextTrim(),
                                     jihua_licheng.getTextTrim(),
                                     jihua_touzi.getTextTrim(),
                                     jihua_kaigong.getTextTrim(),
                                     jihua_wangong.getTextTrim(),
                                     jihua_lumian.getTextTrim(),
                                     jihua_luji.getTextTrim(),
                                     jihua_leixing.getTextTrim(),
                                     jihua_beizhu.getTextTrim(),
                                     jihua_bianhao.getTextTrim(),
                                     jihua_juli.getTextTrim(),
                                     yanghu.getTextTrim(),
                                     lujiWith.getTextTrim(),
                                     gaijian.getTextTrim());

      }
      ItemValue.tracksNum++;
      while (j.hasNext()) {
        aPoint = (Element) j.next();
        //得到每个点的基本属性
        x = aPoint.getChild("X");
        y = aPoint.getChild("Y");
        z = aPoint.getChild("Z");
        time = aPoint.getChild("Time");
        //
        //System.out.println("x:"+x.getTextTrim()+",y:"+y.getTextTrim()+",z:"+z.getTextTrim()+",time:"+time.getTextTrim());
        GarminGMLDoc.addXmlTrackPoint(e, Float.parseFloat(x.getTextTrim()),
                                      Float.parseFloat(y.getTextTrim()),
                                      Float.parseFloat(z.getTextTrim()),
                                      time.getTextTrim());
      }
    }
  }

  public String setNameToGPSMap(String wptName) {
    wptName = wptName.trim();
    wptName = wptName.replace('(', '(');
    wptName = wptName.replace(')', ')');
    wptName = wptName.replace('/', '-');
    wptName = wptName.replace('\\', '-');
    wptName = wptName.replaceAll("--", "-");
    return wptName;
  }

  public String autoNum(Element waypointName) {
    if (ItemValue.cuting == true) {
      return (cutCount++) + waypointName.getTextTrim();
    }
    else {
      return waypointName.getTextTrim();
    }
  }

  private Element get_wpt_element(Element e, Element coord, String gmlName) {
    e = coord.getChild(gmlName); //TracksID
    if (e == null) {
      e = new Element("TracksID");
    }
    return e;
  }

  public void getWaypoints() throws Exception {

    org.w3c.dom.Element e = null;
    Element waypoint = null;
    Element waypointName = null;
    Element x = null, y = null, z = null, time = null, rs = null, rwa = null,
        rwb = null, kp = null, id = null;
    Element xzc = null, qiaoliang = null, suidao = null, dukou = null;
    Element coord = null;
    List waypoints = root.getChildren("waypoint");
    Iterator i = waypoints.iterator();
    while (i.hasNext()) {
      waypoint = (Element) i.next();
      waypointName = waypoint.getChild("gml_Point").getChild("gml_name");

      coord = waypoint.getChild("gml_Point").getChild("gml_coord");

⌨️ 快捷键说明

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