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

📄 roadbianma.java

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

import net.aetherial.gis.jiaotongbu.output.publicuse.Item;
import org.w3c.dom.Node;
import net.aetherial.gis.surface.ItemValue;
import net.aetherial.gis.dataType.TrackType;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class RoadBianma {
  private static long bianmaIncrease = 100;

  private static int zhuanyIncrease = 100;
  private static int cunIncrease = 100;
  private static int xiangIncrease = 100;
  private static int xianIncrease = 100;
  private static int shengIncrease = 100;
  private static int guoIncrease = 100;


  public static final String  FLAG_G = "G";
  public static final String  FLAG_S = "S";
  public static final String  FLAG_X = "X";
  public static final String  FLAG_Y = "Y";
  public static final String  FLAG_C = "C";
  public static final String  FLAG_Z = "Z";
  public static final String CODE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

  /**
   * 默认的编码方式
   */
  public static String getRoadDefaultRightNumber(Node trk){
    if (trk == null) {
      return "Z" + getBianmaIncrease() + Item.getSix_6_XianNumber();
    }
    String number = ItemValue.getTracksNumber(trk);
//    String grade = ItemValue.getTracksGrade(trk);
    if (number.length() == 12) {
      return number;
    }else if(number.trim().equals("")){
      return getRoadGradeCode(trk) + getBianmaIncrease() + Item.getSix_6_XianNumber();
    }else if(number.trim().length() == 4){
      return number.trim() + Item.getSix_6_XianNumber();
    }else{
      return number.substring(0,3) + Item.getSix_6_XianNumber();
    }
  }

  /**
   * 需要先把编码完成
   * 然后再取GPS里的数据
   */
  public static String getGPSNumber(Node trk){
    return ItemValue.getTracksNumber(trk);
  }
  public static String getRoadNewRightNUmber(Node trk){
    String flag = getRoadGradeCode(trk);
    return getRoadNewRightNUmber(flag);
  }

  public static String getRoadNewRightNUmber(String flag) {
    if (flag.equals(FLAG_G)) {
      return flag + getIncrease(++guoIncrease) + Item.getSix_6_XianNumber();
    }else if(flag.equals(FLAG_S)){
      return flag + getIncrease(++shengIncrease) + Item.getSix_6_XianNumber();
    }else if(flag.equals(FLAG_X)){
      return flag + getIncrease(++xianIncrease) + Item.getSix_6_XianNumber();
    }else if(flag.equals(FLAG_Y)){
      return flag + getIncrease(++xiangIncrease) + Item.getSix_6_XianNumber();
    }else if(flag.equals(FLAG_C)){
      return flag + getIncrease(++cunIncrease) + Item.getSix_6_XianNumber();
    }else if(flag.equals(FLAG_Z)){
      return flag + getIncrease(++zhuanyIncrease) + Item.getSix_6_XianNumber();
    }
    return "";
  }
public static void main(String [] args){
  char a = 64;
  for(int i = 998; i< 1102 ; i++){
    System.out.println(getIncrease(i));
  }
}

  private static String getIncrease(int number){
    if (number < 1000) {
      return number+"";
    }else{
      int temp = number - 1000;

      long last = temp % 100;

      return ""+CODE.charAt((int)Math.floor((temp-last)/100))+((last < 10) ? ("0"+last):(""+last))+"";
    }
  }


  /**
   * 打印编码
   */
  public static void printBianma(){
    Node[] trks = ItemValue.getTracks();
    String temp = "";
    if (trks != null) {
      for (int i = 0; i < trks.length; i++) {
        temp = ItemValue.getTracksNumber(trks[i]).trim();
        if (!temp.equals("")) {
          if (isBianmaSuitable(temp)) {
            System.out.println("路线:[" + ItemValue.getTracksName(trks[i]) + "],   编码:" + temp);
          }else{
             System.out.println("路线:[" + ItemValue.getTracksName(trks[i]) + "],   编码:" + temp + " 不符合.in " + ItemValue.getTracksT3(trks[i]));
          }

        }

      }

    }
  }

  /**
   * 是否符合
   */
  public static boolean isBianmaSuitable(String gpsNumber){
    gpsNumber = gpsNumber.trim();
    if (gpsNumber.length() >4) {
      gpsNumber = gpsNumber.substring(0,4);
    }else if(gpsNumber.length() < 4){
      return false;
    }
    char[] temp = gpsNumber.toCharArray();
    int intValue = 0;
    for (int i = 0; i < temp.length; i++) {
      intValue = (int)temp[i];
      if (!((intValue >= 48)&&(intValue <= 122))) {
        return false;
      }
    }
    return true;
  }

  public static String getBianmaSuitable(String gpsNumber){
    gpsNumber = gpsNumber.trim();
    return gpsNumber.substring(0,4);
  }

  public static void reset(){
    bianmaIncrease = 100;
    cunIncrease = 100;
    xiangIncrease = 100;
    xianIncrease = 100;
    shengIncrease = 100;
    guoIncrease = 100;
  }

  private static String getBianmaIncrease(){
    bianmaIncrease++;
    if (bianmaIncrease >= 1000) {
      long temp = ((bianmaIncrease - 1000)/100) + 65;
      char ch = (char)temp;
      return fillStringWith0(ch + "" + (bianmaIncrease -1000));
    }else{
      return bianmaIncrease+"";
    }
  }

  private static String fillStringWith0(String str){
    if (str.length() == 4) {
      return str;
    }
    else if (str.length() == 0){
      return "Z001";
    }
    else if (str.length() < 4) {
      char fir = str.charAt(0);
      String temp = str.substring(1,str.length());
      if (temp.length() == 2) {
        return fir + "0" + temp;
      }
      else if (temp.length() == 1) {
        return fir + "00" + temp;
      }
      else {
        return fir + "000" + temp;
      }
    }else {
      return str.substring(0,4);
    }
  }
  /**
   * 得到按等级划分的标志符
   */
  private static String getRoadGradeCode(Node trk){
    String grade = ItemValue.getTracksGrade(trk);
    return getRoadGradeCode(grade);
  }
  public static String getRoadGradeCode(String grade){

    if (grade.equals(TrackType.Grade_GUO)) {
      return "G";
    }else if (grade.equals(TrackType.Grade_SHEN)) {
      return "S";
    }else if (grade.equals(TrackType.Grade_XIAN)) {
      return "X";
    }else if (grade.equals(TrackType.Grade_XIANG)) {
      return "Y";
    }else if (grade.equals(TrackType.Grade_CUN)) {
      return "C";
    }else{
      return "C";//return getGradeIfGradeisEmpty(trk);
    }

  }
  /**
   * 默认的编码方式
   */
  public static String getRoadXiangDaoRightNumber(String number){
    if (number.length() == 12) {
      return number;
    }else if(number.trim().equals("")){
      return "X000000000";
    }else if(number.trim().length() == 4){
      return number.trim() + "000000";
    }else{
      return number.substring(0,3) + "000000";
    }
  }

  /**
   * 根据路线的长度来决定等级
   */
  private static String getGradeIfGradeisEmpty(Node trk){
    double dis = ItemValue.getTracksDistance(trk);
    if (dis <2000) {
      return "C";
    }else if( (2000 <= dis)&&(dis <10000)){
      return "Y";
    }else{
      String name = ItemValue.getTracksName(trk);
      if ((name.toLowerCase()).indexOf("x") != -1) {
        return "X";
      }else if((name.toLowerCase()).indexOf("s") != -1){
        return "S";
      }else if((name.toLowerCase()).indexOf("g") != -1){
        return "G";
      }else{
        return "Y";
      }
    }
  }

}

⌨️ 快捷键说明

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