private void makeLinks() { PolylineFeatureFactory pl = new PolylineFeatureFactory.Builder() .setName("Link") .setCrs(MGC.getCRS("EPSG:32632")) .addAttribute("nr_veh", Integer.class) .addAttribute("flow", Double.class) .addAttribute("angle", Double.class) .create(); Collection<SimpleFeature> features = new ArrayList<SimpleFeature>(); for (LinkInfo li : this.lis) { Link l = li.getLink(); Coordinate[] coords = new Coordinate[] { MGC.coord2Coordinate(l.getFromNode().getCoord()), MGC.coord2Coordinate(l.getToNode().getCoord()) }; SimpleFeature ft = pl.createPolyline( coords, new Object[] {li.getVeh().size(), li.getFlow(), li.getAngle()}, li.getLink().getId().toString()); features.add(ft); } ShapeFileWriter.writeGeometries(features, this.debugDir + "/links.shp"); }
private void makeVeh() { PointFeatureFactory pf = new PointFeatureFactory.Builder() .setName("vehicle") .setCrs(MGC.getCRS("EPSG:32632")) .addAttribute("angle", Double.class) .addAttribute("speed", Double.class) .create(); Collection<SimpleFeature> features = new ArrayList<SimpleFeature>(); int id = 0; for (LinkInfo li : this.lis) { for (SensorDataVehicle veh : li.getVeh()) { SimpleFeature ft = pf.createPoint( new Coordinate(veh.getX(), veh.getY()), new Object[] {veh.getAngle(), veh.getSpeed()}, id++ + ""); features.add(ft); } } ShapeFileWriter.writeGeometries(features, this.debugDir + "/vehicles.shp"); }