I have created a map that allows the user to toggle KML layers on and
off. In order to keep them in a specific stacking order, I've used
code that will hide and show all of the layers in the order I want
them whenever a layer is turned on (turning layers off doesn't change
the stacking order, but turning a layer on puts it in the front
without my code that then puts new layers in the front).

The code works fine in Chrome and Firefox and (I believe) in IE. But
in Safari (at least on a Mac), toggling a particular layer causes the
browser to report:
TypeError: Result of expression 'd' [undefined] is not an object
and proceed to draw the map. The second time I toggle the layer (and
every time thereafter), I get
TypeError: Result of expression 'a.ib' [undefined] is not an object.

These TypeErrors are being thrown by the 'buildings' layer.

My map implementation is at 
http://foothill-web-gis.googlecode.com/svn/trunk/webgis/fhwebmapdemo.html
. To reproduce the error, unfold the 'Layers' tab (top right) and turn
buildings off and on again. Leave the other layers as is; turning any
layer off causes the bug to go away.

When you toggle the buildings layer on, here is what happens
(confirmed with the debugger in Chrome and the one in Safari):
this.layers.buildings.setMap(map)
" rooms3
" restrooms
" elevators
" rooms2
" restrooms
" elevators
" rooms3
" restrooms
Error occurs here, preventing the rest of the sequence from occurring
(and, since setMap is asynchronous, it also prevents rooms3 from
displaying, as well as the second time around on elevators)
" elevators
done.

The reason that restrooms and elevators are shown three times is that
the code doesn't have any way of knowing whether the calling function
is going to call it for rooms3, rooms2 and rooms1, or just rooms3, &c.

The brain dump of how the layer stacking manager works is at
http://foothill-web-gis.googlecode.com/svn/docs/layerStacking.txt .

Thanks for any help, I really appreciate it.
Matt

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