da ich eben bei 3 Projekten das Problem hatte das die Karte, die mit dem Google Maps Modul generiert wird nicht angezeigt werden konnte und immer mit dem Fehler "gclientgeocoder is undefined" beendet wurde, habe ich mich mal schlau gemacht.
Es liegt wohl daran das dass Google Maps Modul http://www.redaxo.de/165-Moduldetails.h ... ule_id=132 für die Version 2 der API erstellt wurde. Aktuell ist Google bei der V2.89. Bei dieser Version scheint der Geocoder nicht mehr zu funktionieren.
Man muss dem Modul explizit sagen das die Version 2 genommen werden soll.
Alt:
Code: Alles auswählen
src="http://maps.google.com/maps?file=api&v=2&key=ABCD" type="text/javascript"
Dazu wird api&v=2 zu api&=v2.s geändert und das sieht komplett so aus:
Code: Alles auswählen
src="http://maps.google.com/maps?file=api&v=2.s&key=ABCD" type="text/javascript"
Code: Alles auswählen
<script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2.s&key=REX_VALUE[4]"></script>
<div style="display: block; width: 100%; height: 300px; visibility: hidden;" id="map"></div>
<script type="text/javascript">
function showAddress(address, text, zoom)
{
var div = document.getElementById("map");
var geocoder = new GClientGeocoder();
var map = new GMap2(div);
map.addControl(new GLargeMapControl());
geocoder.getLatLng(address,
function(point)
{
if (!point)
{
div.style.visibility = 'hidden';
alert(address + " nicht gefunden");
}
else
{
map.setCenter(point, zoom);
var marker = new GMarker(point);
GEvent.addListener(marker, "mouseover", function()
{
marker.openInfoWindowHtml(text);
});
GEvent.addListener(marker, "mouseout", function()
{
map.disableInfoWindow();
map.enableInfoWindow();
});
map.addOverlay(marker);
marker.openInfoWindowHtml(text);
window.setTimeout(function()
{
map.disableInfoWindow();
map.enableInfoWindow();
}, 4000);
}
}
);
div.style.visibility = 'visible';
}
<?php
echo 'showAddress(\'REX_VALUE[1]\', \''.html_entity_decode('REX_VALUE[2]').'\', REX_VALUE[3]);';
?>
</script>
Gruß
Ronny