Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 40 von 72

Thema: MetaModels + dlh_googlemaps Integration - wie lösen?

  1. #1
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    4

    Frage MetaModels + dlh_googlemaps Integration - wie lösen?

    Hallo zusammen,

    Bin hier am umsetzen einer Site mit contao 3.2.9 und MetaModels sowie dlh_googlemaps.
    Da soll nun eine Google Karte mit Markern und eine Liste darunter angezeigt werden.
    Nach einigem forsten im Internet ohne etwas Gutes zu finden wie man das umsetzen kann, habe ich mal begonnen.
    Nun stecke ich fest - aber hier erst mal etwas Info:

    Ich habe das Model erstellt mit den Attributen sowie BE + FE Rendereinstellungen.
    Dann eine Karte und die Listenausgabe "FE Listenansicht". Soweit so gut.

    Um die Marker auf die Karte zu bekommen, habe ich eine zusätzliche Rendereinstellung "FE Liste Kartenmarker" erstellt.
    Diese gibt die Felder showmap (checkbox) und geocode (text) aus. Für das Feld geocode habe ich ein custom template "mm_attr_text_geocode_addmarker.html5" erstellt und im theme folder abgelegt.
    Darin befindet sich folgender Inhalt:

    Code:
    <?
    $hash = md5(serialize($this));
    if($this->row["showmap"] == "1"){ 
    ?>
    <script>
        Hook.register(
            'add_markers',
            function ( args ) {
                gmap = args[0];
    
                var gmap_marker_<?= $hash ?> = new google.maps.Marker({
                    position: new google.maps.LatLng(<?php echo explode(",",$this->raw)[1]. ",". explode(",",$this->raw)[0] ?>),
                    map: gmap
                });
    
                var gmap_window_<?= $hash ?> = new google.maps.InfoWindow({
                    content: 'Mein Popuptext',
                });
    
                google.maps.event.addListener(gmap_marker_<?= $hash ?>, 'click', function() {
                    alert("click ;-)");
                    gmap_window_<?= $hash ?>.open(gmap,gmap_marker_<?= $hash ?>);
                });
    
                // return true to continue with the other functions registered with the same hook name
                return true;
            }
        );
    </script>
    <? } ?>
    Am Ende meiner fe_page ist folgender Code, der alles zusammenfasst:
    Code:
        <script>
    
            // gmap1_dynmap gets called by dlh_googlemaps when map is ready
            function gmap1_dynmap(gmap1) {
                Hook.call( 'add_markers', [ gmap1 ] );
            }
        </script>
    Die Marker werden erstellt, jedoch gibt es einige Probleme:
    • Die Popup Meldung soll aus anderen Feldern des Models (z.B. Titel) erstellt werden, in diesem template habe ich jedoch keinen Zugriff auf die anderen Felder.
    • Das showmap Feld wird ausgegeben, dafür habe ich ein mm_attr_checkbox_noooutput.html5 erstellt, welches leer ist.
      Dieses dem showmap Feld im "FE Liste Kartenmarker" zugeweisen. Trotzdem wird der Wert 1 ausgegeben.


    Ich frage mich ob ich überhaupt den richtigen Weg gewählt habe.
    Leider findet sich fast keine Information zu diesem Thema.
    Und das ist meine erste Begegnung mit MM..

    Kann mich da jemand in die richtige Richtung weisen?
    Wäre echt dankbar.

  2. #2
    Contao-Fan
    Registriert seit
    27.06.2012.
    Beiträge
    600

    Standard

    hi, also ich wurde die map (mit der javascript api) innerhalb der MM liste manuell erstellen und in der foreach schleife der eintraege die marker + info window setzen.

    die felder-templates fuer checkbox usw wuerde ich nicht bearbeiten, sondern direkt die werte wie benoetigt in der liste ausgeben.

    vorausgesetzt die javascript + php kenntnisse sind vorhanden.

    Gesendet von meinem GT-I9505 mit Tapatalk

  3. #3
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

  4. #4
    Alter Contao-Hase Avatar von christian
    Registriert seit
    15.06.2009.
    Ort
    Viersen
    Beiträge
    1.038
    Partner-ID
    387

    Standard

    Oder Du besuchst den passenden Workshop auf der Konferenz: http://contao-konferenz.de/vortraege/gute-karten.html.
    Contao-Partner am Niederrhein
    Templating - Komplettservice - Erweiterungen
    Infos: http://delahaye.de

  5. #5
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    4

    Standard

    Zitat Zitat von valentin_ Beitrag anzeigen
    hi, also ich wurde die map (mit der javascript api) innerhalb der MM liste manuell erstellen und in der foreach schleife der eintraege die marker + info window setzen.
    Hm. Ich verstehe zwar was du meinst - aber wo kann ich das machen?

    Ich frage mich ob es nicht einfacher wäre ein eigenes Ausgabemodul mit SQL Abfragen zu machen.

  6. #6
    Contao-Nutzer
    Registriert seit
    13.05.2014.
    Beiträge
    4

    Standard

    @andreasisaak ist diese Erweiterung brauchbar?

    Auf der Github Seite steht:
    Please bear in mind that, despite the fact that this extension has now been underway from 2009 until now (and therefore almost 3 years) it is still a long way from being finished.
    Das weckt nicht unbedingt Vertrauen diese Erweiterung zu verwenden.

  7. #7
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Der Text ist alt und wurde noch nicht geändert. Wir setzen die Extension in Produktivwebsites ein und haben genau aus diesem Grund den Contao3 Branch angelegt. Aber du kannst nutzen was du willst.

  8. #8
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard Fehlermeldung bei ContaoMaps

    Ich versuche auch das ContaoMaps mit MM zum laufen zu bringen, jedoch gibt mir ContaoMaps die Fehlermeldung system/modules/contaomaps/ContaoMap.php on line 39.

    Auch wenn ich versuche keinen MetaModels-Layer in die Karte zu laden, also nur einen Layer mit manuell eingetragenen Markern kommt der Fehler.

    Habe ich was vergessen oder ist das ein Kompatibilitätsproblem mit der Contao-Version (3.2.9) ?

  9. #9
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    480

    Standard

    Zitat Zitat von christian Beitrag anzeigen
    Oder Du besuchst den passenden Workshop auf der Konferenz: http://contao-konferenz.de/vortraege/gute-karten.html.
    Gibt es da schon was für welche die leider nicht an der Konferenz waren?

  10. #10
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    Ja, gibt es (demnächst).
    Ich texte gerade ein neues Beispielprojekt für MetaModels. Dort werden u.a. die Marker in der Google Map (dlh_googlemaps) aus MetaModel Daten erzeugt. Ich hoffe, dass ich es jetzt am WE fertig bekomme, wenn du noch solange warten kannst.

  11. #11
    Alter Contao-Hase Avatar von christian
    Registriert seit
    15.06.2009.
    Ort
    Viersen
    Beiträge
    1.038
    Partner-ID
    387

    Standard

    Hier sind die Folien vom Workshop.
    Contao-Partner am Niederrhein
    Templating - Komplettservice - Erweiterungen
    Infos: http://delahaye.de

  12. #12
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    @Christian

    Top! Vielen Dank für die Folien!
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  13. #13
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    480

    Gesicht zeigt die Zunge Nur Fehlermeldungen!

    Zitat Zitat von raye Beitrag anzeigen
    Ich versuche auch das ContaoMaps mit MM zum laufen zu bringen, jedoch gibt mir ContaoMaps die Fehlermeldung system/modules/contaomaps/ContaoMap.php on line 39.

    Auch wenn ich versuche keinen MetaModels-Layer in die Karte zu laden, also nur einen Layer mit manuell eingetragenen Markern kommt der Fehler.

    Habe ich was vergessen oder ist das ein Kompatibilitätsproblem mit der Contao-Version (3.2.9) ?
    Auch bei mir kommen sehr viele Fehlermeldungen, wenn ich ContaoMaps verwenden möchte!
    Contao 3.2.10, MetaModels dev-contao3 und ContaoMaps contao3

  14. #14
    Contao-Fan
    Registriert seit
    28.06.2009.
    Ort
    Steffisburg
    Beiträge
    480

    Frage

    Zitat Zitat von raye Beitrag anzeigen
    Ja, gibt es (demnächst).
    Ich texte gerade ein neues Beispielprojekt für MetaModels. Dort werden u.a. die Marker in der Google Map (dlh_googlemaps) aus MetaModel Daten erzeugt. Ich hoffe, dass ich es jetzt am WE fertig bekomme, wenn du noch solange warten kannst.
    Hast du dein Beispielprojekt schon fertig?

  15. #15
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    Sorry, es hat natürlich wieder viel länger gedauert, als ich es mir gewünscht habe.

    Hier die Beispielseite: http://metamodels.pyropixel.de
    Und die Tutorial Kapitel sind hier: http://pyropixel.de/articles.html

    Wegen der wenigen englischsprachigen Ressourcen zum Thema MetaModels, habe ich mich entschieden, daraus zunächst eine englische Artikel-Serie zu machen. Zurzeit schreibe ich an Kapitel 9 und da kommt wahrscheinlich genau das, was dich interessiert. Falls du dazu Fragen hast, gerne melden.
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  16. #16
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    Nur zur Info: ich habe das 9. Kapitel jetzt fertig. Hier wird erklärt wie man die Marker in der Google Map erzeugt.
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  17. #17
    Contao-Nutzer
    Registriert seit
    21.01.2014.
    Ort
    Kiel
    Beiträge
    136

    Standard

    Hi Raye, vielen Dank für das schöne Tutorial.
    Ich möchte zusätzlich das Logo in der InfoBox dargestellt haben, dass auch als dynamischer Verweis mit Hilfe von ['raw']['url']['id'] dienen soll.
    Wie müsste das metamodel_googlemapsmarker template aus Deinem Tutorial angepasst werden ?

    VG

  18. #18
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    @taktell81

    Dankeschön

    Ich beziehe mich mal auf meine Tutorial: zunächst musst du den Pfad zum Logofile im Template verfügbar machen. Dazu musst du in den Render-Settings von Assets FE GoogleMapsMarker das Logo Attribut mit dem grünen Auge veröffentlichen. Jetzt stehen die Daten zu der Logodatei im Template zur Verfügung.

    Den Pfad bekommst du dann im Template zum Beispiel mit
    PHP-Code:
    $path_to_logofile $arrItem['text']['logofile']; 
    Wenn du den Pfad dann hast, kannst du mit diesem dann den $info-String so anpassen, dass da das Logo auch mit ausgegeben wird. Der $info-String beinhaltet ja den HTML-Code für die InfoBox.

    Hilft das so weiter?

    Schöne Grüße
    René
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  19. #19
    Contao-Nutzer
    Registriert seit
    21.01.2014.
    Ort
    Kiel
    Beiträge
    136

    Standard

    ok das Prinzip wird deutlich.
    ich habe im Gegensatz zu deiner Struktur ein Logo als File Attribut mit Spaltenname mm_bild.
    Somit habe ich folgendes probiert:

    1) Bild Attribut im FE GoogleMapsMarker veröffentlicht
    2) $path_to_logofile = $arrItem['file']['mm_bild'];
    3) $info .= '<div class="bild">' .$path_to_logofile .'</div>';

    Bekomme aber noch keine Ausgabe in der InfoBox. Woran mag es liegen ?
    Dieses Bild als Verweis mit ['raw']['url']['id'] ist leider noch unklar.

    Besten Gruß und Dank für die schnelle Antwort

  20. #20
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    Zitat Zitat von taktell81 Beitrag anzeigen
    1) Bild Attribut im FE GoogleMapsMarker veröffentlicht
    2) $path_to_logofile = $arrItem['file']['mm_bild'];
    3) $info .= '<div class="bild">' .$path_to_logofile .'</div>';
    Das müsste dann eigentlich so aussehen:
    Code:
    $path_to_logofile = $arrItem['text']['mm_bild'];
    $info .= '<div class="bild"><img src="' .$path_to_logofile .'"></div>';
    ['text'] bedeutet nicht, dass hier nur Daten für Text-Attribute abzuholen sind. Vielmehr sind in diesem Bereich "aufgearbeitete" Daten für das Attribut enthalten. Bei einem Attribut file wäre das der Pfad zur Datei. Es gäbe auch noch den Bereich ['html5']['mm_bild']. Da wird dann nicht der Pfad sondern (ich glaube, ansonsten korrigieren) der Link zum Bild mit Dateigrößenangabe dahinter ausgegeben.

    Es gibt auch noch ['raw']['mm_bild']['value']['0'] was, glaube ich , den Binärdaten in der Datenbank entspricht. Und es gibt ['raw']['mm_bild']['path']['0'], was aber das gleiche enthält wie ['text']['mm_bild'], also den Pfad zum Bild.

    Wenn ich ein print_r im Template anlege finde ich auch ['raw']['url'] bezieht sich im Tutorial aber auf das URL Attribut nicht das Logo Bild, und ich sehe ['raw']['id'] was der ID des Assets in der Datenbank entspricht. Ein ['raw']['url']['id'] habe ich bei mir allerdings nicht.

    Schöne Grüße
    René
    Geändert von raye (23.06.2014 um 21:20 Uhr)
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  21. #21
    Contao-Nutzer
    Registriert seit
    21.01.2014.
    Ort
    Kiel
    Beiträge
    136

    Standard

    Super Rene, das funktioniert.

    Missverständnis: Das ['raw']['url']['id'] sollte dazu dienen beim Klick aufs Bild dynamisch zu einer URL weiterzuleiten. Im FE Listentemplate hatts bei mir so funktioniert:
    {{link_open::<?=$arrItem['raw']['url']['id'];?>}}
    ... Bildeinbindung...
    {{link_close}}
    Lässt sich das für die InfoBox irgendwie verwenden ?

    Dann möchte ich gern noch ein letztes wichtiges Anliegen klären, womit mein Projekt abgeschlossen wäre:
    Ich habe Deine Metamodels abhängigen Markereinträge hauptsächlich deshalb gewählt, da ich die Marker mit Hilfe des Frontendfilters analog zur normalen FE Listenausgabe mitfiltern möchte.
    Ist eine kompakte Beschreibung dafür möglich ?
    Geändert von taktell81 (23.06.2014 um 21:39 Uhr)

  22. #22
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    Zitat Zitat von taktell81 Beitrag anzeigen
    Super Rene, das funktioniert.

    Missverständnis: Das ['raw']['url']['id'] sollte dazu dienen beim Klick aufs Bild dynamisch zu einer URL weiterzuleiten. Im FE Listentemplate hatts bei mir so funktioniert:
    {{link_open::<?=$arrItem['raw']['url']['id'];?>}}
    ... Bildeinbindung...
    {{link_close}}
    Lässt sich das für die InfoBox irgendwie verwenden ?
    Ich habe das mal gerade versucht nachzustellen, und komme nicht auf das gleiche Array wie du. Ich nehme jetzt mal an, du hast ein Attribut vom Typ URL mit dem Namen 'url'? Und darin wird eine interne Contao-Seite abgespeichert, oder? Wenn ich das bei mir mache, dann wird bei mir im raw-Array keine ID sondern direkt der relative Link zur Seite abgespeichert. Und zwar in ['raw']['url'][1], wenn man das Title-Feld auch mitbenutzt. Der Title hat dann ['raw']['url'][0].

    Ansonsten beschreib mal genau, wie dein URL Attribut aufgebaut ist und was da für Daten drin gespeichert werden.

    Weiterhin: wenn es in den Rendersettings FE Listentemplate ausgegeben wird, dann müsste es auch in anderen Render Settings ausgegeben werden. Hast du das entsprechende Attribut im Render Setting auch auf published gesetzt (grünes Auge)? Das vergesse ich auch manchmal und wundere mich, warum ich es im Template nicht auslesen kann.

    Zitat Zitat von taktell81 Beitrag anzeigen
    Dann möchte ich gern noch ein letztes wichtiges Anliegen klären, womit mein Projekt abgeschlossen wäre:
    Ich habe Deine Metamodels abhängigen Markereinträge hauptsächlich deshalb gewählt, da ich die Marker mit Hilfe des Frontendfilters analog zur normalen FE Listenausgabe mitfiltern möchte.
    Ist eine kompakte Beschreibung dafür möglich ?
    Kompakte Beschreibung ist gut :-) Du meinst, du möchtest die Marker in der Google Map auch filtern, oder?
    Ich habe mit dem MetaModels Frontendfilter noch nicht so viel gemacht. Derzeit schreibe ich an Part 10 des Tutorials und da geht es um einen Filter, der die Liste der Logos mit jQuery filtert. Ist halt nochmal ein anderer Ansatz. Prinzipiell würde ich jetzt behaupten, das geht, sowohl mit dem MM Frontendfilter als auch mit einem jQuery Filter. Eine kompakte Beschreibung habe ich allerdings nicht zur Hand.

    Schöne Grüße
    René
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  23. #23
    Contao-Nutzer
    Registriert seit
    21.01.2014.
    Ort
    Kiel
    Beiträge
    136

    Standard

    Hi René,
    sry, zu Grunde gelegt ist ein Auswahl-Attribut Namens url, mit einer SQL Abfrage (PID = xx)
    Hier ist die Vorgehensweise genauer beschrieben:
    Zitat Zitat von stephangunnar Beitrag anzeigen
    Das ist sogar einfacher, dafür muß man nur das Template metamodel_prerendered etwas umgestellt werden. Der Link zu einem Item ist alles was zwischen <?php if ($arrItem['jumpTo']['deep']): ?> <?php if ($arrItem['jumpTo']['deep']): ?> und </a> steht.
    ...ff....
    -----
    Genau ich möchte die Marker in der GoogleMap mitfiltern, wenn ich den FE Filter einsetze. Das wäre doch auch ein sinnvolles Feature oder
    Ich hatte gehofft, dass das mm_filter_default Template mit deinem FE_GoogleMapsMarker TemplateCode an der richtigen Stelle ergänzt werden muss und dann lüppt dat. Wenn ich grundlegend falsch liegen sollte, baue ich auf Kapitel 10

    Besten Gruß

  24. #24
    Contao-Fan Avatar von Thraile
    Registriert seit
    17.12.2009.
    Ort
    Detmold
    Beiträge
    501
    Partner-ID
    6306

    Standard

    Zitat Zitat von raye Beitrag anzeigen
    Ich versuche auch das ContaoMaps mit MM zum laufen zu bringen, jedoch gibt mir ContaoMaps die Fehlermeldung system/modules/contaomaps/ContaoMap.php on line 39.
    Auch wenn ich spät dran bin: Die Version hatte einen Fehler, den ich behoben habe. Sobald Chris meinen PR einspielt sollte das Modul wieder funktionieren. Bis dahin könnt ihr auch die Dateien von meinem Fork verwenden: https://github.com/davidmaack/ContaoMaps/tree/contao3

    Beim nächsten mal wäre es allerdings nett, wenn Ihr dem Entwickler kurz ne Info geht (z.B. Ticket), dann wäre der Fehler schon längst behoben worden (es fehlten nur zwei Klammern) .

    Die Seite kurvenkoenig.de benutzt die Extension, falls jemand interesse an einem Beispiel hat:
    http://kurvenkoenig.de/motorrad/paesse.html
    http://kurvenkoenig.de/motorrad/hotels/karte.html

  25. #25
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Ich habe das ganze mal nach dieser Anleitung gemacht.
    Und die Tutorial Kapitel sind hier: http://pyropixel.de/articles.html
    In den Folien vom Workshop ist ja beschrieben, dass man in Verbindung mit Metamodels auch das Clustering machen kann.

    Ich habe mir die Seiten angesehen und finde aber nicht den richtigen Ansatz um Clustering & Infoblasen zu verwenden.

    Hier mal der aktuelle Code:
    HTML-Code:
    <?php if ($this->items->getCount()): ?>
     
       <script>
    
    
        function gmap1_dynmap(gmap1) {
     
       
       
        
            <?php
            foreach($this->items->parseAll($this->getFormat(), $this->view) as $arrItem):
                $name        = htmlspecialchars($arrItem['text']['name'], ENT_QUOTES);
                $url         = $arrItem['raw']['url'];
                $geolocation = $arrItem['raw']['geolocation'];
                $address     = preg_replace( "/\r|\n/", "<br>", $arrItem['text']['address']);
                $id          = $arrItem['raw']['id'];
     
                $info  = '<div class="gmap-infobox-tip"></div>';
                $info .= '<div class="gmap-infobox-content">';
                $info .= '<p class="name">' .$name .'</p>';
                $info .= '<p><a target="_blank" href="' .$url .'">' .$url .'</a></p>';
                $info .= '<p>' .$address .'</p>';
                $info .= '</div>';
            ?>
     
                // Create Marker
                var gmap1_<?php echo $id; ?>_marker = new google.maps.Marker({
                  position: new google.maps.LatLng(<?php echo $geolocation; ?>),
                  map: gmap1,
                  title:"<?php echo $name; ?>",
                  icon: new google.maps.MarkerImage(
                    'files/blogger.png',
                    new google.maps.Size(20, 20),
                    new google.maps.Point(0,0),
                    new google.maps.Point(5,21)
                    )
                });
    
                // Create InfoBox
                var gmap1_<?php echo $id; ?>_infobox1 = new InfoBox({
                  content: '<?php echo $info; ?>',
                  disableAutoPan: false,
                  maxWidth: 150,
                  boxClass: 'gmap-infobox',
                  pixelOffset: new google.maps.Size(-75, -5),
                  zIndex: null,
                  closeBoxMargin: '18px 8px 2px 2px',
                  closeBoxURL: 'http://www.google.com/intl/en_us/mapfiles/close.gif'
                });
                 
                // Create Event Listener
                google.maps.event.addListener(gmap1_<?php echo $id; ?>_marker, 'click', function() {
                  gmap1_<?php echo $id; ?>_infobox1.open(gmap1, this);
                });
    
             <?php endforeach; ?>
    
        }
       </script>
     
    <?php endif; ?>
    Nochmals Danke an raye!
    Im Beispiel aus dem Workshop wurde das ganze ja über das Durchzählen der Einträge (locations) über eine for-Schleife gelöst. Ich kapier hier nicht ganz wie ich die foreach-Schleife aus mm dafür mißbrauchen kann.

    hat da evtl. jemand ne Idee?

  26. #26
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    Kennst du diesen Link: https://developers.google.com/maps/a...ymarkers?hl=de ?

    Vielleicht ist da was brauchbares dabei? Da erklärt Google unterschiedliche Arten des Clusterings und zusätzliche Alternativen. Spontan fand ich den MarkerClusterer ganz charmant. Allerdings kann man da keine Infoblasen anlegen, stattdessen wird beim Klick auf die Cluster-Markierung der Ausschnitt und Zoom so eingestellt, dass alle Markierungen, die in dem betreffenden Cluster enthalten sind, angezeigt werden. Quasi zoomen in den Cluster. Hier ein Beispiel dazu: http://google-maps-utility-library-v...e_example.html

    Hilft dir das weiter? Ansonsten könnte ich mal versuchen ein Beispiel in meiner Artikelserie zu erstellen.

    Schöne Grüße
    René
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  27. #27
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    Zitat Zitat von taktell81 Beitrag anzeigen
    Genau ich möchte die Marker in der GoogleMap mitfiltern, wenn ich den FE Filter einsetze. Das wäre doch auch ein sinnvolles Feature oder
    Ich hatte gehofft, dass das mm_filter_default Template mit deinem FE_GoogleMapsMarker TemplateCode an der richtigen Stelle ergänzt werden muss und dann lüppt dat. Wenn ich grundlegend falsch liegen sollte, baue ich auf Kapitel 10
    Besten Gruß
    @taktel81

    Ich habe jetzt mal mit den Frontendfiltern rumgespielt. Auf der Beispielseite http://metamodels.pyropixel.de gibt es jetzt ein Beispiel mit jQuery-Filter und ein Beispiel mit MM Frontendfilter. Ich muss jetzt meine Aussage revidieren, dass das mit jQuery und dem MM Frontendfilter funktioniert. Mit dem MM Frontendfilter ist das kein Problem, sogar recht einfach. Man muss nur den Filter, den man zum Funktionieren für den MM Frontendfilter benötigt, auch auf die GoogleMapsMarker anwenden.

    Mit jQuery habe ich das Problem, dass ich die Marker nicht im DOM mit jQuery ansprechen kann, weil Googles API die Marker nicht ins DOM erzeugt. Von daher ginge das nur mit JavaScript und der GoogleMaps API und man muss die Marker irgendwie ansprechen können um diese zu verstecken. Geht bestimmt irgendwie, ist gefühlt aber recht frickelig.
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  28. #28
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Hallo René,

    Zitat Zitat von raye Beitrag anzeigen
    Kennst du diesen Link: https://developers.google.com/maps/a...ymarkers?hl=de ?

    Vielleicht ist da was brauchbares dabei? Da erklärt Google unterschiedliche Arten des Clusterings und zusätzliche Alternativen.
    jo, die habe ich mir schon angesehen und leider keine Lösung gefunden.

    Zitat Zitat von raye Beitrag anzeigen
    Spontan fand ich den MarkerClusterer ganz charmant.
    Ich benötige das, da ich ca. 700 Einträge für etwa 2 Landkreise darstellen soll.
    Derzeit wird kein Clustering verwendet und dies macht die Geschichte mehr als unübersichtlich.

    Zitat Zitat von raye Beitrag anzeigen
    Allerdings kann man da keine Infoblasen anlegen, stattdessen wird beim Klick auf die Cluster-Markierung der Ausschnitt und Zoom so eingestellt, dass alle Markierungen, die in dem betreffenden Cluster enthalten sind, angezeigt werden. Quasi zoomen in den Cluster.
    Exakt dies ist mein Problem :-(
    Es muss aber irgendwie funktionieren > http://www.psop.fr/MAP_Population_Google.php

    Zitat Zitat von raye Beitrag anzeigen

    Hilft dir das weiter? Ansonsten könnte ich mal versuchen ein Beispiel in meiner Artikelserie zu erstellen.
    Wenn Du irgendwie eine Lösung siehst, dann würde mir schon ein Schubs in die richtige Richtung reichen - ein Artikel wäre allerdings genial :-)

    Gruß
    Hauge
    Geändert von Hauge (01.07.2014 um 10:40 Uhr) Grund: zusatzinfo

  29. #29
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    In deinem Beispiel haben die Cluster aber auch keine Infobox. Nur die Marker selber haben Infoboxen.
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  30. #30
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Zitat Zitat von raye Beitrag anzeigen
    In deinem Beispiel haben die Cluster aber auch keine Infobox. Nur die Marker selber haben Infoboxen.
    JO - korrekt, da hab ich mich vermutlich falsch ausgedrückt Dich falsch verstanden - sorry...
    Ich möchte nicht die Cluster mit Infoblasen versehen, sondern die Einträge selbst...
    Geändert von Hauge (01.07.2014 um 12:02 Uhr)

  31. #31
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

  32. #32
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Zitat Zitat von magicsepp Beitrag anzeigen
    Korrekt, das funktioniert auch - jedoch nur ohne das clustering.
    Das Clustering befindet sich in einer for-Schleife soweit ich richtig verstanden habe und verwendet als identifier für den marker den count.
    In den anderen ausgaben - also aus dem standardtemplate wird als identifier für die marker die id des eintrages verwendet.

    Mein Problem ist, dass ich es nicht hinkriege das clustering anhand der foreach-schleife mit den id's aus den metamodels zuzuordnen

  33. #33
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard Gelöst: clustering im Standardtemplate

    Ohne viele Worte:
    Code:
    <?php if ($this->items->getCount()): ?>
     
       <script>
       
        function gmap1_dynmap(gmap1) {
        var markers = [];
             <?php
            foreach($this->items->parseAll($this->getFormat(), $this->view) as $arrItem):
                $name        = htmlspecialchars($arrItem['text']['name'], ENT_QUOTES);
                $url         = $arrItem['raw']['url'];
                $geolocation = $arrItem['raw']['geolocation'];
                $address     = preg_replace( "/\r|\n/", "<br>", $arrItem['text']['address']);
                $id          = $arrItem['raw']['id'];
     
                $info  = '<div class="gmap-infobox-tip"></div>';
                $info .= '<div class="gmap-infobox-content">';
                $info .= '<p class="name">' .$name .'</p>';
                $info .= '<p><a target="_blank" href="' .$url .'">' .$url .'</a></p>';
                $info .= '<p>' .$address .'</p>';
                $info .= '</div>';
            ?>
     
                // Create Marker
                var gmap1_<?php echo $id; ?>_marker = new google.maps.Marker({
                  position: new google.maps.LatLng(<?php echo $geolocation; ?>),
                  map: gmap1,
                  title:"<?php echo $name; ?>",
                  icon: new google.maps.MarkerImage(
                    'files/blogger.png',
                    new google.maps.Size(20, 20),
                    new google.maps.Point(0,0),
                    new google.maps.Point(5,21)
                    ),
                    
                });
     markers.push(gmap1_<?php echo $id; ?>_marker);
                // Create InfoBox
                var gmap1_<?php echo $id; ?>_infobox1 = new InfoBox({
                  content: '<?php echo $info; ?>',
                  disableAutoPan: false,
                  maxWidth: 150,
                  boxClass: 'gmap-infobox',
                  pixelOffset: new google.maps.Size(-75, -5),
                  zIndex: null,
                  closeBoxMargin: '18px 8px 2px 2px',
                  closeBoxURL: 'http://www.google.com/intl/en_us/mapfiles/close.gif'
                });
                 
                // Create Event Listener
                google.maps.event.addListener(gmap1_<?php echo $id; ?>_marker, 'click', function() {
                  gmap1_<?php echo $id; ?>_infobox1.open(gmap1, this);
                });
                 
             <?php endforeach; ?>
             
    var markerCluster = new MarkerClusterer(gmap1, markers);
          }
    
       </script>

  34. #34
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    Ja genau. So sollte es gehen. Und klappt es auch?
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  35. #35
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    bei mir haut's bis jetzt hin.

    Habe die Datenbank noch nicht eingespielt, daher teste ich nur mit ein paar Einträgen - jedoch klappt es bisher.

  36. #36
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Hannover
    Beiträge
    83

    Standard

    Würde mich interessieren, wie da die Performance ist, bei ca. 700 Einträgen?
    www.pyropixel.de – Medienagentur für Print und Web
    MetaModels Tutorial Project

  37. #37
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Ich gebe Rückmeldung sobald die db drin ist - hab grad noch ein paar andere Baustellen.
    "Damals" im Catalog ging das so la la...
    Da liegt eben meine Hoffnung auf dem Clustering um das zu verbessern.
    Habe gelesen man kann das sogar iwi mit nachladen pro clusterausschnitt lösen - aber da sind wir noch nicht soweit

    Gruß
    Hauge

  38. #38
    Alter Contao-Hase Avatar von haendersonfox
    Registriert seit
    22.05.2012.
    Beiträge
    1.049

    Standard

    hallo hauge,

    ich habe alles nachgebaut. bei mir funktioniert das mit dem clustering nicht…

    was mach ich falsch?

    nehme ich das normale template, ohne cluster, zeigt er alle marker an…
    beim cluster-template jedoch nicht...

    lg.

  39. #39
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Zitat Zitat von alandgraf Beitrag anzeigen
    ich habe alles nachgebaut. bei mir funktioniert das mit dem clustering nicht…
    was mach ich falsch?
    nehme ich das normale template, ohne cluster, zeigt er alle marker an…
    beim cluster-template jedoch nicht...
    also da ist jetzt die Information doch etwas dünn um Dir da helfen zu können.
    Was hast Du genau nachgebaut?
    Das hier?: http://pyropixel.de/articles.html
    Das ist zunächst die Grundlage des Ganzen.

    Folgend gebe da nochmals nen groben Umriss was alles beachtet werden sollte:
    1. pyropixel.de/articles.html komplett nachbauen
    2. folgendes unter "Zusätzliche <head>-Tags ins layout:
    Code:
    <script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox.js"></script>
    <script src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer_compiled.js" type="text/javascript">
    Seite neu laden, um den Quelltext zu holen für: http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer_compiled.js
    </script>
    3. Deine Liste sollte in etwa so aussehen:
    1.JPG
    4. metamodel_googlemapsmarker.html5 anpassen (darauf achten, dass die items in die korrekte Karte geladen werden)
    Geändert von Hauge (03.08.2014 um 12:01 Uhr)

  40. #40
    Alter Contao-Hase Avatar von haendersonfox
    Registriert seit
    22.05.2012.
    Beiträge
    1.049

    Standard

    guten morgen hauge,

    es lag wirklich einzig und allein an dem marker-cluster-skript, welches im head eingebunden werden muss.

    ich habe mich für dieses hier entschieden und zack, funktionierte alles…
    <script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js"></script>

    wenn man den exkurs mit templates, MM und JS-anpassung durchprobiert hat, erscheint es relativ logisch und verständlich!

    lg.

    alex

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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