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

📄 counttongchangroad.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 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 + -