Catalog mit Google Map Anfahrtskarte

Aus Contao Community Documentation

Version vom 9. April 2011, 18:34 Uhr von Nina (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
betrifft
TYPOlight Version ab 2.8
Contao Version ab 2.9
Extensions Catalog bis 2.0.0 beta1

Catalog GoogleMap Anfahrtskarte einbinden

Es gibt viele Möglichkeiten, wie man für das Catalog Modul im Frontend bei den Einträgen eine GoogleMap Anfahrtskarte darstellt. Diese Anleitung beschreibt einen ganz einfachen Weg wie man die GoogleMap einbinden kann.

Koordinatenfelder in den Catalog-Eigenschaften (Backend)

Der erste Schritt ist das Hinzufügen von zwei neuen Feldern für die Eingabe der Koordinaten in den Catalog.

Eigenschaften für das 1. Feld:

  • Label: Breitengrad
  • Description: GoogleMap-Breitengrad eingeben
  • Column name: geocoord_breitengrad
  • Type: Text
  • Mandatory: anhaken

Eigenschaften für das 2. Feld:

  • Label: Längengrad
  • Description: GoogleMap-Längengrad eingeben
  • Column name: geocoord_laengengrad
  • Type: Text
  • Mandatory: anhaken

Wie in der Beschreibung angegeben, können die Backend-Nutzer auf der Internetseite http://www.mapcoordinates.net/de einfach die gewünschten Koordinaten herausfinden.

Catalog-Reader anpassen

Catalog Templates anpassen

Nun bearbeitet man im Backend das Template des Catalog-Readers (normalerweise catalog_full.tpl) und ergänzt dort an der gewünschten Stelle diesen Code zur Ausgabe der Anfahrtskarte. Die Größe der Karte, der Zoom-Faktor, etc. sind im Beispiel bereits vorgegeben. Natürlich kann das jeder nach seinen Bedürfnissen anpassen und den Code ergänzen.

<!-- indexer::stop -->
 
<?php
  // die Variable befuellen
  $cat_glob_coords = $entry['data']['geocoord_breitengrad']['value'] . "," . $entry['data']['geocoord_laengengrad']['value'];
?>
 
<div class="mod_cat_googlemaps block">
 
<div class="cat_googlemap block" id="cat_googlemap_1" style="width:590px;height:250px;">
<noscript>
  <p>
    <img src="http://maps.google.com/maps/api/staticmap?center=<?php echo $cat_glob_coords; ?>&amp;zoom=13&amp;maptype=roadmap&amp;sensor=false&amp;language=de&amp;size=590x250&amp;markers=<?php echo $cat_glob_coords; ?>" alt="" />
  </p>
</noscript>
</div>
 
<script type="text/javascript">
//<![CDATA[
 
function gmap1_initialize() {
	var gmap1_Options = {
		zoom: 13,
    center: new google.maps.LatLng(<?php echo $cat_glob_coords; ?>), 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    draggable: true, 
    disableDoubleClickZoom: true, 
    scrollwheel: true, 
    streetViewControl: true, 
    mapTypeControl: true, 
    mapTypeControlOptions: {
		  style: google.maps.MapTypeControlStyle.DEFAULT, 
      position: google.maps.ControlPosition.TOP_RIGHT, 
      mapTypeIds: [
			  google.maps.MapTypeId.ROADMAP
        ]
		}, 
    navigationControl: true, 
    navigationControlOptions: {
		  style: google.maps.NavigationControlStyle.DEFAULT,
			position: google.maps.ControlPosition.TOP_LEFT
    }, 
    scaleControl: true, 
    scaleControlOptions: {
		  position: google.maps.ControlPosition.BOTTOM_LEFT
    }
	}
  var gmap1 = new google.maps.Map(document.getElementById("cat_googlemap_1"), gmap1_Options);
  var gmap1_0_marker = new google.maps.Marker({
	  position: new google.maps.LatLng(<?php echo $cat_glob_coords; ?>), 
    map: gmap1, 
    zIndex: 1
  });
 
	if(window.gmap1_dynmap){
		gmap1_dynmap(gmap1);
	}
 
}
 
window.setTimeout("gmap1_initialize()", 500);
 
//]]>
</script>
 
</div>
 
<!-- indexer::continue -->

Aufruf für GoogleMap Anfahrtskarte ins Layout einbinden

Abschließend muss nun im Layout das auf der Catalog-Reader Seite genutzt wird, der Aufruf für GoogleMap eingebunden werden. Bearbeitet dazu das betroffene Layout (bei Layout -> Themes) und fügt in das Feld 'Zusätzliche <head>-Tags' folgendes ein:

Ungültige Sprache.

Die gewünschte Sprache muss wie folgt definiert werden: <source lang="html4strict">...</source>

Unterstützte Sprachen für die Syntaxhervorhebung:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


<script type="text/javascript" src="http://maps.google.com/maps/api/js?language=&sensor=false"></script>

Das war's! Wenn ihr jetzt die Details eines Catalog-Eintrages im Frontend aufruft, müsstet ihr die dazu passende Anfahrtskarte sehen (vorausgesetzt natürlich, ihr habt im Backend die Koordinatenfelder befüllt).

Ansichten
Meine Werkzeuge

Contao Community Documentation

God: "what is your job?"
me: "i am a software developer ... i develop websites with Contao 3"
God: "sounds cool, what are you working on today? Web sockets? Ajax? HTML5 video streaming?"
me: "no, i am trying to send an email ...."

Leo Unglaub
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge