JAVA Topology Suite - LineStrings trennen

babuschka

Top Contributor
wie kann man LineStrings so zerlegen, dass an jedem Schnittpunkt und Knickpunkt die LineStrings aufgetrennt werden?
d.h. es gibt nur noch LineStrings mit zwei Punkten.
 
Zuletzt bearbeitet von einem Moderator:
ist LineStrings ein Fachbegriff dieser Welt, den jeder oder zumindest eine nicht mikroskopische Zielgruppe kennen müsste?
Links und Beispiele sind nicht verboten,

vorerst fraglich ob das ein Java-Basics-Thema ist, verschoben
 
wenn ich ein beispiel hätte könnte ichs ja.... und ich frage gerade hier nach weil ich nichts sonst wo finde...

Java:
 static void zerlegen()
	{
		Iterator<Geometry> it = lines.iterator();
	    Geometry nodedLineStrings = (LineString) it.next();
	    
	    while (it.hasNext())
	    {
	    	nodedLineStrings = nodedLineStrings.union((LineString) it.next());
	    }
//	    System.out.println(nodedLineStrings);
	    // Ergebnis ist GeometryCollection, wird jetzt zerlegt
	    GeometryCollection col = (GeometryCollection) nodedLineStrings;
	    
	    for (int i = 0; i < col.getNumGeometries(); i++)
	    {
	    	Geometry g = col.getGeometryN(i);
//	        System.out.println(g);
	    	// Achtung: Zerlegung erfolgt nur an den Schnittpunkten
	    	
	    	// für Knickpunkte müsste der LineString weiter untersucht werden
LineString ls = (LineString) col.getGeometryN(i);
	    	ls.getNumPoints();
	    	if (ls.getNumPoints()>2)
	    	{
	    		ls.getCoordinateSequence();
	    		
	    		String line = reader.readLine();
	    		for (line = reader.readLine(); line != null; line = reader.readLine()) 
	    		{
	                if (line.trim().length() > 0) 
	                { 
	                	// skip blank lines
	                }
	            }
	    		String tokens[] = line.split("\\,");
	    		double x = Double.parseDouble(tokens[0]);
                double y = Double.parseDouble(tokens[1]);
                String name = tokens[2].trim();
                int number = Integer.parseInt(tokens[3].trim());
	            Line line1 = GeometryFactory.createLineString(new Coordinate(x,y);
	    		System.out.println(ls.getCoordinateSequence());
	                
	    	}
            }
       }

ab dem punkt "// für Knickpunkte müsste der LineString weiter untersucht werden" ist es Falsch also bitte nichts als beispiel nehmen, das sind nur versuche. da weiß ich nicht wie es geht.
 
JAVA Topology Suite (JTS) ist eine Klassenbibliothek für topologische Operationen mit Geometriedaten, hätte ich vllt am anfang sagen sollen. -.-
 

Zurück
Oben