[OpenLayers-Users] Fwd: Problem with GML features

Dmitri Mizerkin eisberg at gmail.com
Fri Jul 6 03:54:19 EDT 2007


Hi!

I haven't got any reaction to my previous mail, so I'm trying to point your
attention to my problem again in this follow-up.
The problem is: after loading a GML layer the features collection of the
layer stays empty (at least for some time), which means that there's no way
to handle those in the loadend-event of the layer. Is there another event,
which is raised after the features collection of the loaded layer is
initialized? Is there any rational workaround?

My next action would be setting up a timer with the setTimeout(...) function
and trying to access the features collection after some time interval hoping
that the features are finally loaded. However, this seems to be a very
hardcoded solution.

Cheers,
Dmitri Mizerkin

---------- Forwarded message ----------
From: Dmitri Mizerkin <eisberg at gmail.com>
Date: 05.07.2007 10:33
Subject: Problem with GML features
To: users at openlayers.org

Hello everybody!

I'm experiencing problems with handling the features of a GML layer, which
is loaded when the page is opened. The problem is that after the 'loanend'
event is raised, the features-property of the layer stays empty for some
more time, so there is no way to examine the features in this handler. In my
case I need to extract the bounds-properties of the features to construct an
common bounds-object for zooming (the action should simulate feature
selection and zooming to the selection).

Any ideas, how this could work?

Here's my code snapshot:

function SelectFeature() {
  var layer = GetLayerByName(FEATURE_LAYER); //returns a MapServer layer to
send a request on
  if (layer == null)
    return;
  var selection_url = CreateWFSGetFeatureRequest(layer, FIELD_NAME,
FIELD_VALUE); //creates a WFS GetFeature-request
  if ((selection != null)&&(selection.map != null)) {
    OLMap.removeLayer (selection);
    selection = null;
  }
  selection = new OpenLayers.Layer.GML("Selected Objects", selection_url);
  OLMap.addLayer(selection);
  selection.displayInLayerChooser = false;
  selection.events.register ("loadend", selection, ZoomToSelection);
  selection.events.triggerEvent("loadend");
}

function ZoomToSelection() {
  var bounds = ComputeSelectionBounds();
  if (bounds == null)
    return;
  OLMap.zoomToExtent(bounds);
}

Thanks in advance!

-- 
Regards,
Dmitri

-- 
Gruß,
Dmitri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20070706/13ab6158/attachment.html


More information about the Users mailing list