Contao-Camp 2024
Ergebnis 1 bis 2 von 2

Thema: Leaflet - Zoom

  1. #1
    Contao-Nutzer
    Registriert seit
    30.11.2017.
    Beiträge
    1

    Standard Leaflet - Zoom

    Hi,

    Ich hätte eine Frage bezüglich des initialen Zooms.

    Ich würde gerne den Kartenausschnitt auf einen Bereich festlegen, der per GET-Parameter übergeben wird (als Adresse zB). Ist dies möglich bzw ist es möglich im Nachhinein auf diesen Bereich zu zoomen?





    Danke schon mal .


    Liebe Grüße

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

    Standard

    Angenommen der GET-Parameter lautet "bbox" und gibt die Koordinaten der Bounding-Box mit, geht es mit folgendem Code. Die Änderungen würde ich in einem eigenen leaflet_map_js Template einbauen:

    PHP-Code:
    L.contao.addMap('<?= $this->mapId ?>', function() {
    <?= $this->javascript ?>

    return { map: map, layers: layers, controls: controls, icons: icons };
    }());

    <?php # Ab hier folgt der spezifische Code:

    if ($bbox = \Contao\Input::get('bbox')):
        
    $bbox explode(','$bbox4);
        if (
    count($bbox) === 4): 
            
    $bbox array_filter('floatval'$bbox); 
        
    ?>
            L.contao.getMap('<?= $this->mapId ?>').fitBounds([[<?= $bbox[0?><?= $bbox[1?>], [<?= $bbox[2?><?= $bbox[3?>]]);
        <?php endif; 

    endif 
    ?>
    Mit L.contao.getMap() bekommst du die Leaflet-Map-Instanz. Mit fitBounds begrenzt du die Ansicht auf eine Bounding Box siehe https://leafletjs.com/reference-1.5.0.html#latlngbounds

    Das ganze ist ungetestet, Prinzip sollte aber klar werden.

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
  •