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

📄 scaleluduan.java

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

import net.aetherial.gis.output.toLd.cut.CutByNode;
import java.util.Vector;
import org.w3c.dom.Node;
import net.aetherial.gis.cutAndLink.cut.CutToSection;
import net.aetherial.gis.surface.ItemValue;
import net.aetherial.gis.output.toLd.cut.RelateWPTAfterCut;
import net.aetherial.gis.jiaotongbu.input.type.Luduan;
import net.aetherial.gis.cutAndLink.zhuanghao.Zhuanghao;
import net.aetherial.gis.jiaotongbu.input.publicuse.Permanence;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2004</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class ScaleLuduan {
  private Node trk = null;
  private Vector luduans = new Vector();
  private double scale = 1;
  private boolean isShouldScaleCut = true;
//  private double primal = 0;
  public ScaleLuduan() {
  }

  public void setTrack(Node track) {
    this.trk = track;
  }

  public void setLuduans(Vector luduans) {
    this.luduans = luduans;
  }

  public void scanToGetScale(){
    double max = 0,min = Double.MAX_VALUE;
    Luduan luduan = null;
    boolean tempScaleCut = true;
    for (int i = 0; i < luduans.size(); i++) {
      luduan = (Luduan)luduans.get(i);
      max = Math.max(Math.max(max,Double.parseDouble(luduan.getZhidianZhuanghao())),Math.max(max,Double.parseDouble(luduan.getQidianZhuanghao())));
      min = Math.min(Math.min(min,Double.parseDouble(luduan.getZhidianZhuanghao())),Math.min(min,Double.parseDouble(luduan.getQidianZhuanghao())));
      if (false) {
        tempScaleCut = false;
      }
    }
    if (max < min ) {
      Permanence.addLog("[桩号错误]最小桩号比最大桩号大");
      return;
    }

    System.out.println("max:" + max + "min:" + min + ",dis:" + ItemValue.getTracksDistance(this.trk));
    if ((max - min)*1000 > ItemValue.getTracksDistance(this.trk)) {
      /**
       * 如果最大桩号大于航迹里程,按比例缩放路段
       */
      this.scale = ItemValue.getTracksDistance(this.trk) /( (max - min) * 1000);
      if (!tempScaleCut) {
        this.isShouldScaleCut = false;
      }

    }
//    System.out.println("scale:" + scale);
  }

  public void refreshLuduan(){
    Luduan luduan = null;
    double primal = 0;
    for (int i = 0; i < this.luduans.size(); i++) {
      luduan = (Luduan)luduans.get(i);
      if (i == 0) {
        primal = luduan.getQidianScaleZhuanghao() * this.scale;
      }

      luduan.setQidianScaleZhuanghao(luduan.getQidianScaleZhuanghao() * this.scale - primal);
      luduan.setZhidianScaleZhuanghao(luduan.getZhidianScaleZhuanghao() * this.scale - primal);

    }
  }

  /**
   * 将路段从小到大重新排序
   */
  private void paixu(){

  }

  public Vector getNewLuduans(){
    return this.luduans;
  }

  private boolean isShouldScaleCut(){
    return this.isShouldScaleCut;
  }

  public boolean isScaleChenged(){
    if (this.scale == 1) {
      return false;
    }else{
      return true;
    }
  }

  public double getScale() {
    return scale;
  }
}

⌨️ 快捷键说明

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