Hello,

In my app I've several kml layers and I'd like to set a priority
between thems. I've a kmz service an a advanced javascript control
layer. You can't check it on http://golfvision.nearsur.es/mapa/

Layer A: background layer with a big polygon.
Layer B: markers to draw over layer A.

I need to force layer B will be always drawn after layer A, because if
layer A is drawn after layer B it's not possible to click over the
markers.

I've found anything on api doc about how several kmls are drawn. I
think (according to I've could find out) google maps draws kmls
asynchronously. Is that correct? Could anyone confirm that?

My first approach was call to layer setMap in a correct order.

// order layers by priority. The Bubble Sort method.
var i,j;
for(i = 0; i < this.layers.length; i++)
{
        for(j = 0; j < (this.layers.length-1); j++)
        {
                if(this.layers[j].priority > this.layers[j+1].priority)
                {
                        var holder = this.layers[j+1];
                        this.layers[j+1] = this.layers[j];
                        this.layers[j] = holder;
                }
        }
}

for(i=0; i<this.layers.length; i++)
{
       if ( this.layers[i].isVisible(this.mashup.map) )
        {
                this.layers[i].layerObj.setMap(this.mashup.map);
        }
        else
        {
                this.layers[i].layerObj.setMap(null);
        }
}

This works fine if the time of drawn of each kml is very very simiiar.
This time of draw is defined by the time of google to download the
source kmz file and the time of draw it. I think this happens because
of google maps draws kmls asynchronously

Now I'm doing lots of workaround to fix this but these ones are not
good on performance. E.g: activate/desactivate layers after
metada_changed event.

this.layerObj = new google.maps.KmlLayer(url,gkmlOpts);

google.maps.event.addListener(this.layerObj, "metadata_changed",
function(){
    ...
});

-- 
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 google-maps-js-api-v3@googlegroups.com.
To unsubscribe from this group, send email to 
google-maps-js-api-v3+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-maps-js-api-v3?hl=en.

Reply via email to