Hoi,

On Tue, Jun 01, 2010 at 08:52:32AM +0200, Florian Lohoff wrote:
> Ich benutze einen OpenLayers Vector Layer:
> 
> http://dev.openlayers.org/releases/OpenLayers-2.9.1/doc/apidocs/files/OpenLayers/Layer/Vector-js.html
> 
> und lade die Daten via GeoJSON nach:
> 
> http://dev.openlayers.org/releases/OpenLayers-2.9.1/doc/apidocs/files/OpenLayers/Format/GeoJSON-js.html
> 
> Der code sieht dann vereinfacht so aus:
> 
>       geojsonparser = new OpenLayers.Format.GeoJSON();
>       vector = new OpenLayers.Layer.Vector("data");
>       map.addLayer(this.vector);
> 
> Beim pan'nen oder zoomen gibts dann nen callback in dem ich via ajax daten 
> nachlade die
> das CGI Script (perl) mit JSON.pm rausnudelt. Die parse ich dann mit dem 
> parser uns schiebe
> die in den vector layer:
> 
>       var features = geojsonparser.read(result.responseText);
>       vector.destroyFeatures();
>       vector.addFeatures(features);

Das geht noch einfacher mit den Strategies die OpenLayers mitliefert.
Etwa so:

vector = new OpenLayers.Layer.Vector("data", {
                                strategies: [new 
OpenLayers.Strategy.BBOX({ratio : 1})],
                                                                                
protocol: new OpenLayers.Protocol.HTTP({
                                                                                
                  url: "http://www.foo.com/bar";,
                                                                                
                                                format: new 
OpenLayers.Format.GeoJSON()
                                                                                
                                })
                                                                                
});

Das macht dann das Nachladen automatisch, wenn die Karte bewegt oder
gezoomt wird.

Gruss

Sarah

_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an