<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Layer-Struktur</title><link>https://sourceforge.net/p/manuela/wiki/Layer-Struktur/</link><description>Recent changes to Layer-Struktur</description><atom:link href="https://sourceforge.net/p/manuela/wiki/Layer-Struktur/feed" rel="self"/><language>en</language><lastBuildDate>Mon, 12 Jun 2017 09:53:56 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/manuela/wiki/Layer-Struktur/feed" rel="self" type="application/rss+xml"/><item><title>Layer-Struktur modified by Gismo</title><link>https://sourceforge.net/p/manuela/wiki/Layer-Struktur/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -103,8 +103,8 @@
 BasicFeature basicFeature = (BasicFeature) featureCollection.get(0);
 Object[] objects = basicFeature.getAttributes();
 for(int i = 0; i &amp;lt; objects.length; i++) {
-if(objects[i] != null) {
-     System.out.println(objects[i].getClass());
+if(objects\[i\] != null) {
+     System.out.println(objects\[i\].getClass());
 } else {
      System.out.println("null");
 }
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gismo</dc:creator><pubDate>Mon, 12 Jun 2017 09:53:56 -0000</pubDate><guid>https://sourceforge.net5c492e7cb2e00afd0ce53f2d9b53718bb0819905</guid></item><item><title>Layer-Struktur modified by Gismo</title><link>https://sourceforge.net/p/manuela/wiki/Layer-Struktur/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -78,3 +78,56 @@
 Der Attribut-Typ wird durch das Enum AttributeType dargestellt, das folgende Möglichkeiten bietet:

 ![](https://sourceforge.net/p/manuela/wiki/Layer-Struktur/attachment/attribut_typ.png)
+
+##Ebene 3b: FeatureCollection (von Nutzflächen)##
+Wir holen uns zuerst die Features vom Layer:
+
+Java |
+---------- | 
+List featureCollection = featureCollectionWrapper.getFeatures();
+
+
+Features enthält eine Liste des Typs Object. Natürlich kann diese Liste tatsächlich Objekte enthalten oder auch andere Features, doch im Fall von „Nutzflächen“ enthält die Liste Objekte des Typs ‚BasicFeature‘, was wir hier ermitteln:
+
+Java |
+---------- | 
+System.out.println(featureCollection.get(0).getClass());
+
+
+Liefert auf der Konsole: class com.vividsolutions.jump.feature.BasicFeature
+
+Momentan wird in allen Manuela-Layern das BasicFeature genutzt. Deshalb casten wir das Objekt zum BasicFeature. Ein BasicFeature enthält vor allem eine Liste von Attributen, deren Klassen wir uns genauer ansehen:
+
+Java |
+---------- | 
+BasicFeature basicFeature = (BasicFeature) featureCollection.get(0);
+Object[] objects = basicFeature.getAttributes();
+for(int i = 0; i &amp;lt; objects.length; i++) {
+if(objects[i] != null) {
+     System.out.println(objects[i].getClass());
+} else {
+     System.out.println("null");
+}
+} 
+
+Als Ergebnis erhalten wir auf der Konsole eine Aufzählung von Objekttypen, die mit dem FeatureSchema übereinstimmt, falls der Wert nicht null ist:
+
+Java |
+---------- | 
+class com.vividsolutions.jts.geom.Polygon
+class java.lang.Integer
+null
+class java.lang.String
+class java.lang.Integer
+(…)
+
+Die besondere Bedeutung von ‚geom‘ wird auch dadurch deutlich, dass auf die Geometrie auch direkt zugegriffen werden kann alternativ zum Zugriff über die Attribute:
+
+Java |
+---------- | 
+BasicFeature basicFeature = (BasicFeature) featureCollection.get(0);
+System.out.println(basicFeature.getGeometry());
+
+##Übersicht##
+
+![](https://sourceforge.net/p/manuela/wiki/Layer-Struktur/attachment/layer_schema.png)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gismo</dc:creator><pubDate>Mon, 12 Jun 2017 09:53:15 -0000</pubDate><guid>https://sourceforge.netecb754aee5d09538b2e5f6e57d2ac2163cf61a0c</guid></item><item><title>Layer-Struktur modified by Gismo</title><link>https://sourceforge.net/p/manuela/wiki/Layer-Struktur/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -50,3 +50,31 @@
 System.out.println("");

 Die Ausgabe auf der Konsole der Attributnahmen stimmt mit weniger Ausnahmen mit den Daten aus der ‚Objektinfo‘ überein:
+
+![](https://sourceforge.net/p/manuela/wiki/Layer-Struktur/attachment/Layer_02.png)
+
+Eine Ausnahme bildet dabei ‚geom‘, das die Polygon-Daten für die Fläche enthält. Das führt zu einem weiteren wichtigen Punkt, denn in der Liste von FeatureSchema, die die Attribute enthält ist nicht nur der Name des Attributs gespeichert, sondern auch der Typ (vergleichbar mit Java-Objekttyp) des Attributs:
+
+Java |
+---------- | 
+FeatureSchema featureSchema = featureCollectionWrapper.getFeatureSchema();
+int attributeCount = featureSchema.getAttributeCount();
+for(int i = 0; i &amp;lt; attributeCount; i++) {
+System.out.println(i +" Name: " + featureSchema.getAttributeName(i) 
++ ", Type: " + featureSchema.getAttributeType(i));
+}
+
+Auf der Konsole sehen wir, dass in unseren Nutzflächen hauptsächlich die Attributs-Typen String und Integer verwendet werden, aber auch Geometry für ‚geom‘:
+
+Konsole |
+---------- | 
+0 Name: geom, Type: GEOMETRY
+1 Name: f_id, Type: INTEGER
+2 Name: official_id, Type: INTEGER
+3 Name: name, Type: STRING
+4 Name: creation, Type: INTEGER
+(…)
+
+Der Attribut-Typ wird durch das Enum AttributeType dargestellt, das folgende Möglichkeiten bietet:
+
+![](https://sourceforge.net/p/manuela/wiki/Layer-Struktur/attachment/attribut_typ.png)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gismo</dc:creator><pubDate>Mon, 12 Jun 2017 09:50:16 -0000</pubDate><guid>https://sourceforge.netdc224387432db94aedbe8b0cf245cd911f0e85ae</guid></item><item><title>Layer-Struktur modified by Gismo</title><link>https://sourceforge.net/p/manuela/wiki/Layer-Struktur/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -13,3 +13,40 @@
 Wir führen unseren ersten Test durch und lassen uns je die Listen Categories und Layer anzeigen, die dem LayerManager zugeordnet sind:

 ![](https://sourceforge.net/p/manuela/wiki/Layer-Struktur/attachment/Layer_01.png)
+
+##Ebene 2a: Die Kategorien##
+Den Categories sind Layer zugeordnet. Eine Liste dieser Layer kann unter Angabe des Kategorie-Namens ausgegeben werden, z.B.:
+
+Java |
+---------- | 
+Category category = context.getLayerManager().getCategory("2013");
+System.out.println(category.getLayerables().toString());
+
+Das Hinzufügen oder Entfernen von Weiteren Kategorien bzw. Layern übernimmt OpenJump automatisch. Dehalb muss Categories im Normalfall nicht bearbeitet werden.
+
+##Ebene 2b: Der Layer (Nutzflächen)##
+Da wir nun den Namen eines Layers kennen, können wir ihn uns vom Layer-Manager holen:
+
+Java |
+---------- | 
+Layer layer = context.getLayerManager().getLayer("Nutzflächen");
+
+Der wichtigste Inhalt des Layers ist der FeatureCollectionWrapper, der das FeatureSchema und die Features selbst enthält:
+
+Java |
+---------- | 
+FeatureCollectionWrapper featureCollectionWrapper = layer.getFeatureCollectionWrapper(); 
+
+##Ebene 3a: Das FeatureSchema (von Nutzflächen)##
+Das FeatureSchema enthält die Namen bzw. Überschriften der Daten aus der Liste der Features:
+
+Java |
+---------- | 
+FeatureSchema featureSchema = featureCollectionWrapper.getFeatureSchema();
+int attributeCount = featureSchema.getAttributeCount();
+for(int i = 0; i &amp;lt; attributeCount; i++) {
+   System.out.print(featureSchema.getAttributeName(i) + " ");
+}
+System.out.println("");
+
+Die Ausgabe auf der Konsole der Attributnahmen stimmt mit weniger Ausnahmen mit den Daten aus der ‚Objektinfo‘ überein:
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gismo</dc:creator><pubDate>Mon, 12 Jun 2017 09:45:14 -0000</pubDate><guid>https://sourceforge.net8ffc5664ed919137951b7ba566c5abacfe181656</guid></item><item><title>Layer-Struktur modified by Gismo</title><link>https://sourceforge.net/p/manuela/wiki/Layer-Struktur/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -12,3 +12,4 @@
 ##Ebene 1: Der Layer-Manager (nach dem Anmelden)##
 Wir führen unseren ersten Test durch und lassen uns je die Listen Categories und Layer anzeigen, die dem LayerManager zugeordnet sind:

+![](https://sourceforge.net/p/manuela/wiki/Layer-Struktur/attachment/Layer_01.png)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gismo</dc:creator><pubDate>Mon, 12 Jun 2017 09:42:54 -0000</pubDate><guid>https://sourceforge.net052dbd7b7763939f9e2cf90cced424f3a810cb06</guid></item><item><title>Layer-Struktur modified by Gismo</title><link>https://sourceforge.net/p/manuela/wiki/Layer-Struktur/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="layer-struktur"&gt;Layer-Struktur&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Voraussetzungen&lt;/strong&gt;&lt;br/&gt;
In diesem Kapitel arbeiten wir in einer Implementation von ‚StandardManuelaUIPlugin‘, dessen ‚execute‘-Methode den beispielhaften Code enthält. Das Initialisieren und Aufrufen geschieht aus einem anderen (hier CursorTool-)Plugin heraus als Teil einer Debug-Methode, die mit einem entsprechenden Button verknüpft ist (inkl. try-catch-Bock):&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Java&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GeometryTestPlugin testGeometry = new GeometryTestPlugin();&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;testGeometry.execute(this.getSwingToFxView().getContext());&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Dabei ist die Übergabe des OpenJump-‚PluginContext‘ wichtig.&lt;/p&gt;
&lt;h2 id="ebene-1-der-layer-manager-nach-dem-anmelden"&gt;Ebene 1: Der Layer-Manager (nach dem Anmelden)&lt;/h2&gt;
&lt;p&gt;Wir führen unseren ersten Test durch und lassen uns je die Listen Categories und Layer anzeigen, die dem LayerManager zugeordnet sind:&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gismo</dc:creator><pubDate>Mon, 12 Jun 2017 09:41:01 -0000</pubDate><guid>https://sourceforge.net2bc47e87a31c7fd75e554ca150acb3d4be08d582</guid></item></channel></rss>