[OpenLayers-Users] GeoJSON layer on top of google - repeated load of features

Adorian Ardelean mynature at gmail.com
Tue Jul 1 18:01:28 EDT 2008


Hi,

First of all thank you for the prompt suggestion. Worked perfectly and I was
able to include also a style to work with properties defined within GeoJSON
file:
*
specimens = new OpenLayers.Layer.GML("specimens", "geojson.php", {format:
OpenLayers.Format.GeoJSON, projection: new
OpenLayers.Projection("EPSG:4326"), styleMap: new
OpenLayers.StyleMap(style)});*

The situation I've encountered now is that data from this layer has to be
regenerated with every zoomend event (I do some clustering on server side to
limit the number of features to less than 100 points - the return could be
easily in hundreds or more). The part with zoomend event I can handle.
However, I do not know what is the best strategy to handle this situation
further:

1. delete the whole layer and recreate a new GML layer (using code above)
every time? This produces some problems in handling controls (as I interpret
from reaction of the scripts). The controls dedicated to layer "specimens"
does not function anymore. I have to redeclare it again.

2. create a vector layer and load and delete features with zoom events
without removing layer and controls.

For second solution I have found the piece of code below, (which also works)
but returns me to the initial question how do I specify in this context
projection an style parameters?:

*OpenLayers.loadURL("geojson.php", {}, null, styleMap: new
OpenLayers.StyleMap(style)}, onLoadgml, onLoadFailedgml);

function onLoadgml(r) {
     if (r.status == 200) {
        var p = new OpenLayers.Format.GeoJSON();
         var f = p.read(r.responseText);
         specimens.addFeatures(f);
     }
}*
*
....

*I would somehow prefer the second strategy. Could somebody give me a hint
on how to include *{format: OpenLayers.Format.GeoJSON, projection: new
OpenLayers.Projection("EPSG:4326")* in script so that OL renders vector
features at the right place*?

*All the best,
Adorian

On Sat, Jun 28, 2008 at 5:32 PM, Christopher Schmidt <
crschmidt at metacarta.com> wrote:

> On Sat, Jun 28, 2008 at 04:39:19PM +0200, Adorian Ardelean wrote:
> > Hi,
> >
> > I am trying to load a GeoJSON file in a layer on top of a google map
> > (OpenLayers 2.6).
> >
> > I used for now:
> > var colfeatures = new OpenLayers.Layer.GML("specimens", "geojson.php",
> > {format: OpenLayers.Format.GeoJSON});
> > map.addLayer(colfeatures);
> >
> > Entities show up on the map somewhere close to 0,0. For other vector
> > entities (coordinates) I push through code this is solved with
> >
> > var g = new OpenLayers.Projection("EPSG:4326");
> > var p = new OpenLayers.Projection("EPSG:900913");
> >
> > and .tranform(g,p)
> >
> > but I do not know how to apply this directly on features read from
> GeoJSON.
> > Is there a way to loop through all entities in colfeatures and apply
> > transform(g.p) or can somebody suggest me a better approach?
> {format: OpenLayers.Format.GeoJSON} ->
>  { format: OpenLayers.Format.GeoJSON,
>   projection: new OpenLayers.Projection("EPSG:4326")
>  }
>
> Regards,
> --
> Christopher Schmidt
> MetaCarta
>


http://mybiosis.info
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20080702/da49e638/attachment.html


More information about the Users mailing list