Hi !
I'm trying to create a link on an image in a infobox to maximize the
content. I'm loading data from xml file (generate in php), and show n
markers (it's a reseler list).
But when i press on the img, i get a "map undefined"....really don't
understand why...
Thanks a lot for your help !
This is the code
-------------------------------------------------------
function readMap(nom,coordonnees,genre,zoomdyn,movezoom,map)
{
//affichage de la carte google
//icone pour marqueurs
var baseIcon = new GIcon();
baseIcon.shadow = "images/marker-shadow.png";
baseIcon.iconSize = new GSize(34, 53);
baseIcon.shadowSize = new GSize(52, 43);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);
var mapcenter;
var gmarkers = [];
var map = new GMap2(document.getElementById("map"), {mapTypes:
[G_NORMAL_MAP,G_PHYSICAL_MAP,G_SATELLITE_MAP]});
var topLeft = new GControlPosition(G_ANCHOR_TOP_LEFT, new
GSize(10,10));
var bottomLeft = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new
GSize(10,10));
map.addControl(new GMapTypeControl(), topLeft); //boutons
satellites, map, relief
map.addControl(new GSmallMapControl(),bottomLeft); //boutons
direction, zoom+, zoom-
//map.addControl(new GSmallZoomControl()); //zoom+, zoom-
seulement
map.addControl(new GScaleControl()); //échelle en bas
map.addControl(new GOverviewMapControl); //previsualisation de
la
map en bas à droite
map.enableDoubleClickZoom();
map.enableContinuousZoom();
var bounds = new GLatLngBounds();
GDownloadUrl("getXmlResellersDyn.php?nom="+nom
+"&coordonnees="+coordonnees+"&genre="+genre+"&zoomdyn="+zoomdyn
+"&movezoom="+movezoom,function(data, responseCode) {
var xmlDoc = GXml.parse(data);
var pos_lat =
xmlDoc.documentElement.getElementsByTagName("position")
[0].getAttribute("lat");
var pos_lon =
xmlDoc.documentElement.getElementsByTagName("position")
[0].getAttribute("lon");
var zoomf =
xmlDoc.documentElement.getElementsByTagName("position")
[0].getAttribute("zoom");
var nomcounty =
xmlDoc.documentElement.getElementsByTagName("position")
[0].getAttribute("nomcounty");
var moove =
xmlDoc.documentElement.getElementsByTagName("position")
[0].getAttribute("moove");
var markers =
xmlDoc.documentElement.getElementsByTagName("marker");
//zoom de la carte
zoomf = parseInt(zoomf);
map.getInfoWindow().hide();
map.clearOverlays();
//affichage de la carte google map (que s'il y a un
revendeur)
if (markers.length != 0)
{
var herep = new
GLatLng(parseFloat(pos_lat),parseFloat(pos_lon));
map.setCenter(herep, zoomf);
//evenement au mouvement de la carte
(deplacement en drag'n drop),
que si le nbre de revendeurs est supérieur à la limite
if(moove == "on")
{
if(affichMessage == 0) // on affiche le
message une seule foi
{
showMessage();
}
oldcoordcentre = map.getCenter();
var myEventMoove =
GEvent.addListener(map, 'dragend', function()
{
var newcoordcentre =
map.getCenter();
var newzoom = map.getZoom();
if (oldcoordcentre !=
newcoordcentre)
{
showWait();
//on supprime le
listener
GEvent.removeListener(myEventMoove);
//on reaffiche la
requete avec
readMap(nom,newcoordcentre,genre,newzoom,"on",map);
affichMessage = 1;
}
});
}
}
//listing des revendeurs
if (markers.length == 0)
{
alert("Désolé mais nous n'avons trouvé aucun
point de vente");
}
else
{
/* on place les revendeurs du département sur
la carte */
for (var i = 0; i < markers.length ; i++)
{
//recuperation des valeurs du xml
var lat =
parseFloat(markers[i].getAttribute("lat"));
var lon =
parseFloat(markers[i].getAttribute("lon"));
var point = new GLatLng(lat,lon);
var dealerID =
markers[i].getAttribute("dealerID");
var label =
markers[i].getAttribute("label");
var adresse1 =
markers[i].getAttribute("adresse1");
var cp =
markers[i].getAttribute("cp");
var ville =
markers[i].getAttribute("ville");
var ncounty =
markers[i].getAttribute("ncounty");
var tel =
markers[i].getAttribute("tel");
var fax =
markers[i].getAttribute("fax");
var site =
markers[i].getAttribute("site");
var email =
markers[i].getAttribute("email");
//info pour le tracking
var tracking = cp+'/'+dealerID;
//contenu html bulle info revendeur
var html = "<table width='328'
border='0' cellspacing='0'
cellpadding='0'><tr>"
+ "<td height='25' valign='top'
style='color:#999999;font-size:
15px'>"+label+"<a
href='javascript:map.getInfoWindow().maximize()'><img src='images/
streetview.png' valign='middle' alt='StreetView' title='StreetView'
border='0'></a></td></tr><tr>"
+ "<td height='180' align='left'
valign='top' background='images/
back-adresse.gif' style='padding-left:5px;'><p
style='display:block;float:left;width:160px;margin-top:
5px;'>"+adresse1+"<br>";
html = html +cp+" "+ville+"<br>Tél :
"+tel+"<br><br>Ouvert du
lundi au samedi de 8h / 20h<br>Dimanche 8h / 14h</p><img src='ph-
points/3.jpg' border='0' style='display:block;float:left;width:
152px;margin-left:5px;margin-top:3px;'></td></tr>"
+ "</table>";
html += '<a href="#"><img
src="images/picto-imprimer.gif"
width="90" height="26" style="display:block;float:left;width:90px;"
alt="Imprimer" title="Imprimer" onclick="printwindow(\''+dealerID
+'\')" border="0"></a>';
if (email != "" ){
html += "<a href='mailto:"+email+"'
target='_blank'><img
src='images/picto-contactez.gif' width='103' height='26'
style='display:block;float:left;width:103px;margin-left:10px'
border='0'></a>";
}
if (site != "" ){
html += "<a href='http://"+site+"'
target='_blank'><img
src='images/picto-siteinternet.gif' width='120' height='26'
style='display:block;float:left;width:120px;margin-left:10px'
border='0'></a>";
}
var a = i+1;
//formulaire pour l'itinéraire
var formulaire_itineraire ='<div
style="width:328px; height:
200px;">' +
'<form name="formiti" action="#"
onsubmit="setDirections(this.from.value, this.to.value,
this.locale.value, \''+tracking+'\'); return false">' +
' <table width="328">' +
' <tr>' +
' <td
colspan="2"><b>Adresse de départ</b></td>' +
' </tr>' +
' <tr>' +
' <td
colspan="2"><input type="text" size="25" id="fromAddress"
name="from" value=" " style="width:300px; height:20px; border:1px
solid #a5a5a5;" /></td>' +
' </tr>' +
' <tr>' +
' <td
colspan="2"><br><b>Adresse d\'arrivée</b></td>' +
' </tr>' +
' <tr>' +
' <td colspan="2"
bgcolor="#c0c0c0">'+label+'<br /
>'+adresse1+'<br />'+cp+' '+ville+'</td>' +
' </tr>' +
' <tr>' +
' <td
colspan="2"><br><br><input type="hidden" id="locale"
name="locale" value="fr"><input type="hidden" id="toAddress" name="to"
value="'+lat+', '+lon+'" /><input type="image" src="images/btn-
itineraire.gif" /></td>' +
' </tr>' +
' </table>' +
'</form>' +
'</div>';
var letteredIcon = new GIcon(baseIcon);
//letteredIcon.image =
"markers/icons-r" + index + ".png";
letteredIcon.image = "markers/icon.png";
markerOptions = { icon:letteredIcon };
var marker = new GMarker(point,
markerOptions);
var infoTabs = [
new GInfoWindowTab("Détails", html),
new GInfoWindowTab("Itinéraire",
formulaire_itineraire)
];
GEvent.addListener(marker, "click",
function() {
//pageTracker._trackEvent('Bulle','Map',track);
var maxContentDiv =
'<div><iframe src="streetview.php?lat='+lat
+'&lon='+lon+'" width="660" height="345" frameborder="0"
scrolling="no"></iframe></div>';
marker.openInfoWindowTabsHtml(infoTabs,
{
/* maxContent : permet de
définir le contenu devant s'afficher
dans l'info-bulle lorsque celle-est agrandie */
maxContent: maxContentDiv,
/* maxTitle : permet de définir
le titre devant s'afficher dans
l'info-bulle lorsque celle-est agrandie */
maxTitle: "Street View"
}
);
});
map.addOverlay(marker);
bounds.extend(point);
}
}
clearWait();
});
}
--
You received this message because you are subscribed to the Google Groups
"Google Maps API" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-maps-api?hl=en.