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 <[EMAIL PROTECTED]>
Date: 05.07.2007 10:33
Subject: Problem with GML features
To: users@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
_______________________________________________
Users mailing list
Users@openlayers.org
http://openlayers.org/mailman/listinfo/users

Reply via email to