Ziel ist es also, den Komponenten des Gesamtsystems Zugriff auf geographische Daten über die Heidelberger Innenstadt und Operationen auf diese zu geben. Dies beinhaltet folgende Punkte:
geometryPoint
norm() gibt die Norm des Vektors.
mult(i) multipliziert den Vektor mit dem Skalar i
Line
length() liefert die Länge.
scaleToLength(i) die Länge wird i.
translate(v) verschiebt die Linie um den Vektor v.
Path
length() liefert Gesamtlänge.
Polygon
Box
Circle
distance(obj1,obj2)
obj1 und obj2.
intersects(obj1,obj2)
obj1 und obj2 schneiden.
angle(line1,line2)
line1 und line2.
angleClockwise(lin1,line2)
line1 im Uhrzeigersinn zu line2 liegt.
between(line,v)
p zwischen den Endpunkten von line liegt. (Er muss nicht auf der line liegen.)
collinear(v1,v2,v3)
contains(obj1,obj2)
obj1 vollständig in obj2 befindet.
containsPartOf(obj1,obj2)
obj1 mindestens teilweise in obj2 befindet.
crossProdukt()
intPoint(line1,line2)
sameSide(v1,v2,line)
skalarMult(i,v)
skalarProdukt(v1,v2)
turns(v1,v2,v3)
geodataresourcegeodataresource
getLines() um sie zu zeichnen.
getObject(key)
getObjectIDs()
getObjects()
getObjectsInArea(polygon)
parseFile() hier kann auch die Herstellung einer SQL-Connection passieren.
geobufferbuffer(obj,abstand)
obj darstellt.
getBoundingBox(obj)
obj enthält.
geovisibilityisVisible(p,obj)
obj vom Punkt p aus sichtbar ist. Funktioniert im Moment nur für Objekte, die aus Linien bestehen.
| Algorithmus: | |||
|---|---|---|---|
| 1. Sei c ein Kreis um p. (Bild: Der Punkt ist p, das grosse Polygon obj, der Kreis c, das kleine Polygon ein Objekt, das die Sicht behindert.) | ![]() |
2. Errechne das kleinste Segment segobj von c, das obj vollständig enthält. | ![]() |
| 3. Für alle Ojekte xn, die in der bounding box um p und obj enthalten sind (ausser obj): Errechne das kleinste Segment segn von c, das xn vollständig enthält. | ![]() |
4. Ziehe von segobj alle segn ab. | ![]() |
| 5. Bleibt ein nichtleeres Segment übrig, dann ist obj von p aus sichtbar, | ![]() | ||
geodataresource ableitet. Dadurch stehen für alle Datenformate (Relationale DBS, objektorientierte DMS, XML, etc.) standartisierte Zugriffsmethoden zur Verfügung, sodass das Datenformat die Abläufe im GIS nicht beeinflusst.