On Oct 13, 4:42 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
wrote:
> On Oct 13, 8:33 am, ramasaig <[EMAIL PROTECTED]> wrote:
>
>
>
> > On Oct 13, 4:08 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
> > wrote:
>
> > > On Oct 13, 7:46 am, Mike Williams <[EMAIL PROTECTED]> wrote:
>
> > > > You could write something like this
>
> > > > GEvent.addListener(map, 'click', function(overlay, latlng) {
> > > >   if (overlay) {
> > > >     if (overlay instanceof GPolygon) {
> > > >       if (overlay.isHidden()) {
> > > >         overlay.show();
> > > >       } else {
> > > >         overlay.hide();
> > > >       }
> > > >     }
> > > >   }
> > > > });
>
> > > Does clicking on a hidden overlay work?
> > > I would have thought that would work for hiding the overlays, but not
> > > for showing them again.
> > >    -- Larry
>
> > You are right, it does hide the overlays, but won't show them again.
> > The click is detected, but 'if (overlay)' is now false (because it's
> > hidden, I assume ?).
>
> > This is only my second day on Google maps (though I've used JS
> > before), and I'm confused because I understood GPolygon had been made
> > clickable recently (v. 2.88). I had therefore expected something like:
>
> > GEvent.addListener(polygon, 'click', function(arguments) {....
> > would work, but clearly not.
>
> > You say I must _use_ the arguments.  OK, but I'm not sure how, other
> > than in the function.  I'll add 'overlaylatlng' as well
> > I'll try Mike Williams' script too.
>
> Try this (make your map variable and your polygon variables global):
> GEvent.addListener(map, 'click', function(overlay, latlng,
> overlaylatlng) {
> // GLog.write("map click ("+overlay+","+latlng+","+overlaylatlng+")");
>   if (overlay) {
>     if (overlay instanceof GPolygon) {
>       if (overlay.isHidden()) {
>         overlay.show();
>       } else {
>         overlay.hide();
>       }
>     }
>   } else if (latlng) {
>   if (polyNW.Contains(latlng)) {polyNW.show();}
>   if (polyCT.Contains(latlng)) {polyCT.show();}
>   if (polySE.Contains(latlng)) {polySE.show();}
>   if (polySW.Contains(latlng)) {polySW.show();}
>   }
>
> });
>
> The overlaylatlng argument is undefined sometimes, I don't understand
> why.  I though it was supposed to _always_ return a valid value.
>
>   -- Larry

As before, it hides the polygons but won't display them again.  When I
try I get a Firebug error ''polyNW.Contains is not a function"
If I expand the error I get:
W.Contains is not a function
(?)()()firstmap.html (line 120)
xg()()main.js (line 273)
li()()main.js (line 253)
l()main.js (line 86)
I()main.js (line 253)
SE()()main.js (line 650)
sF()()main.js (line 648)
G()()main.js (line 117)
xg()()main.js (line 273)
li()()main.js (line 253)
l()main.js (line 86)
I()main.js (line 253)
gu()()main.js (line 462)
ni()()main.js (line 256)
[Break on this error] if (polyNW.Contains(latlng)) {polyNW.show();}

I'm not sure if that's helpful !

Was I meant to include 'epoly.js' ?  I did so, and periodically get
another error from there, 'GPolygon is not defined' (line 56).

Latest try can be seen at : 
http://www.holidaymullandiona.co.uk/maps/firstmap.html

Tim
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to