On Oct 13, 9:40 am, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
wrote:
> On Oct 13, 9:34 am, ramasaig <[EMAIL PROTECTED]> wrote:
> > 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"
> > [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).
>
> Yes, you need to include epoly.js.  Be sure to include it after the
> API script is included (you are including it before).
> You will also need to make your map and polygons global.
>
> var map;
> var polyNW, polyCT, polySE, polySW;
>
> before your load function, and remove the var before the map = ...
> inside it.

Like this:
http://www.geocodezip.com/holidaymullandiona_firstmapD.asp

  -- Larry

>
> > Latest try can be seen at 
> > :http://www.holidaymullandiona.co.uk/maps/firstmap.html
>
> > Tim- 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 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