Kartensysteme (CRS)

save

Diese Funktionalität gibt es ab der EGOCMS-Version 23.1.6

check

Bei der Leafletfunktion ist es möglich ein Kartensystem anzugeben, damit eine Karte zum Beispiel eine andere Ansicht hat oder in einer anderen Sprache dargestellt wird.

Die Kartensystemerweiterung ist für alle Verwendungen der Leafletfunktion möglich.

Standardkartensysteme:

Das CMS liefert Standardkartensysteme, die man in jedem Projekt verwenden kann:

  • Das deutsche Kartensystem
  • Das englische Kartensystem

Um diese Standardkartensysteme zu erweitern muss man lediglich zwei Dateien erweitern.

  • Zum einen muss die crs.js (unter bin/js/leaflet/crs/) erweitert werden.
  • Zum anderen muss die crs.json (unter lib/smarty/plugins/leaflet/) erweitert werden.
wb_incandescent

Wenn eine Erweiterung benötigt wird muss das EGOCMS erweitert werden.

Beispiel crs.js:

var leaflet_crs = { worldStreetMap : { maxZoom : 19, tiles : 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}', attribution : 'Tiles © Esri — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012' } };

Beispiel crs.json:

{ "worldStreetMap": { "title": "Englische Karte" } }

Hierbei ist es wichtig, dass die Schlüssel der Kartensysteme identisch sind!

In der crs.js kann man alle notwendigen Attribute für das Tilelayer der Karte setzen. Zum Beispiel:

  • maxZoom
  • tiles (ist notwendig um die Karte darzustellen)
  • attribution
  • crs
  • uvm.

In der crs.json kann man den Titel des Kartensystems deklarieren und notwendige Plugins festlegen.
Um die Plugins darzustellen wird ein Array verwendet welches die Namen der Plugin-Dateien beinhaltet. Beispiel: ["proj4","proj4leaflet"] Die benötigten Dateien müssen dann im EGOCMS unter bin/js/leaflet/crs/DATEINAME.js eingefügt werden.

Resultat:

Wenn man alle benötigten Dateien erfolgreich erweitert hat sieht das zum Beispiel so aus:

Zu sehen ist die Blockeinstellung des Standardkartenblocks.

Neben den beiden Standardkartensystemen "Deutsche Karte" und "Englische Karte" sieht man auch die hinzugefügte "Testkarte". Wenn man diese auswählt, sieht man auf dem Kartenblock ein anderes Kartensystem mit zuvor eingestellten Attributen.

Diese Systeme sind auch auf anderen Blöcken sichtbar! Zum Beispiel zeigt der Kartenformularblock ebenfalls diese Einstellungen an.

Um andere Kartensysteme in projektspezifischen Kartenblöcken, in der Leafletfunktion oder in dem {input type="map"} zu verwenden muss der Parameter crs mit dem Korrekten Schlüssel des Kartensystems betitelt werden:

{input type="map" name="test" title="test" <span style="text-decoration: underline;">crs="worldStreetMap"</span>} oder {leaflet var="test" address="mosbach" <span style="text-decoration: underline;">crs="worldStreetMap"</span>}

 

Kartensysteme projektspezifisch hinzufügen:

Um die crs.js zu erweitern muss im Projekt unter skin eine crs.js liegen. Diese könnte so aussehen:

Object.assign(leaflet_crs, { projekt_test_map : { tiles : 'https://maps.test.de/image/default/default028mm/{z}/{y}/{x}.png', attribution : 'Test x)', center: [51.8384277, 6.6150917], zoom: 13 } });

Um die crs.json zu erweitern muss im Projekt unter site/admin eine crs.json liegen. Diese könnte so aussehen:

{ "projekt_test_map": { "title": "Testkarte" } }
wb_incandescent

in der crs.js können auch Funktionen benutzt werden. Diese werden dann nach dem einbinden aller Dateien ausgelöst. Als Wiedergabewert wird ein Objekt mit den selben Daten erwartet!