📄 fillxzc.java
字号:
package net.aetherial.gis.our.auto.extend;
import org.w3c.dom.Node;
import net.aetherial.gis.surface.ItemValue;
import net.aetherial.gis.table.WuWei;
import net.aetherial.gis.dataType.WptType;
import net.aetherial.gis.our.auto.Auto;
import net.aetherial.gis.our.FrameOur;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* <p>Company: </p>
*
* @author 王爱国
* @version 1.0
*/
public class FillXZC extends Auto{
private String directory = "";
private WuWei ww = new WuWei();
public FillXZC(FrameOur fo) {
this.setFrameOur(fo);
}
public void setAllFile(){
this.msg("数组与乡镇文件匹配率:" + this.ww.isXiangZhenSimulate(this.input));
if (super.input == null) {
System.out.println("super.input == null");
return;
}
for (int i = 0; i < this.input.length; i++) {
this.open(this.input[i]);
this.print(this.input[i].getName() +
"********************************************************");
int[] xiabiao = this.getXiangZhenXiabiao(this.input[i].getName());
this.setAFile(xiabiao);
this.saveMemory(this.directory + this.input[i].getName());
this.setMemoryReset();
}
this.msg("文件匹配行政村航点完毕!\r\n生成的文件在:" + this.directory + "下.");
}
private void setAFile(int[] xibiao){
Node[] wpts = ItemValue.getWaypoint();
if (wpts == null) {
return;
}else{
for (int i = 0; i < wpts.length; i++) {
if ((this.isXZC(wpts[i]))&&(this.isWptName_CUNWEIHUI(wpts[i]))) {
//填充行政村
if (!(this.setToXZC(wpts[i],xibiao))) {
this.setToXZC(wpts[i]);
}
}
}
}
}
/**
* 填充行政村
*/
private void setToXZC(Node wpt){
String[] array = null;
if (!(isXZCNull(wpt))) {
return;
}
if (this.ww.wuwei_cun != null) {
for (int i = 0; i < ww.wuwei_cun.length; i++) {
if ((ItemValue.getWaypointName(wpt)).indexOf(ww.wuwei_cun[i]) != -1) {
array = new String[11];
array[0] = ww.wuchen_xiangzhen[i];
array[1] = ww.wuwei_cun[i];
array[2] = ww.wmianji[i];
array[3] = ww.wzirancun[i];
array[4] = ww.wdixing[i];
array[5] = ww.wtiaojian[i];
array[6] = ww.wdukou[i];
array[7] = ww.wuwei_renkou[i];
array[8] = ww.wuwei_shouru[i];
array[9] = ww.wuwei_jinji[i];
array[10] = ww.wbeizhu[i];
ItemValue.setWaypointXZC(wpt,array);
}
}
}
}
/**
* 填充行政村,在该乡镇里寻找行政村
*/
private boolean setToXZC(Node wpt,int[] xiabiao){
String[] array = null;
if (!(isXZCNull(wpt))) {
return false;
}
if (this.ww.wuwei_cun != null) {
if (xiabiao == null) {
return false;
}
for (int i = xiabiao[0]; i <= xiabiao[1]; i++) {
if ((ItemValue.getWaypointName(wpt)).indexOf(ww.wuwei_cun[i]) != -1) {
array = new String[11];
array[0] = ww.wuchen_xiangzhen[i];
array[1] = ww.wuwei_cun[i];
array[2] = ww.wmianji[i];
array[3] = ww.wzirancun[i];
array[4] = ww.wdixing[i];
array[5] = ww.wtiaojian[i];
array[6] = ww.wdukou[i];
array[7] = ww.wuwei_renkou[i];
array[8] = ww.wuwei_shouru[i];
array[9] = ww.wuwei_jinji[i];
array[10] = ww.wbeizhu[i];
ItemValue.setWaypointXZC(wpt,array);
System.out.println("通过匹配乡镇方式完成填充!");
return true;
}
}
}
return false;
}
/**
* 得到与该文件名称匹配的乡镇数组下标
*/
private int[] getXiangZhenXiabiao(String fileName){
int[] xiabiao = null;
boolean find = false;
if (ww.wuchen_xiangzhen == null) {
return null;
}
else {
for (int i = 0; i < ww.wuchen_xiangzhen.length; i++) {
if (getRidOfSuffix(fileName).indexOf(getRidOfSuffix(ww.wuchen_xiangzhen[i])) != -1) {
if (!find) {
xiabiao = new int[2];
xiabiao[0] = i;
find = true;
}
}else{
if (xiabiao != null) {
xiabiao[1] = i -1;
System.out.println(fileName + "匹配到乡镇数组:(" + xiabiao[0]+ "-" + xiabiao[1] +")");
return xiabiao;
}
}
}
if ((xiabiao != null)&&(xiabiao[1] == 0)) {
xiabiao[1] = ww.wuchen_xiangzhen.length-1;
System.out.println(fileName + "匹配到乡镇数组:(" + xiabiao[0]+ "-" + xiabiao[1] +")");
return xiabiao;
}
}
return null;
}
/**
* 去除乡镇的“镇、乡、办事处”字眼
*/
private String getRidOfSuffix(String xiangzhen){
return xiangzhen.replaceAll("镇","").replaceAll("乡","").replaceAll("办事处","");
}
/**
* 判断已录入的行政村是否为空
*/
private boolean isXZCNull(Node wpt){
String[] array = ItemValue.getWaypointXZC(wpt);
if (array == null) {
return true;
}else{
if ((array[1] == null)||(array[1].equals("null"))) {
return true;
}
}
return false;
}
/**
* 判断航点是否属于比较范围
* wptName 航点名称
* arrayName 数组名称
*/
private boolean isWptName_CUNWEIHUI(Node wpt){
String wptName = ItemValue.getWaypointName(wpt);
int jToken = wptName.indexOf("居委会");
if (jToken != -1) {
return true;
}
int cToken = wptName.indexOf("村委会");
if (cToken == -1) {
return false;
}else{
return true;
}
}
/**
* 判断航点是否为行政村
*/
private boolean isXZC(Node wpt){
String kp = ItemValue.getWaypointKP(wpt);
if (kp.equals(WptType.W1XingZhengCun)) {
return true;
}
else {
return false;
}
}
public void setSavedDirectory(String path){
this.directory = path;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -