Ankündigung

Einklappen
Keine Ankündigung bisher.

Umkreissuche - Karten-Zoom je nach Umkreis

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umkreissuche - Karten-Zoom je nach Umkreis

    Hallo, bin gerade dabei, die Umkreissuche einzubinden und dabei auf ein Ansichtsproblem für den Kunden gestoßen. Momentan habe ich den Zoom auf 6 stehen, damit im Frontend auch ganz Deutschland sichtbar ist. Nun soll es aber so sein, dass sich der Kartenzoom dynamisch anpasst, je nachdem, in welchen Umkreis man sucht. Könnte man da eventuell eine Abfrage integrieren, die ungefähr die möglichen Zoomstufen mit bestimmten Umkreisen in Kilometer verknüpft? Wenn ja, wie und wo kann das integriert werden?

    Oder gibt es diese Option schon irgendwo?
    Zuletzt geändert von jensen; 20.12.2017, 10:32.

  • #2
    Hallo, der Umkreis steht in keinem Verhältnis zum Zoom Level. Du wirst mit Erfahrungswerten und Annäherungen arbeiten müssen. Im Template kann der Wert für den Zoom angegeben werden. Hinterlege dir dort ein paar Werte in Abhängigkeit zum aktuell gesetzten Umkreiswert (GET Parameter).
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Schau dir mal die Google Maps Api an. Da gibt es die Möglichkeit, den Zoom dynamisch an den Radius anzupassen. Das heißt, der Zoom ist dann immer so, dass der Radius zu 100% sichtbar ist. Du muss den Umkreis nur vorher als Element (circle) definieren.

      Code:
       // Zeige den Radius an
        var circle = new google.maps.Circle({
        strokeColor: '#DC0D36',
        strokeOpacity: 0.5,
        strokeWeight: 2,
        fillColor: '#DC0D36',
        fillOpacity: 0.15,
        clickable: false,
        map: map,
        center: new google.maps.LatLng(lat,lng),
        radius: <?php echo \Input::Get('umkreis'); ?> * 1000
        });
         
        // Zoom passt sich dem Radius an
        map.fitBounds(circle.getBounds());

      Kommentar


      • #4
        Sehr cool. Thx.

        beachte: die Contao Methode der Input Klasse heisst ::get, nicht ::Get. Dies führt zu php Fehlern, weil die Funktion nicht existiert.

        \Input::get(...)

        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Hallo, habe den Code an mehrere Stellen im Template "customcatalog_googlemap_markers.html5" platziert. Leider wird dann die ganze Karte nicht mehr angezeigt. Oder muss das gar nicht in die Datei?

          Kommentar


          • #6
            Du musst die Variablen im Script noch anpassen.

            Kommentar


            • #7
              Ich weiß leider nicht wie das geht... Wo finde ich die richtigen Variablen?

              Kommentar


              • #8
                Ist die Variable "plzort" richtig aus dem Beispiel CC "Direcrtory"? Wenn ich das dann ( radius: <?php echo \Input::get('plzort'); ?> * 1000 ) aber in das Template "customcatalog_googlemap_markers.html5" einfüge wird die Karte gar nicht mehr angezeigt. Was mache ich denn da falsch?

                Kommentar


                • #9
                  Hat niemand eine kleine Weihnachtshilfe parat? ;-)

                  Kommentar


                  • #10
                    Hallo, habe es soweit hinbekommen, dass der Zoom funktioniert, wenn man nach einem Ort oder PLZ sucht. Jedoch funktioniert die Karte beim ersten normalen Aufruf nicht. Die Variable "<?php echo \Input::Get('umkreis'); ?>" bleibt einfach leer und produziert durch das bleibende "* 1000" einen Fehler. Wie kann man das lösen?

                    Kommentar


                    • #11
                      Die Methode heisst ::get nicht ::Get. Das sollte bereits mit PHP Fehlern enden.
                      http://www.premium-contao-themes.com

                      Kommentar


                      • #12
                        Ja, das hatte ich auch <?php echo \Input::get('plzort'); ?> * 1000 ....war nur falsch kopiert. Es bleibt also beim Fehler oben...

                        Kommentar


                        • #13
                          Ich habe jetzt eine Abfrage eingebaut und lasse den Umkreis-Zoom erst laufen, wenn auch etwas eingegeben wurde. Jedoch werden die Eingaben leider erst beim zweiten Klick richtig ausgeführt. Der erste Klick zeigt immer den Kartenbereich der vorherigen Suche... Was kann das sein?

                          Kommentar


                          • #14
                            Zitat von jensen Beitrag anzeigen
                            Ich habe jetzt eine Abfrage eingebaut und lasse den Umkreis-Zoom erst laufen, wenn auch etwas eingegeben wurde. Jedoch werden die Eingaben leider erst beim zweiten Klick richtig ausgeführt. Der erste Klick zeigt immer den Kartenbereich der vorherigen Suche... Was kann das sein?
                            Bitte ein Live-Beispiel. Filter werden durch Neuladen angewendet. Ab diesem Moment existieren auch die Werte im GET Parameter. Wendet man in jedweder Form Javascript oder Ajax an, muss manuell nachgeladen werden.
                            http://www.premium-contao-themes.com

                            Kommentar

                            Lädt...
                            X