On Jun 2, 10:29 am, "[email protected]" <[email protected]>
wrote:
> On Jun 2, 9:43 am, "[email protected]" <[email protected]>
> wrote:
>
> > On Jun 2, 7:14 am, duffnut <[email protected]> wrote:
>
> > > the version with the bug, but that does load can be found 
> > > herehttp://thefoodcycle.org/projects/(thesiteis WIP, and the address is
> > > not to be shared far and wide yet)
>
> > You are not getting function closure on your infowindow variable
> > (because there is no createMarker function to get closure...), so it
> > always ends up with the last markers contents and associated with the
> > last marker.
>
> > It probably would be more useful if you had posted a link to the map
> > where you tried to get function closure but it didn't work.
>
> It works for me if I add the createMarker 
> function:http://geocodezip.com/thefoodcycle_org_projectsA.html
>
> (I haven't put in the v2 infowindow behavior, but that is in the
> examples on geocodezip.com, wouldn't be hard to add)

http://geocodezip.com/thefoodcycle_org_projectsB.html
with the "v2 infowindow behavior"...

   -- Larry

>
>
>
>
>
> >   -- Larry
>
> > > and I've been looking at that example and this 
> > > onehttp://code.google.com/apis/maps/documentation/javascript/examples/ev...
>
> > > I've been through it so many times, I've lost the ability to find bugs
> > > right now...
>
> > > thanks for having a look,
>
> > > Donat
>
> > > On Jun 2, 1:53 pm, "[email protected]" <[email protected]>
> > > wrote:
>
> > > > On Jun 2, 5:22 am, duffnut <[email protected]> wrote:
>
> > > > > I have the classic scenario of wanting multiple markers with different
> > > > > info windows held in an array.
> > > > > I was having a problem with closures (like this 
> > > > > guyhttp://groups.google.com/group/google-maps-js-api-v3/browse_thread/th...),
> > > > > so I found examples and read up and tried to fix it. Every time I set
> > > > > up the add listener event in a different function, the map stopped
> > > > > loading completely
> > > > > My code follows, the section between /*--*/'s is the new bit that
> > > > > breaks it, and the // commented bits are what I had before that didn't
> > > > > work as I wanted, but let the map load at least. I've tried copying
> > > > > other peoples code, writing it myself, and every time I have the same
> > > > > problem. Any mistakes standing out?
>
> > > > > Thanks in advance, I'll appreciate any help :)
>
> > > > Do you have a link to your map?  It is hard to debug code dumps.
>
> > > > Looks to me like your infowindow variable needs to be in the global
> > > > context though...
>
> > > > You could try comparing it to this example (which may be what you are
> > > > talking about):http://www.geocodezip.com/v3_markers_infowindows.html
>
> > > >   -- Larry
>
> > > > > <script type="text/javascript">
> > > > >   google.load("maps", "3",  {other_params:"sensor=false"});
>
> > > > >   function initialize() {
> > > > >     var myOptions = {
> > > > >       zoom: 5,
> > > > >       center: new google.maps.LatLng(54.6738, -4.2188),
> > > > >       mapTypeControl: false,
> > > > >       mapTypeId: google.maps.MapTypeId.ROADMAP
> > > > >     };
> > > > >     var map = new
> > > > > google.maps.Map(document.getElementById("map_canvas"), myOptions);
> > > > >     var infoWindow = new google.maps.InfoWindow();
>
> > > > >   setMarkers(map, projects);
>
> > > > > }
>
> > > > > /*--*/
> > > > >   var image = new google.maps.MarkerImage('images/icons/flag.png',
> > > > >       new google.maps.Size(20, 32),
> > > > >       new google.maps.Point(0,0),
> > > > >       new google.maps.Point(4, 30));
> > > > >   var shadow = new google.maps.MarkerImage('images/icons/shadow.png',
> > > > >       new google.maps.Size(37, 32),
> > > > >       new google.maps.Point(0,0),
> > > > >       new google.maps.Point(0, 32));
>
> > > > > function createMarker(map, latlng, title, zIndex, content) {
> > > > >     var marker = new google.maps.Marker({
> > > > >         position: myLatLng,
> > > > >         map: map,
> > > > >         icon: image,
> > > > >         shadow: shadow,
> > > > >         title: title,
> > > > >         zIndex: zIndex
> > > > >     });
> > > > > //     var infowindow = new google.maps.InfoWindow({
> > > > > //         content: '<p style="color:black; align:center;"><b>'+label
> > > > > +'</b><br/>'+content+'</p>'
> > > > > //     });
> > > > >     new google.maps.event.addListener(marker, 'click', function() {
> > > > >         var stringy = '<p style="color:black; 
> > > > > align:center;"><b>'+label
> > > > > +'</b><br/>'+content+'</p>';
> > > > >         infowindow.setContent(stringy);
> > > > >         infowindow.open(map, marker);
> > > > >     });}
>
> > > > > /*--*/
>
> > > > > var projects = [
> > > > >   ['London', 51.5002, -0.1262, 4, 'test 1'],
> > > > >   ['Bristol', 51.4553, -2.5919, 3, 'test 2'],
> > > > >   ['Norwich', 52.6281, 1.2993, 2, 'test 3'],
> > > > >   ['Edinburgh', 55.9502, -3.1875, 1, 'test 4'],
> > > > > ];
>
> > > > > function setMarkers(map, locations) {
> > > > > //   var image = new google.maps.MarkerImage('images/icons/flag.png',
> > > > > //       new google.maps.Size(20, 32),
> > > > > //       new google.maps.Point(0,0),
> > > > > //       new google.maps.Point(4, 30));
> > > > >   for (var i = 0; i < locations.length; i++) {
> > > > >     var project = locations[i];
> > > > >     var myLatLng = new google.maps.LatLng(project[1], project[2]);
> > > > >     var marker = createMarker(map, myLatLng, project[0], project[3],
> > > > > project[4]);
> > > > > //     var marker = new google.maps.Marker({
> > > > > //         position: myLatLng,
> > > > > //         map: map,
> > > > > //         icon: image,
> > > > > //         title: project[0],
> > > > > //         zIndex: project[3]
> > > > > //     });
> > > > > //     var infowindow = new google.maps.InfoWindow({
> > > > > //         content: '<p style="color:black;">'+project[4]+'</p><br />'
> > > > > //     });
> > > > > //     new google.maps.event.addListener(marker, 'click', function() {
> > > > > //         infowindow.open(map,marker);
> > > > > //     });
> > > > >   }}
>
> > > > >   google.setOnLoadCallback(initialize);
> > > > > </script>- Hide quoted text -
>
> > > - Show quoted text -- Hide quoted text -
>
> > - Show quoted text -- Hide quoted text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" 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-js-api-v3?hl=en.

Reply via email to