📄 scaleluduan.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 + -