Ergebnis 1 bis 26 von 26

Thema: Gelöst: Automatische Generierung von Geo-Koordinaten

  1. #1
    Contao-Fan Avatar von zwergschwein
    Registriert seit
    23.06.2009.
    Ort
    München
    Beiträge
    258
    User beschenken
    Wunschliste

    Standard Gelöst: Automatische Generierung von Geo-Koordinaten

    Hallo zusammen,

    ich versuche - oder eher - beiße mir gerade die Zähne aus, eine Geolocation-Generierung in MetaModels 2.x + Contao 3.2 umzusetzen.

    Ich habe es erst mit der Erweiterung von xtra versucht bzw. darüber die Generierung über die Maps-Auswahl zu machen. Nur leider scheint die Extension unter Contao 3 / MM2 keinerlei Wirkung zu zeigen :-(

    Dann habe ich mich an diesem Tutorial orientiert, aber auch damit - keinerlei Ergebnis.
    http://pyropixel.de/article-reader/m...al-part-3.html

    Wie ist denn der momentane Weg Geo-Koordinaten in MM zu erzeugen?


    Liebe Grüße,
    Marie
    Geändert von zwergschwein (16.12.2014 um 16:55 Uhr)

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    Moin,

    verstehe ich das "erzeugen" richtig, dass Du eine Adresse eingeben möchtest und in die DB die zwei Koordinaten eingespeichert werden sollen (z.B. über Google-API)?

  3. #3
    Contao-Fan Avatar von zwergschwein
    Registriert seit
    23.06.2009.
    Ort
    München
    Beiträge
    258
    User beschenken
    Wunschliste

    Standard

    Halo zonky,

    danke für deine schnelle Antwort

    Automatisch aus einer Adresse generieren (wie im Tutorial angedeutet) wäre natürlich für den Redakteur traumhaft.
    Aber auch der Kartenwähler im Backend von xtra ist eine denkbare Lösung. Wichtig ist nur, dass es für den Redakteur bedienbar bleibt. Der ist das bereits vom catalog gewöhnt und deshalb wäre es toll, wenn der Komfort an dieser Stelle nicht verloren geht.

    Lieben Gruß,
    Marie

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    Habe mir das Tutorial nochmal angesehen - leider bleibt es bei der "Andeutung"... :-(

    Wie das René umgesetzt hat, kann ich aus der Sache nicht raus lesen - in MM gibt es m.E. nix mit "Magic" was Spalten "adress" und "geolocation" automatisch triggert

    Aus dem Bauch würde ich auf einen Hook tippen, der per AJAX die Koordinaten bei Google abfragt.

    ... das https://contao.org/en/extension-list...olocation.html zum Einsatz kommt, wird zumindest nicht erwähnt

  5. #5
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    jesses...


    http://pyropixel.de/article-reader/m...al-part-8.html

    "Automatic Address to Geocoordinate Conversion"

    ;-)

  6. #6
    Contao-Fan Avatar von zwergschwein
    Registriert seit
    23.06.2009.
    Ort
    München
    Beiträge
    258
    User beschenken
    Wunschliste

    Standard

    Ahh... ich hatte wohl das allgemeine Tutorial verlangt - genau das hatte ich versucht

    Ich versuche gerade mal nachzuvollziehen, ob sich nicht irgendwas im Code der dlh_geocode Extension verändert hat - so gut sind meine PHP-Skills aber dann leider auch wieder nicht. Mal sehen...

    Ich vermute mal, die dcaconfig.php greift dann auf das ab Zeile 47 zu... https://github.com/delahaye/dlh_geoc...es/GeoCode.php
    Geändert von zwergschwein (16.12.2014 um 13:07 Uhr)

  7. #7
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    genau - man kann die Adresse natürlich auch in mehrere Textfelder unterbringen (Ort, PLZ, Strasse+Nr) bzw. Lat/Long auch in zwei separate Felder

    als Alternative könnte man auch https://github.com/MetaModels/filter_perimetersearch einsetzen

    und bezüglich Anzeige aus MM in GMap gibt es von der Konf2014 einen Foliensatz

  8. #8
    Contao-Fan Avatar von zwergschwein
    Registriert seit
    23.06.2009.
    Ort
    München
    Beiträge
    258
    User beschenken
    Wunschliste

    Standard

    Dann gucke ich mal in die Richtung. Gerade bin ich auch noch über das hier gestolpert :-)
    Jetzt muss es nur noch laufen... ^^

    https://github.com/delahaye/dlh_geoc...cs/Callback.md

  9. #9
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    sieht doch so aus, als ob man 90% per C&P zusammen schustern kann ;-)

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

    Standard

    Hi Marie,

    das geht damit prima. Die Anleitung baut zwar noch auf einer etwas älteren MM-Version auf, passt aber fast.

    Leg Dir die Felder strasse, plz, ort und koordinaten an und trage in die dcaconfig.php ein:

    Code:
    $GLOBALS['dlh_geocode']['address'] = array(
    	'format'            => '%s, %s %s',
    	'fieldformat'       => array(
    		'action' => 'get',
    		'name'   => 'id'
    		),
    	'fields_address'    => array('strasse','plz','ort'),
    	'field_country'     => '',
    	'field_language'    => '',
    	'field_geocode'     => 'koordinaten'
    	);
    
    $GLOBALS['TL_DCA']['mm_meineadressen']['fields']['koordinaten']['save_callback'][] = array('delahaye\GeoCode','callbackCoordinates');
    Die MM-Tabelle heisst hier "mm_meineadressen".

    Grüße,

    Christian
    Contao-Partner am Niederrhein
    Templating - Komplettservice - Erweiterungen
    Infos: http://delahaye.de

  11. #11
    Contao-Fan Avatar von zwergschwein
    Registriert seit
    23.06.2009.
    Ort
    München
    Beiträge
    258
    User beschenken
    Wunschliste

    Standard

    Yay! Das Snippet für die dcaconfig.php von Christian funktioniert einwandfrei! Ein Traum

    Anscheinend war bei mir noch eine alte Komponente (System-Migration), welche gestört hat... gelöscht und es geht

    Also für alle, die auch Geo-Koordinaten generieren wollen: dlh_geocode installieren, Felder erstellen und das Code-Snippet von christian in der dcaconfig.php übernehmen und glücklich sein!

    Danke euch

  12. #12
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    herzlichen Glühstrumpf!

  13. #13
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    @Christian: ich habe mir den Code mal angesehen - was ich vermisse oder nicht gefunden habe, eine Exception, wenn die Adresse nicht aufgelöst werden kann...

    z.B. http://gmaps-samples-v3.googlecode.c...2C%20Northpole

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

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    was ich vermisse oder nicht gefunden habe, eine Exception, wenn die Adresse nicht aufgelöst werden kann[/url]
    Jau, könnte man machen. Merci!
    Contao-Partner am Niederrhein
    Templating - Komplettservice - Erweiterungen
    Infos: http://delahaye.de

  15. #15
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Hallo Leute,

    ich habe versucht, diese Lösung für den Formular-Generator zu übernehmen. Leider ohne Erfolg!

    In meiner DCA-Config steht nun folgendes
    PHP-Code:
    $GLOBALS['dlh_geocode']['address'] = array(
        
    'format'            => '%s, %s %s',
        
    'fieldformat'       => array(
            
    'action' => 'get',
            
    'name'   => 'id'
            
    ),
        
    'fields_address'    => array('vstrasse','vplz','vstadt'),
        
    'field_country'     => '',
        
    'field_language'    => '',
        
    'field_geocode'     => 'geocode'
        
    );

    $GLOBALS['TL_DCA']['tl_formdata_details']['fields']['geocode']['save_callback'][] = array('delahaye\GeoCode','callbackCoordinates'); 
    Das funktioniert nun aber nicht. Habt Ihr vielleicht noch eine Idee?
    LG
    PAndroid

  16. #16
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    soll das ins BE oder FE?

  17. #17
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    soll das ins BE oder FE?
    Hallo Zonky,

    danke für Deine Nachfrage. Geplant ist folgendes:
    Nutzer geben im FE eine Adresse ein, die über Formular-Daten gespeichert werden. Ein Admin prüft das im BE und veröffentlicht den Eintrag.
    Daher würde es mir schon reichen, wenn beim Speichern im BE der GeoCode automatisch gesetzt würde. Der Knaller wäre es natürlich, wenn die Daten gleich beim Speichern des FE-Formulars generiert würden. Dann könnte man den Eintrag sogar ggf. gleich veröffentlichen.

    Hast Du einen Ansatz dafür?
    LG
    PAndroid

  18. #18
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    für FE würde ich eher was per Ajax basteln - ob im BE das mit der Erweiterung funktioniert, keine Ahnung :-(

    ggf. kommst Du hiermit besser weiter

    https://contao.org/de/extension-list...020009.de.html

    https://con4gis.org/

    https://contao.org/de/extension-list...000009.de.html

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

    Standard

    hi, du könntest in einer eigenen erweiterung eine js datei einbinden, mit welcher du die daten einfügst.

    also in der config.php eine javascript datei laden. wenn die koordinaten leer sind per google api die koordinaten holen und einfügen.

    Gesendet von meinem GT-I9505G mit Tapatalk

  20. #20
    Contao-Fan Avatar von ku-ma-122
    Registriert seit
    21.06.2009.
    Ort
    Kulmbach
    Beiträge
    605

    Standard

    Zitat Zitat von pandroid Beitrag anzeigen
    Hallo Leute,

    ich habe versucht, diese Lösung für den Formular-Generator zu übernehmen. Leider ohne Erfolg!

    In meiner DCA-Config steht nun folgendes
    PHP-Code:
    $GLOBALS['dlh_geocode']['address'] = array(
        
    'format'            => '%s, %s %s',
        
    'fieldformat'       => array(
            
    'action' => 'get',
            
    'name'   => 'id'
            
    ),
        
    'fields_address'    => array('vstrasse','vplz','vstadt'),
        
    'field_country'     => '',
        
    'field_language'    => '',
        
    'field_geocode'     => 'geocode'
        
    );

    $GLOBALS['TL_DCA']['tl_formdata_details']['fields']['geocode']['save_callback'][] = array('delahaye\GeoCode','callbackCoordinates'); 
    Das funktioniert nun aber nicht. Habt Ihr vielleicht noch eine Idee?

    Ich stand gerade vor dem gleichen Problemchen, mit

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_formdata']['fields']['geocode']['save_callback'][] = array('delahaye\GeoCode','callbackCoordinates'); 
    werden die Geokoordinaten gespeichert (Nur im BE getestet, da es der Kunde nicht im FE benötigt)
    Gruß
    Markus

    ---
    http://www.76pixel.de

  21. #21
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Zitat Zitat von ku-ma-122 Beitrag anzeigen
    Ich stand gerade vor dem gleichen Problemchen, mit

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_formdata']['fields']['geocode']['save_callback'][] = array('delahaye\GeoCode','callbackCoordinates'); 
    werden die Geokoordinaten gespeichert (Nur im BE getestet, da es der Kunde nicht im FE benötigt)
    Hallo ku-ma,

    ganz lieben Dank dafür. Das funktioniert nun auch bei mir prächtig.
    LG
    PAndroid

  22. #22
    Contao-Nutzer Avatar von steff74
    Registriert seit
    01.09.2009.
    Ort
    weinviertel, österreich
    Beiträge
    86

    Standard

    Hallo Leute,

    ich hole diesen Beitrag hervor, da ich die Geokoordinaten einer Adresse in einem Metamodel generieren lassen möchte, aber leider nicht weiter komme.

    - Contao 3.5.28
    - dlh_geocode
    - metamodels/bundle_all

    dcaconfig.php habe ich laut Beitrag von Christian (#10) angepasst.
    PHP-Code:
    $GLOBALS['dlh_geocode']['address'] = array(
            
    'format'            => '%s, %s %s',
            
    'fieldformat'       => array(
                    
    'action' => 'get',
                    
    'name'   => 'id'
            
    ),
            
    'fields_address'    => array('strasse','plz','ort'),
            
    'field_country'     => '',
            
    'field_language'    => '',
            
    'field_geocode'     => 'geolocation'
    );

    $GLOBALS['TL_DCA']['mm_verkaufsstellen']['fields']['geolocation']['save_callback'][] = array('delahaye\GeoCode','callbackCoordinates'); 
    Die Tabelle mm_verkaufsstellen existiert, ist befüllt und hat unter anderem die geforderten Felder strasse, plz, ort und geolocation.

    Leider werden die Geokoordinaten aber nicht gespeichert (siehe Anhang eines Testeintrages, dessen Adressangabe tatsächlich existiert).
    Hab ich irgendetwas übersehen/nicht verstanden?

    Vielen Dank für eure Hilfe!

    lg
    Stefan
    Angehängte Grafiken Angehängte Grafiken

  23. #23
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    geh mal in den Callback "callbackCoordinates" und teste mal, ob der ausgeführt wird...

    btw: sofern Du anschließend noch eine Umkreissuche (perimetersearch) einbauen möchtest, benötigst Du lat/long in zwei getrennten Attributsfeldern...

  24. #24
    Contao-Nutzer Avatar von steff74
    Registriert seit
    01.09.2009.
    Ort
    weinviertel, österreich
    Beiträge
    86

    Standard

    Hallo Zonky,

    danke für den Hinweis zu Umkreissuche, das könnte tatsächlich noch spruchreif werden.

    Das Script funktioniert, ich hatte fälschlicherweise das Feld "geolocation" in der Eingabemaske mit "nur lesen" markiert, um einer Manipulation vorzubeugen (was ja auch funktioniert hat...).

    Gut, dann mach ich mich auf die Suche nach der Geokodierung gesplittet in lat/lng

    Vielen Dank!

  25. #25
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.933
    User beschenken
    Wunschliste

    Standard

    "eleganter" wäre die Sache mit einem event_listeners zu lösen - dann könntest Du die Felder entsprechend befüllen bzw. auch abfragen, ob in lat/long schon was steht... ich würde die Möglichkeit einer manuellen Korrektur nicht verbauen, da nicht immer die korrekte Adressauflösung erfolgt...

  26. #26
    Contao-Nutzer Avatar von steff74
    Registriert seit
    01.09.2009.
    Ort
    weinviertel, österreich
    Beiträge
    86

    Standard

    Ich hab es mit einer eigenen Klasse gelöst, die nun die Felder lat/lng befüllt.
    Danke für die Anregungen!

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
  •