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