📄 counttongchangroad.java
字号:
package net.aetherial.gis.baobu.TotalExcel;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class CountTongChangRoad {
String[][] cityNamepairs = new String[][] { { "3401", "合肥市" },
{ "340101", "市辖区" }, { "340102", "瑶海区" }, { "340103", "庐阳区" },
{ "340104", "蜀山区" }, { "340111", "包河区" }, { "340121", "长丰县" },
{ "340122", "肥东县" }, { "340123", "肥西县" }, { "3402", "芜湖市" },
{ "340201", "市辖区" }, { "340202", "镜湖区" }, { "340203", "马塘区" },
{ "340204", "新芜区" }, { "340207", "鸠江区" }, { "340221", "芜湖县" },
{ "340222", "繁昌县" }, { "340208", "三山区" }, { "340223", "南陵县" },
{ "3403", "蚌埠市" }, { "340301", "市辖区" }, { "340302", "龙子湖区" },
{ "340303", "蚌山区" }, { "340304", "禹会区" }, { "340311", "淮上区" },
{ "340321", "怀远县" }, { "340322", "五河县" }, { "340323", "固镇县" },
{ "3404", "淮南市" }, { "340401", "市辖区" }, { "340402", "大通区" },
{ "340403", "田家庵区" }, { "340404", "谢家集区" }, { "340405", "八公山区" },
{ "340406", "潘集区" }, { "340421", "凤台县" }, { "3405", "马鞍山市" },
{ "340501", "市辖区" }, { "340502", "金家庄区" }, { "340503", "花山区" },
{ "340504", "雨山区" }, { "340521", "当涂县" }, { "3406", "淮北市" },
{ "340601", "市辖区" }, { "340602", "杜集区" }, { "340603", "相山区" },
{ "340604", "烈山区" }, { "340621", "濉溪县" }, { "3407", "铜陵市" },
{ "340701", "市辖区" }, { "340702", "铜官山区" }, { "340703", "狮子山区" },
{ "340711", "郊区" }, { "340721", "铜陵县" }, { "3408", "安庆市" },
{ "340801", "市辖区" }, { "340802", "迎江区" }, { "340803", "大观区" },
{ "340811", "宜秀区" }, { "340822", "怀宁县" }, { "340823", "枞阳县" },
{ "340824", "潜山县" }, { "340825", "太湖县" }, { "340826", "宿松县" },
{ "340827", "望江县" }, { "340828", "岳西县" }, { "340881", "桐城市" },
{ "3410", "黄山市" }, { "341001", "市辖区" }, { "341002", "屯溪区" },
{ "341003", "黄山区" }, { "341004", "徽州区" }, { "341021", "歙县" },
{ "341022", "休宁县" }, { "341023", "黟县" }, { "341024", "祁门县" },
{ "3411", "滁州市" }, { "341101", "市辖区" }, { "341102", "琅琊区" },
{ "341103", "南谯区" }, { "341122", "来安县" }, { "341124", "全椒县" },
{ "341125", "定远县" }, { "341126", "凤阳县" }, { "341181", "天长市" },
{ "341182", "明光市" }, { "3412", "阜阳市" }, { "341201", "市辖区" },
{ "341202", "颍州区" }, { "341203", "颍东区" }, { "341204", "颍泉区" },
{ "341221", "临泉县" }, { "341222", "太和县" }, { "341225", "阜南县" },
{ "341226", "颍上县" }, { "341282", "界首市" }, { "3413", "宿州市" },
{ "341301", "市辖区" }, { "341302", "墉桥区" }, { "341321", "砀山县" },
{ "341322", "萧县" }, { "341323", "灵璧县" }, { "341324", "泗县" },
{ "3414", "巢湖市" }, { "341401", "市辖区" }, { "341402", "居巢区" },
{ "341421", "庐江县" }, { "341422", "无为县" }, { "341423", "含山县" },
{ "341424", "和县" }, { "3415", "六安市" }, { "341501", "市辖区" },
{ "341502", "金安区" }, { "341503", "裕安区" }, { "341521", "寿县" },
{ "341522", "霍邱县" }, { "341523", "舒城县" }, { "341524", "金寨县" },
{ "341525", "霍山县" }, { "3416", "亳州市" }, { "341601", "市辖区" },
{ "341602", "谯城区" }, { "341621", "涡阳县" }, { "341622", "蒙城县" },
{ "341623", "利辛县" }, { "3417", "池州市" }, { "341701", "市辖区" },
{ "341702", "贵池区" }, { "341721", "东至县" }, { "341722", "石台县" },
{ "341723", "青阳县" }, { "3418", "宣城市" }, { "341801", "市辖区" },
{ "341802", "宣州区" }, { "341821", "郎溪县" }, { "341822", "广德县" },
{ "341823", "泾县" }, { "341824", "绩溪县" }, { "341825", "旌德县" },
{ "341881", "宁国市" } };
Map codeNamePairs = new HashMap();
Map result = new HashMap();
/**
* @param args
*/
public static void main(String[] args) {
Map road = null;
Map xz = null;
Map xzc = null;
Map xzResult = null;
Map xzcResult = null;
CountTongChangRoad ctc = new CountTongChangRoad();
for (int i = 0; i < ctc.cityNamepairs.length; i++) {
ctc.codeNamePairs.put(ctc.cityNamepairs[i][0],
ctc.cityNamepairs[i][1]);
}
road = ctc.readFile("E:\\robet\\temp\\JTBJLD_06.Txt");
xz = ctc.XiangZhenTD("E:\\robet\\temp\\JTBJLD_03.Txt");
xzResult = ctc.Match(road, xz, 0);
xzc = ctc.XiangZhenTD("E:\\robet\\temp\\JTBJLD_04.Txt");
xzcResult = ctc.Match(road, xzc, 1);
ctc.write();
}
/*
* 乡镇不通达路线列表
* 市名/县区名/乡镇名称/低范围
*/
private void writeNoTDList(){
}
private void write() {
String filename = "E:\\test.txt";
try {
PrintWriter pt = new PrintWriter(new BufferedWriter(new FileWriter(
new File(filename))));
Iterator it = result.keySet().iterator();
System.out.println("Writing...");
// String title = "市名"+ " " +"县区名"+ " "+"乡镇个数"+ " "+"通达个数"+ " ";
while (it.hasNext()) {
String XZBM = (String) it.next();
// int td = ((Integer)result.get(XZBM)).intValue();
int[][] total = (int[][]) result.get(XZBM);
int xzcount = total[0][0] + total[0][1] + total[0][2];
int xzctotal = total[1][0] + total[1][1] + total[1][2];
String re = xzcount + "\t" + (total[0][1] + total[0][2])
+ "\t\t" + total[0][2] + "\t\t" + xzctotal + "\t"
+ (total[1][1] + total[1][2]) + "\t\t" + total[1][2]
+ "\t";
String XBM = XZBM.substring(0, 6);
String SBM = XZBM.substring(0, 4);
re = SBM + "\t" + this.codeNamePairs.get(SBM) + "\t"
+ XBM + "\t" + this.codeNamePairs.get(XBM) + "\t" + re;
System.out.println(re);
pt.println(re);
}
pt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private Map Match(Map road, Map xz, int index) {
Iterator it = xz.keySet().iterator();
Map tds = new HashMap();
System.out.println("Matching...");
while (it.hasNext()) {
String key = (String) it.next();
String countyCode = key.substring(0, 6);
if (result.get(countyCode) == null) {
result.put(countyCode,new int[][] { { 0, 0, 0 }, { 0, 0, 0 } });
}
int[][] total = (int[][]) result.get(countyCode);
int td = 0;
List roads = (List) xz.get(key);
for (int i = 0; i < roads.size(); i++) {
int temp = 0;
try {
temp = ((Integer) road.get(roads.get(i))).intValue();
} catch (RuntimeException e) {
// TODO Auto-generated catch block
// temp = 0;
// e.printStackTrace();
temp = 2;
}
if (temp > td)
td = temp;
}
total[index][td]++;
// tds.put(key,new Integer(td));System.out.println(key);
}
return tds;
}
private Map XiangZhenTD(String filename) {
String XZBM = "";
String XZ = "";
String LXBM = "";
String split = "\t";
Map xz = new HashMap();
try {
BufferedReader br = new BufferedReader(new FileReader(new File(
filename)));
// 5=XZBM
// 7=TDLXBM
// XZBM = br.readLine();
// String[] fields = XZBM.split(split);
// for(int i = 0; i < fields.length; i++)
// System.out.println(i+"="+fields[i]);
XZ = br.readLine();
while ((XZ = br.readLine()) != null) {
String[] fields = XZ.split(split);
XZBM = fields[5];
LXBM = fields[7];
if (xz.get(XZBM) == null)
xz.put(XZBM, new ArrayList());
((ArrayList) xz.get(XZBM)).add(LXBM);
// System.out.println(XZBM + " => " + LXBM);
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return xz;
}
private Map readFile(String filename) {
// List roads = new ArrayList();
File file = new File(filename);
String split = "\t";
String[] fields = null;
double roadMWidth = 0.0;
double roadJWidth = 0.0;
boolean isYouorShui = false;
// 不达标通达0;达标通达1;通畅2;
int tdType = 2;
int tdTempType = 0;
Map roadMap = new HashMap();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String road = br.readLine();//Ignore title line
road = br.readLine();
while (road != null) {
roadMWidth = 0.0;
roadJWidth = 0.0;
isYouorShui = false;
tdTempType = 0;
// System.out.println(road);
fields = road.split(split);
// 5=LXBM
// 12=LDJSDJ
// 13=LDLMLX
// 23=LMKD
// 37=LJKD
// for(int i = 0; i < fields.length; i++){
// System.out.println(i+"="+fields[i]);
if (fields[13].trim().equalsIgnoreCase("1")
|| fields[13].trim().equalsIgnoreCase("2")
|| fields[13].trim().equalsIgnoreCase("3"))
isYouorShui = true;
roadMWidth = Double.parseDouble(fields[23].trim());
roadJWidth = Double.parseDouble(fields[37].trim());
if (roadMWidth > 3.4 || roadJWidth > 4.4)
tdTempType = 1;
if (tdTempType == 1 && isYouorShui)
tdTempType = 2;
String RoadID = fields[5];
if (roadMap.get((String) RoadID) == null) {
roadMap.put(RoadID, new Integer(2));
}
tdType = ((Integer) roadMap.get((String) RoadID)).intValue();
if (tdType > tdTempType)
tdType = tdTempType;
roadMap.put(RoadID, new Integer(tdType));
// }
road = br.readLine();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return roadMap;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -