private static void generateKML(boolean isHighway) { System.out.println("generate link kml..."); try { FileWriter fstream = new FileWriter(root + "/" + (isHighway ? highwayKmlFile : arterialKmlFile)); BufferedWriter out = new BufferedWriter(fstream); out.write("<kml><Document>"); ArrayList<LinkInfo> linkList = isHighway ? highwayLinkList : arterialLinkList; for (int i = 0; i < linkList.size(); i++) { LinkInfo link = linkList.get(i); int linkId = link.getLinkId(); int funcClass = link.getFuncClass(); String streetName = link.getStreetName(); if (streetName.contains("&")) streetName = streetName.replaceAll("&", " and "); ArrayList<PairInfo> nodeList = link.getNodeList(); String kmlStr = "<Placemark><name>Link:" + linkId + "</name>"; kmlStr += "<description>"; kmlStr += "Class:" + funcClass + "\r\n"; kmlStr += "Name:" + streetName + "\r\n"; kmlStr += "</description>"; kmlStr += "<LineString><tessellate>1</tessellate><coordinates>"; for (int j = 0; j < nodeList.size(); j++) { PairInfo node = nodeList.get(j); kmlStr += node.getLongi() + "," + node.getLati() + ",0 "; } kmlStr += "</coordinates></LineString></Placemark>\n"; out.write(kmlStr); } out.write("</Document></kml>"); out.close(); } catch (Exception e) { e.printStackTrace(); } System.out.println("generate link kml finish!"); }