Hoi,
Ben al de hele dag aan het pielen op een scriptje dat meerdere google maps op eenzelfde pagina toont. In principe moet dat een onbeperkt aantal ondersteunen. De bedoeling is dat een gebruiker op de kaartjes een locatie kan aangeven met een marker, en dat deze positie wordt opgeslagen in de db.
Mijn opzet is om voor elke locatie een canvas-divje en een input (hidden) in een form te plaatsen. Het javascriptje moet na onload alle divjes omzetten in een google map. Als een gebruiker een marker zet dan wordt de locatie overgenomen en in de value van het input veld geplaatst.
Met 1 map op de pagina werkt dat prima, met meerdere wordt het lastig. Mijn probleem is dat ik niet weet hoe ik in de events kan achterhalen welke map het event triggerde.
Nou lijkt dit me geen rocketscience, maar als ik de (V3) API lees dan heeft event maar 1 property, nl LatLng. Heb al vanalles geprobeerd (event.id enz), maar ik vind em nergens terug.
Iemand enig idee?
Ben al de hele dag aan het pielen op een scriptje dat meerdere google maps op eenzelfde pagina toont. In principe moet dat een onbeperkt aantal ondersteunen. De bedoeling is dat een gebruiker op de kaartjes een locatie kan aangeven met een marker, en dat deze positie wordt opgeslagen in de db.
Mijn opzet is om voor elke locatie een canvas-divje en een input (hidden) in een form te plaatsen. Het javascriptje moet na onload alle divjes omzetten in een google map. Als een gebruiker een marker zet dan wordt de locatie overgenomen en in de value van het input veld geplaatst.
Met 1 map op de pagina werkt dat prima, met meerdere wordt het lastig. Mijn probleem is dat ik niet weet hoe ik in de events kan achterhalen welke map het event triggerde.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| var map = new Array(); var marker; function init_gmap() { //init maps var mapzz = getElementsByClassName("gmapform", document, "DIV"); if ( mapzz ) { for ( i=0; i<mapzz.length;i++ ) { var loc = document.getElementById(mapzz[i].id.replace("_gmap", "")).value; if ( loc == "" ) { loc = "0,0"; } loc = loc.split(","); var latlng = new google.maps.LatLng(loc[0],loc[1]); var myOptions = { zoom: 7, center: latlng, mapTypeId: google.maps.MapTypeId.HYBRID }; map[i] = new google.maps.Map(mapzz[i], myOptions); google.maps.event.addListener(map[i], 'click', function(event) { alert("hier wil ik de id van het canvas alerten");}); } } } |
Nou lijkt dit me geen rocketscience, maar als ik de (V3) API lees dan heeft event maar 1 property, nl LatLng. Heb al vanalles geprobeerd (event.id enz), maar ik vind em nergens terug.
Iemand enig idee?
[ Voor 1% gewijzigd door xilent_xage op 19-11-2010 16:12 . Reden: stukje code vergeten + typo ]