Я использую geotools, но мой тестовый класс не работает. Я просто хочу отобразить одиночную Linestring на Mapcontent, но когда я добавляю свой DefaultFeatureCollection, я просто получаю ошибки.geotools, DefaultFeatureCollection Ошибка при добавлении в MapContent
Вот мой простой код;
public class Test2 extends JFrame {
Test2() throws ParseException {
super();
Dimension d = new Dimension(400, 400);
setMinimumSize(d);
MapContent map = new MapContent();
JMapPane mapPane = new JMapPane(map);
add(mapPane);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setVisible(true);
WKTReader wktReader = new WKTReader();
SimpleFeatureTypeBuilder sfTypeBuilder = new SimpleFeatureTypeBuilder();
sfTypeBuilder.setName("testType");
sfTypeBuilder.setCRS(null);
sfTypeBuilder.add("pointProperty", LineString.class);
SimpleFeatureType featureType = sfTypeBuilder.buildFeatureType();
SimpleFeatureBuilder sfBuilder = new SimpleFeatureBuilder(featureType);
sfBuilder.add(wktReader.read("LINESTRING (20 10, 20 30, 50 30)"));
SimpleFeature feature = sfBuilder.buildFeature("id1");
DefaultFeatureCollection testColletion = new DefaultFeatureCollection(
null, null);
testColletion.add(feature);
System.out.println(testColletion.isEmpty());
StyleBuilder sb = new StyleBuilder();
org.geotools.styling.Style style = sb.createStyle();
Mark mark = sb.createMark(StyleBuilder.MARK_CIRCLE, Color.RED,
Color.BLACK, 1);
PointSymbolizer pointSymb = sb.createPointSymbolizer(sb.createGraphic(
null, mark, null, 1, 15, 0));
FeatureTypeStyle fts = sb
.createFeatureTypeStyle((Symbolizer) pointSymb);
style.featureTypeStyles().add(fts);
org.geotools.styling.Font font = sb
.createFont("Arial", false, true, 12);
TextSymbolizer ts = sb.createTextSymbolizer(Color.BLACK, font, "name");
fts.rules().get(0).symbolizers().add(ts);
// FeatureLayer der Karte hinzufügen
Layer layer1 = new FeatureLayer(testColletion, style);
// Error when i add the Layer to the Map and run the Main //Method)
map.addLayer(layer1);
System.out.println(map.layers());
}
public static void main(String[] args) {
try {
Test2 t = new Test2();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Я не могу отображать содержимое на карте .... Я не знаю, как обращаться с другой коллекцией, как SimpleFeatureCollection, потому что ее интерфейс ... Может быть, мне нужен SimpleFeatureCollection, чтобы добавить мою Linestring на карту ... –
какие ошибки вы получаете? Вы можете получить больше/лучших ответов, когда показываете свои ошибки, вместо того, чтобы ожидать, что все будут запускать ваш код в первую очередь. – cello