Leaflet-Maps Integration
Mit der Leaflet-Maps Integration wird die Darstellung von MetaModels in der Erweiterung netzmacht/contao-leaflet-maps ermöglicht.
Bemerkung
Diese Dokumentation bezieht sich ausschließlich auf Contao 4, auch wenn die Erweiterung auch für Contao 3.5. bereitgestellt wird.
Funktionen
MetaModels Item als Marker auf Karte rendern
Im MetaModels Item Layer referenzieren und auf der Karte darstellen
Im MetaModels Item GeoJson-Dateien verlinken und auf der Karte darstellen
Attribut Leaflet-Karte: Direkt eine Karte im MetaModels Item rendern
Voraussetzungen
Contao 4
min. Contao 4.4
min. MetaModels 2.1
min. PHP 7.1
min. Symfony 3.4
Contao 3.5
(Bugfixsupport auslaufend im Mai 2019)
MetaModels 2.0
min. PHP 5.4
Installation
Über Composer/Contao Manager lässt sich netzmacht/contao-leaflet-metamodels installieren.
MetaModel auf Karte integrieren
In dieser Anleitung wird gezeigt, wie man ein MetaModels, welches Geokoordinaten besitzt, auf einer Karte von Leaflet für Contao dargestellt werden kann.
Koordinaten-Attribute
Die Geokoordinaten können als getrennte Attribute oder in einem Attribut (Latitude und Longitude mit Komma getrennt) im MetaModel definiert werden. Als Attributstyp eignet sich z.B. ein einfaches Textattribut.
MetaModels Layer anlegen
Als nächster Schritt, wird unter Karten-Layer einen neuen Layer vom Typ „MetaModels“ angelegt. Folgende Einstellungen sind hier vorzunehmen:
Typ: MetaModel auswählen
MetaModel: Das gewünschte MetaModel
Bounds relation: Legt fest, welche Abhängigkeiten zwischen den Elementen des Layers und den Kartengrenzen bestehen soll - Auswahl von extend. Die Kartengrenzen werden durch die definierten Marker erweitert.
Anzuwendende Filtereinstellung: Hier wird, wie bei MetaModels gewohnt, eine Filtereinstellung ausgewählt, die die anzuzeigenden Items beeinflusst.
MetaModels Layer Renderer anlegen
Im nächsten Schritt wird definiert, wie das MetaModels Item auf der Karte dargestellt werden soll. Diese sollen in dem Beispiel als Marker dargestellt werden. Dazu können über das Bearbeiten-Icon des Karten-Layers die entsprechenden Renderer angelegt werden.
In der Eingabemaske ist es möglich, neue Renderer zu definieren. Folgende Einstellungen sind hier vorzunehmen:
Typ: Auswahl von marker, da die MetaModel Items als Marker dargestellt werden sollen
Koordinaten: Auswahl von separate, wenn die Werte für Latitude und Longitude in separaten Attributen vorliegen
Breite-Attribut: Auswahl des Attributs für Latitude aus
Länge-Attribut: Auswahl des Attributs für Longitude aus
Rendererinstellung aktivieren: aktivieren der Rendereinstellung
Verzögertes Laden: Bei größeren Listen empfiehlt sich das dynamische Nachladen der Kartendaten über eine API. Diese werden dann nicht direkt als Javascript gerendert.
Zusätzlich zu der Grundkonfiguration, kann das MetaModel auch als Popup zum Marker hinzugefügt werden. Hier werden zwei Modi unterstützt:
render: Eine Rendereinstellung wird ausgewählt und gerendert
attribute: Es wird ein Attribut gerendert. Auch hierfür muss eine Rendererinstellung ausgewählt werden
Weiterhin ist es möglich die Darstellung als Icon zu beeinflussen. Es kann eines der vordefinierten Icons ausgewählt oder Alternativ dazu über ein MetaModels-Attribut bestimmt werden.
Layer in Karte aktivieren
Als letzter Schritt, muss dem Layer für die Darstellung noch eine Karte zugewiesen werden. Dies kann über die Standardlayer einer Karte erfolgen.
Zudem ist es zu empfehlen, bei der Funktion Grenzen festlegen die Optionen bei Karteninitialisierung und Nach dem Laden des verzögerten Features zu aktivieren. Damit erweitert sich die Karte dynamisch um den Bereich, indem die Marker existieren.
Ist auf der Seite ein Filter eingebunden der die oben ausgewählte Filtereinstellung bedient, wird die Kartenansicht entsprechend gefiltert.