some suggestions
 
you don't need to remove your kml_layer, you have only to refresh the layer
with the new url to the kmlfile.
 
you can delete OpenLayers.Strategy.BBOX, because a kmlfile is always loaded
in whole.

example how to refresh your layer
http://gis.ibbeck.de/ginfo/apps/OLExamples/OL212/protocol_refresh/protocol_r
efresh.asp
 
Regards,
Arnd
http://gis.ibbeck.de
 
 
  _____  

Von: [email protected]
[mailto:[email protected]] Im Auftrag von robertico
Gesendet: Samstag, 10. November 2012 06:52
An: [email protected]
Betreff: Re: [OpenLayers-Users] Problem dynamic loading a KML file (refresh)


After a night slogging, i found my solution;
I'd like to share my solution and any suggetion is appreciated.
I've created a function to add the (KML) vector layer;

        function AddLayer()

        {

                // If layer (kml_layer) already exists, remove it before
adding the new one

                if (kml_layer) 

                { 

                map.removeLayer(kml_layer); 

                //kml_layer.destroyFeatures();          // not sure if this
is necessary. Works well without it.

                }       

                

                // Get file name (.kml file) 

                filename = document.getElementById('theFile').value;

                

                kml_layer = new OpenLayers.Layer.Vector("KML", {

                        projection: map.displayProjection,

                        strategies: [new OpenLayers.Strategy.Fixed(),

                        new OpenLayers.Strategy.BBOX({resFactor: 1.1}),

                        //new OpenLayers.Strategy.Cluster()],           //
only usefull if you want to cluster your markers

                        protocol: new OpenLayers.Protocol.HTTP({

                                url: filename,

                                format: new OpenLayers.Format.KML({

                                        extractStyles: true,

                                        extractAttributes: true,

                                        maxDepth: 10

                                })

                        })

                });

                

                map.addLayer(kml_layer);

        }

Also added the function to the 'onClick' event of the button;

<input type="button" value="Show Markers" onClick="AddLayer()">

The hardest part was to find the right way to remove an existing layer.
Tried several examples but this one works well.



  _____  

View this message in context: Re:
<http://osgeo-org.1560.n6.nabble.com/Problem-dynamic-loading-a-KML-file-refr
esh-tp5015133p5015310.html> Problem dynamic loading a KML file (refresh)
Sent from the OpenLayers
<http://osgeo-org.1560.n6.nabble.com/OpenLayers-Users-f3910695.html> Users
mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to