MetaModels Workshop in Berlin
Ergebnis 1 bis 17 von 17

Thema: Leaflet für Contao – Marker verlinken

  1. #1
    Contao-Nutzer
    Registriert seit
    19.09.2016.
    Beiträge
    7

    Standard Leaflet für Contao – Marker verlinken

    Hallo,

    ich bin auf der Suche nach einem Lösungsansatz: ich möchte gerne einen Marker auf eine interne Seite bzw. eine URL verlinken. Komme ich evtl. über das Feld ‚featureData‘ in der Marker-Maske weiter? Wenn ja: wie? Denn sobald ich hier etwas eingebe, bekomme ich gleich einen Warnhinweis mit Meldungen wie z.B. ‚expected a instead of u‘. Welche Funktion hat das Feld ‚featureData‘? Der Doku hilft leider nicht weiter.
    Kann mir mal jemand einen Tipp geben, ob das überhaupt allein mit der Extension möglich ist und falls ja: wie gehe ich's am besten an?

    Schönen Gruß,
    Joachim

  2. #2
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.769
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Du bist mit "featureData" auf der richtigen Spur. Die Erweiterung macht folgendes:

    • Marker werden als GeoJSON Objekt übermittelt
    • Mittels "featureData" können die GeoJSON Properties angereichert werden. Das Eingabeformat ist hier JSON
    • Im Marker-Layer kann ein angepasster Callback angegeben werden, der die Standardfunktion, wie aus dem GeoJSON Feature ein Marker wird, erweitert wird


    Dies auf deinen Anwendungsfall übertragen, musst du folgendes machen:

    1. Im Marker-Layer als pointToLayer expression folgendes eingeben:

    Code:
    function (geoJsonPoint, latlng) {
        // Erstelle einen Marker anhand der Standard-Routine der Contao-Leaflet Erweiterung
        var marker = L.contao.pointToLayer(geoJsonPoint, latlng);
        
        // Falls in den GeoJSON Properties ein Link gesetzt ist, füge ein Click-Event hinzu
        if (geoJsonPoint.properties.data !== undefined && geoJsonPoint.properties.data.href !== undefined) {
        	marker.on('click', function () {
        		window.location.href = geoJsonPoint.properties.data.href;
        	})
        }
        
        return marker;
    }
    2. Im Marker unter "featureData" den Link definieren

    Code:
    {
      "href": "https://contao.rocks"
    }

  3. #3
    Contao-Nutzer
    Registriert seit
    19.09.2016.
    Beiträge
    7

    Standard

    Super - funktioniert! Danke für die Infos, mit denen als Grundlage kann ich mich jetzt auch mal weiter in Contao Leaflets reinarbeiten.

  4. #4
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.769
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Habe das Beispiel nun auch in die Dokumentation aufgenommen.

    https://leaflet-maps-for-contao.read...ture-data.html

  5. #5
    Contao-Fan Avatar von kischd
    Registriert seit
    25.06.2009.
    Ort
    Karlsruhe
    Beiträge
    915

    Standard

    Hallo Webstar,
    ich habe gerade versucht eine Karte anzulegen.
    Irgendwas scheine ich falsch zu machen, es kommt nur ein grauer Kasten.
    Auf meinem Testsystem hab ich auch noch Googlemaps auf der Seite. Kann das sich beißen?

    Ich bin deiner Doku gefolgt, aber evtl hab ich etwas vergessen?
    Angehängte Grafiken Angehängte Grafiken
    Gruß Mark

  6. #6
    Contao-Fan Avatar von Fehrmann
    Registriert seit
    04.07.2009.
    Ort
    Wismar
    Beiträge
    357

    Standard

    Hi,

    mein ersten Gedanke war, das du vielleicht die Zuweisung der Layer in der Karte vergessen hast. Nach der Erstellung der Layer müssen diese bei der Karte noch ausgewählt werden.

    Viele Grüße
    René
    aiDESIGNER - www.ai-designer.de, ehemals als Freelancer www.omos.de

  7. #7
    Contao-Fan Avatar von kischd
    Registriert seit
    25.06.2009.
    Ort
    Karlsruhe
    Beiträge
    915

    Standard

    Du meinst unter Leaflet-Karten -> werkzeug -> Standardlayer?
    Da hab ich die Reference der Karte eingetragen.

    Ansonsten hab ich dort nichts eingetagen. Evtl ist das der Fehler?
    Braucht es da noch etwas?
    Gruß Mark

  8. #8
    Contao-Fan Avatar von kischd
    Registriert seit
    25.06.2009.
    Ort
    Karlsruhe
    Beiträge
    915

    Standard

    Im Artikelement kann ich ja nichts falsch machen oder?
    Angehängte Grafiken Angehängte Grafiken
    Gruß Mark

  9. #9
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.769
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von kischd Beitrag anzeigen
    Du meinst unter Leaflet-Karten -> werkzeug -> Standardlayer?
    Da hab ich die Reference der Karte eingetragen.

    Ansonsten hab ich dort nichts eingetagen. Evtl ist das der Fehler?
    Braucht es da noch etwas?
    Unter Standardlayer musst die die jeweiligen Layer auswählen, die auf der Karte angezeigt werden sollen. Das meinte Fehrmann. Hast du dies vorgenommen?

    Standardlayer bedeutet hier, dass die Layer standardmäßig angezeigt werden. Mithilfe den Layer-Kontrollelemente könnte man auch noch zusätzliche Layer einblenden lassen.

  10. #10
    Contao-Fan Avatar von kischd
    Registriert seit
    25.06.2009.
    Ort
    Karlsruhe
    Beiträge
    915

    Standard

    Ok ich glaub ich hab es verstanden, aber meine Karte ist noch grau.

    Unter Karten-Layer hab ich angelegt:
    - vorkonfigurierte Karte (Openstreetmap)
    - Marker-Layer
    - Marker

    Unter leaflet-Karten lege ich meine Karte an und füge dort
    OPenstreetmap und Marker ein.

    richtig?

    Im Artikel hab ich die Leaflet karte ausgewählt und lediglich breite und höhe angegeben
    Gruß Mark

  11. #11
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.769
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von kischd Beitrag anzeigen
    Ok ich glaub ich hab es verstanden, aber meine Karte ist noch grau.

    Unter Karten-Layer hab ich angelegt:
    - vorkonfigurierte Karte (Openstreetmap)
    - Marker-Layer
    - Marker

    Unter leaflet-Karten lege ich meine Karte an und füge dort
    OPenstreetmap und Marker ein.

    richtig?

    Im Artikel hab ich die Leaflet karte ausgewählt und lediglich breite und höhe angegeben
    Dir fehlt noch die Angabe des Kartenzentrums und die initiale Zoomstufe. Sonst weiß Leaflet nicht, was es rendern soll.

    Alternativ kannst du die Erweiterung auch so konfigurieren, dass der Kartenausschnitt automatisch ermittelt wird. Hierfür musst du im Marker-Layer bei Bounds relation "extend" auswählen. Du sagst damit, dass die Marker die Kartengrenzen erweitern sollen. Bei der Karte selber muss dann unter "Grenzen festlegen" die Option "Nach dem Laden des verzögerten Features" ausgewählt werden. In der Karte bestimmst du nun, dass nach dem Laden der Features (in deinem Fall der Marker) die Kartengrenze ermittelt wird.

  12. #12
    Contao-Fan Avatar von kischd
    Registriert seit
    25.06.2009.
    Ort
    Karlsruhe
    Beiträge
    915

    Standard

    Und sofort geht es ;-)

    {
    "href": "https://contao.rocks"
    }
    Einen Inserttag benutzen geht leider nicht oder?
    Habs mit {{link_url::685}} probiert...
    Gruß Mark

  13. #13
    Contao-Fan
    Registriert seit
    12.10.2010.
    Beiträge
    707

    Standard

    Hallo Leute,

    ich befasse mich auch gerade mit dieser ER ..

    Ich möchte folgendes dargestellt haben im FE, so wie es in google-maps auch möglich ist.

    Unbenannt-1.jpg

    Wie muß ich das anstellen?
    Ich möchte für die Adresse einen PIN (nennt man das hier Maker?), sowie ein kleines Kästchen mit Infotext.
    Ideal wäre auch, daß das Firmen-Logo auf der Karte zu sehen ist.


    Mit der Dokumentation komme ich nicht so recht weiter, bin aber auch kein Techniker vom Wissen her..

    Ich habe bisher angelegt:

    Unter Karten-Layer:
    - Karten-Layer (OpenStreetMap)
    - Marker

    Unter Leaflet-Karten:
    - Karte*

    * Bei der Karte habe ich im Feld Standard-Layer den Karten-Layer aktiviert. Wenn ich zusätzlich den Marker aktiviere / einbinde,
    bekomme ich im FE eine Fehlermeldung Unable to generate a URL for the named route "leaflet_layer" as such route does not exist.

  14. #14
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.769
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Schnippel Beitrag anzeigen
    Bei der Karte habe ich im Feld Standard-Layer den Karten-Layer aktiviert. Wenn ich zusätzlich den Marker aktiviere / einbinde,
    bekomme ich im FE eine Fehlermeldung Unable to generate a URL for the named route "leaflet_layer" as such route does not exist.
    Nutzt du Contao 4.7? Dann lösche mal den Ordner var/cache. Hatte es schon mehrfach gehabt, dass Routen der Erweiterungen nicht geladen wurden, da irgendwo gecacht und nicht neu aufgebaut wurden.

    Alternativ kannst du die Funktion "Verzögertes Laden" deaktivieren. Dann werden die Marker nicht per Ajax nachgeladen.

  15. #15
    Contao-Fan
    Registriert seit
    12.10.2010.
    Beiträge
    707

    Standard

    Nutzt du Contao 4.7? Dann lösche mal den Ordner var/cache.
    Habe jetzt Contao 4.7.6 aktuell und den Ordner var/cache gelöscht.
    Die Kartenansicht im FE schaut immer noch so hier aus, also ohne Marker / PIN:
    Unbenannt-1.jpg

    Was muß ich da noch wo einstellen?

  16. #16
    Contao-Fan Avatar von kischd
    Registriert seit
    25.06.2009.
    Ort
    Karlsruhe
    Beiträge
    915

    Standard

    {
    "href": "https://contao.rocks"
    }
    Einen Inserttag benutzen geht leider nicht oder?
    Habs mit {{link_url::685}} probiert...

    Ich benutze die Contao-Version 4.4
    oder kann ich hier nicht mit der Seiten-ID arbeiten?
    Gruß Mark

  17. #17
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.769
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von kischd Beitrag anzeigen
    Und sofort geht es ;-)

    Einen Inserttag benutzen geht leider nicht oder?
    Habs mit {{link_url::685}} probiert...
    Nein, Insert-Tags werden in dem Feld nicht unterstützt, da hier valider Quellcode stehen muss und bei InsertTags es unvorhersehbar ist, was dort als Rückgabe kommt.

    Gern kannst du aber ein Ticket für einen Feature Request aufmachen oder ein entsprechendes Feature beauftragen, dass man bei einem Marker auch eine Verlinkung setzen kann.
    Geändert von webstar (15.07.2019 um 20:12 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •