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:
geometry
Point
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)
geodataresource
geodataresource
getLines()
um sie zu zeichnen.
getObject(key)
getObjectIDs()
getObjects()
getObjectsInArea(polygon)
parseFile()
hier kann auch die Herstellung einer SQL-Connection passieren.
geobuffer
buffer(obj,abstand)
obj
darstellt.
getBoundingBox(obj)
obj
enthält.
geovisibility
isVisible(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.