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

📄 waypointintotracks.java

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

public class WaypointIntoTracks {
  public WaypointIntoTracks() { //航点插入到航迹中去
    boolean exactFind = true, aboutFind = true;
    double wayLat, wayLon;
    double tracksLat, tracksLon,lastLat = 0.0,
        lastLon = 0.0;
    if (myTest.waypointName.size() > 0) { //如果有航点的话,下面计算才有可能

      for (int i = 0; i < myTest.waypointName.size(); i++) { //循环航点,让每个航点都计算一下.
        //System.out.println("myTest.waypointName.size()="+i);
        wayLat = Double.parseDouble(myTest.waypointLat.get(i) + "");
        wayLon = Double.parseDouble(myTest.waypointLon.get(i) + "");

        for (int j = 0; j < myTest.name.size(); j++) {
          System.out.println("myTest.name.size()="+j);
          tracksLat = Double.parseDouble(myTest.lat.get(j) + "");
          tracksLon = Double.parseDouble(myTest.lon.get(j) + "");
          //tracksLon = Double.parseDouble(myTest.lon.get(j) + "");
          /////////////////////在精确的位置插入数据////////////////////////////////////////////
          if (exactFind) {
            if (lastLat != 0.0) {
              if ( (wayLat > lastLat) && (wayLat < tracksLat)) { //如果航点比上一个航迹点大,比这一个航迹点小的话.
                if (lastLon != 0.0) {
                  if ( (wayLon > lastLon) && (wayLon < tracksLon)) { //如果航点比上一个航迹点大,比这一个航迹点小的话.
                    myTest.lat.insertElementAt(myTest.waypointLat.get(i) + "",
                                               j);
                    myTest.lon.insertElementAt(myTest.waypointLon.get(i) + "",
                                               j);
                    myTest.name.insertElementAt(myTest.waypointName.get(i) + "",
                                                j);
                    exactFind = true;
                   // System.out.println("Waypoint insert into tracks :" + j +
                   //                    "Site1");
                  }
                  else if ( (wayLon < lastLon) && (wayLon > tracksLon)) {
                    myTest.lat.insertElementAt(myTest.waypointLat.get(i) + "",
                                               j);
                    myTest.lon.insertElementAt(myTest.waypointLon.get(i) + "",
                                               j);
                    myTest.name.insertElementAt(myTest.waypointName.get(i) + "",
                                                j);
                    exactFind = true;
                   // System.out.println("Waypoint insert into tracks :" + j +
                   //                    "Site2");
                  }else if((Math.abs(wayLon-tracksLon))<0.01){//在模糊的位置插入数据
                    myTest.lat.insertElementAt(myTest.waypointLat.get(i) + "",
                                               j);
                    myTest.lon.insertElementAt(myTest.waypointLon.get(i) + "",
                                               j);
                    myTest.name.insertElementAt(myTest.waypointName.get(i) + "",
                                                j);
                   // System.out.println("Waypoint insert into tracks :" + j +
                    //                   "Site7");
                    exactFind = true;
                  }
                  else {
                    exactFind = false;
                  }
                }
               // System.out.println("They can find: site 8 waypoint " + i +" Tracks:" + j);
              }
              else if ( (wayLat < lastLat) && (wayLat > tracksLat)) { //如果航点比上一个航迹点小,比这一个航迹点大的话.
                if (lastLon != 0.0) {
                  if ( (wayLon > lastLon) && (wayLon < tracksLon)) { //如果航点比上一个航迹点大,比这一个航迹点小的话.
                    myTest.lat.insertElementAt(myTest.waypointLat.get(i) + "",
                                               j);
                    myTest.lon.insertElementAt(myTest.waypointLon.get(i) + "",
                                               j);
                    myTest.name.insertElementAt(myTest.waypointName.get(i) + "",
                                                j);
                    exactFind = true;
                   // System.out.println("Waypoint insert into tracks :" + j +
                   //                    "Site3");
                  }
                  else if ( (wayLon < lastLon) && (wayLon > tracksLon)) {
                    myTest.lat.insertElementAt(myTest.waypointLat.get(i) + "",
                                               j);
                    myTest.lon.insertElementAt(myTest.waypointLon.get(i) + "",
                                               j);
                    myTest.name.insertElementAt(myTest.waypointName.get(i) + "",
                                                j);
                    exactFind = true;
                   // System.out.println("Waypoint insert into tracks :" + j +
                   //                    "Site4");
                  }else if((Math.abs(wayLon-tracksLon))<0.01){
                    myTest.lat.insertElementAt(myTest.waypointLat.get(i) + "",
                                               j);
                    myTest.lon.insertElementAt(myTest.waypointLon.get(i) + "",
                                               j);
                    myTest.name.insertElementAt(myTest.waypointName.get(i) + "",
                                                j);
                    //System.out.println("Waypoint insert into tracks :" + j +
                    //                   "Site5");
                    exactFind = true;
                  }
                  else {
                    exactFind = false;
                  }
                }
                //System.out.println("They can find: site 9 waypoint " + i +" Tracks:" + j);
              }
              else {
                exactFind = false;
              }
            }
            else {
              exactFind = false;
            }
          }
          //System.out.println("上一个航迹点纬度:" + lastLat);
          //System.out.println("上一个航迹点经度:" + lastLon);

          //System.out.println("这一个航点纬度:" + wayLat);
          //System.out.println("这一个航点经度:" + wayLon);
          lastLat =tracksLat;
          lastLon =tracksLon;

          //System.out.println("这一个航迹点纬度:" + lastLat);
          //System.out.println("这一个航迹点经度:" + lastLon);
          /////////////////////在精确的位置插入数据_结束////////////////////////////////////////

          aboutFind = ! (exactFind);
          if (aboutFind) {
            ///////////////如果精确位置找不到的话,那么看看大约位置是否在这里,如果在这里的话,说明是第一个位置
            //(1)取两位小数,比较,如果有近似的.再比较经度

            if ((Math.abs(wayLat-tracksLat))<0.001) {
              //有近似的纬度,那么计算有没有近似的经度
              //tracksLon = Double.parseDouble(myTest.lon.get(j) + "");

              if ((Math.abs(wayLon-tracksLon))<0.001) { //如果经度\纬度都近似的话,把这个航点插入到当前位置.
                myTest.lat.insertElementAt(myTest.waypointLat.get(i) + "", j);
                myTest.lon.insertElementAt(myTest.waypointLon.get(i) + "", j);
                myTest.name.insertElementAt(myTest.waypointName.get(i) + "", j);
                //System.out.println("Waypoint insert into tracks :" + j +
                //                   "Site5====================================");
                aboutFind = true;
                j++;
                break;
              }
              else {
                aboutFind = false;
              }
            }
            else {
              aboutFind = false;
            }
          }

          //////////////////////////////////////////////////////////////////////////////////
          //myTest.lat.addElement(myTest.waypointLat.get(i) + "");
          //myTest.lon.addElement(myTest.waypointLon.get(i) + "");
          //myTest.name.addElement(myTest.waypointName.get(i) + "");
          //System.out.println("Waypoint insert into tracks :" + i + "site 7");
        }
        ////////////////////////////如果都没找到,那么插入到末尾///////////////////////////////
          if (!(exactFind||aboutFind)) {
            myTest.lat.addElement(myTest.waypointLat.get(i) + "");
            myTest.lon.addElement(myTest.waypointLon.get(i) + "");
            myTest.name.addElement(myTest.waypointName.get(i) + "");
            //System.out.println("Waypoint insert into tracks :" + i + "site 6");
            //j++;
            //}
            /////////////////////////////////////////////////////////////////////////////////
          }

      }
    }
  }
}



⌨️ 快捷键说明

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