/** * Prints a VPF Coverage * * @param prefix this will be the prefix of the generated layer name * @param covname the name of the coverage to print * @param cat the CoverageAttributeTable to get the Coverage from */ public static String printCoverageProperties( String prefix, CoverageAttributeTable cat, String covname) { String layername = prefix + "_" + covname; List text_features = new ArrayList(); List edge_features = new ArrayList(); List area_features = new ArrayList(); List point_features = new ArrayList(); // add topology level CoverageTable ct = cat.getCoverageTable(covname); String path = ct.getDataPath(); String fcaPath = path + "/fca"; File fca = new File(fcaPath); if (!fca.exists()) { fcaPath = path + "/fca."; fca = new File(fcaPath); } if (!fca.canRead()) { println(""); return null; } try { DcwRecordFile fcadesc = new DcwRecordFile(fcaPath); int fclass = fcadesc.whatColumn("fclass"); int type = fcadesc.whatColumn("type"); // int descr = fcadesc.whatColumn("descr"); List v = new ArrayList(); while (fcadesc.parseRow(v)) { String name = (String) v.get(fclass); String t = (String) v.get(type); // String desc = (String) v.get(descr); // String tstring = "[unknown] "; if (t.equals("T")) { text_features.add(name); } else if (t.equals("L")) { edge_features.add(name); } else if (t.equals("A")) { area_features.add(name); } else if (t.equals("P")) { point_features.add(name); } } } catch (FormatException fe) { // nevermind, skip it } // only print something, if we really found features if (!(text_features.isEmpty() && edge_features.isEmpty() && area_features.isEmpty() && point_features.isEmpty())) { println("### VPF " + cat.getCoverageDescription(covname) + " Layer"); println(layername + ".class=com.bbn.openmap.layer.vpf.VPFLayer"); println( layername + ".prettyName=" + "VPF " + cat.getCoverageDescription(covname) + " " + prefix); println(layername + ".vpfPath=" + rootpath); println(layername + ".coverageType=" + covname); println(layername + ".featureTypes=" + "area edge text point"); printFeatures("text", text_features, layername); printFeatures("edge", edge_features, layername); printFeatures("area", area_features, layername); printFeatures("point", point_features, layername); println(""); } else { return null; } return layername; }