Letzte Woche haben wir gezeigt wie einfach statische und dynamische Bilder in Topobase Berichte eingebunden werden können.
In diesem Post werden Karten aus WMS Diensten in Autodesk Topobase Berichte eingebunden. Wie bei Bildern, so kann auch dies mit einer statischen oder einer dynamischen WMS Karte realisiert werden. Letztere Variante ist sehr interessant, da der WMS Kartenausschnitt immer um das im Bericht gezeigte Topobase Geomeetrieobjekt geladen wird.
Report mit einen statischen WMS Kartenausschnitt erstellen:
Im Topobase Report Designer wird ein Bild-Platzhalter eingefügt.
Statt einem Bildpfad wird einfach der URL des WMS eingetragen. Dabei spielt es keine Rolle ob der WMS von einem externen Server kommt oder von einem lokalen MapGuide Server.
Von einem lokalen MapGuide Server kann der URL so aussehen:
http://localhost/mapguide2010/mapagent/mapagent.fcgi?REQUEST=GETMAP&SERVICE=WMS&VERSION=1.1.1&FORMAT=image/jpeg&
Layers=Brigl_Test_Forms/Layers/Forms/FLAECHENWMS&SRS=EPSG:31468&
BBOX=5000198,5280505,5487041,5613911&Width=500&Height=500
Entscheidend für den Bildausschnitt sind ist dabei die Bounding box BBOX=5000198,5280505,5487041,5613911
und die Größe des Ausschnitts &Width=500&Height=500
Zum Publizieren eines WMS mit MapGuide findet sich eine gute Anleitung hier auf dem Blog und auf dem Blog unseres französischen Kollegen Gwenael Bachelot: "Geospatial made in France"
Tipp: auf dem Blog finden Sie ein Google Übersetzungs-Tool ;-)
Report mit einen dynamischen WMS Kartenausschnitt:
Im Topobase Report Designer wird eine Funktion angelegt. In dieser Funktion wird die Bounding Box, also der spätere Bildausschnitt, dynamisch auf das im Report angesteuerte Geometrieobjekt erzeugt. Statt fester Koordinaten stehen in der Funktion Variablen wie " & xmin & " oder " & ymin & ".
Der Funktionsname wird in der letzten Zeile der Funktion mit „meine_WMS_Funktion = URL“ referenziert.
===========================================================
Dim geom as Topobase.Graphic.Geometry
geom = Me.Record.GeometryValue("GEOM")
Dim URL as String
if not (geom is nothing) then
dim x as long
dim y as long
dim xmin as long
dim ymin as long
dim xmax as long
dim ymax as long
x = (geom.Bounds.MinX + geom.bounds.MaxX) / 2
y = (geom.Bounds.MinY + geom.Bounds.MaxY) / 2
xmin = x-500
ymin = y-500
xmax = x+500
ymax = y+500
URL =http://localhost/mapguide2010/mapagent/mapagent.fcgi?REQUEST=GETMAP&SERVICE=WMS&VERSION=1.1.1&FORMAT=image/jpeg&
Layers=Brigl_Test_Forms/Layers/Forms/FLAECHENWMS&SRS=EPSG:31468&BBOX= & xmin & "," & ymin & "," & xmax & "," & ymax &"&Width=500&Height=500"
else
URL=""
end if
meine_WMS_Funktion = URL
=========================================================
Im Topobase Report Designer wird ein Bild-Platzhalter eingefügt und statt einem Bildpfad die Funktion aufgerufen: {fun.meine_WMS_Funktion}
Voilà:
Letzte Kommentare