Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java geotools,添加到MapContent时发生DefaultFeatureCollection错误_Java_Geotools - Fatal编程技术网

Java geotools,添加到MapContent时发生DefaultFeatureCollection错误

Java geotools,添加到MapContent时发生DefaultFeatureCollection错误,java,geotools,Java,Geotools,我正在使用geotools,但我的测试类不起作用。我只想在Mapcontent上显示一个行字符串,但当我添加DefaultFeatureCollection时,只会出现错误 这是我的简单代码 public class Test2 extends JFrame { Test2() throws ParseException { super(); Dimension d = new Dimension(400, 400); setMinimumSize(d); Ma

我正在使用geotools,但我的测试类不起作用。我只想在Mapcontent上显示一个行字符串,但当我添加DefaultFeatureCollection时,只会出现错误

这是我的简单代码

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();
    }
}

}

错误-
在FeatureType中找不到“name”(http://www.opengis.net/gml:testType),可用的属性是:[pointProperty]
实际上是非常自我解释的。在样式中使用的属性不在要素中。因此,要么在点上添加名称,要么注释掉添加文本符号的行:

// TextSymbolizer ts = sb.createTextSymbolizer(Color.BLACK, font, "name");
// fts.rules().get(0).symbolizers().add(ts);

一切都会很好。

我无法在地图上显示任何内容。。。。我不知道如何处理另一个集合,如SimpleFeatureCollection,因为它是一个接口。。。也许我需要一个SimpleFeatureCollection来将我的Linestring添加到地图中……您会遇到什么样的错误?当您显示错误时,您可能会得到更多/更好的答案,而不是一开始就期望每个人都运行您的代码。