|
From: Edwin C. <com...@gm...> - 2009-03-05 10:43:22
|
Hi there,
Selecting features happens with a control in OpenLayers. I saw in the
GWT-OpenLayers codebase that we are not yet wrapping the SelectFeature
control. By default the SelectFeature selects features on click and you can
pass it options to select on hover.
So:
(1) we need to add support for the select feature control => ADDED 5 min ago
I added a wrapper for SelectFeature, but did not thoroughly test it... Maybe
you can try it out.
One caveat: The onSelect and onUnselect callback methods do not hook in with
the broader OpenLayers event system. By the latter I mean that for example
Vector (a vector layer object) has an Event object to register and
unregister events, while the onSelect and onUnselect are just callback
methods of the Control. This is why I added the Listener interfaces to the
Control itself and this is why the methods onSelectFeature and
onUnselectFeature return a JSObject which is a VectorFeature that you have
to narrow to a VectorFeature yourself inside the method e.g.
new SelectFeatureListener(){
public void onSelectFeature(JSObject vectorFeature) {
VectorFeature vf =
VectorFeature.narrowToVectorFeature(vectorFeature);
}
(2) you then need to add a button to activate the SelectFeature control (and
deactivate the other editing controls).
Point (2) could be realised in two ways: (a) you should create your own
editing toolbar using GWT (b) we could support adding controls to the
Editing Toolbar. Option 2b is not yet in OpenLayers, but would not be very
difficult to support this in GWT-OpenLayers. I guess that most people want
an editing toolbar like this one:
http://crschmidt.net/mapping/wpserverdemo/
I will look into point 2b shortly, but cannot promise to have anything ready
overnight.
Greetings,
Edwin
2009/3/4 Brendan Grady <bre...@gm...>
> Hello,
>
> New user to gwt-openlayers.
>
> Does anyone have an example of adding a "select" listener to a Vector
> layer? I am adding vectors using the Editing Toolbar.
>
> In openlayers, I would add something like the following:
>
> selectControl = new OpenLayers.Control.SelectFeature(overlayLayer,
> {onSelect: onFeatureSelect, onUnselect: onFeatureUnselect});
>
>
> I tried the following, but I think I need to add something else to the map
> to make the layer "selectable" as it does not seem to register that I am
> over a selectable vector:
>
> <snip>
> Vector overlayLayer = new Vector("Overlay Creation Layer");
> map.addLayer(overlayLayer);
> map.addControl(new EditingToolbar(overlayLayer));
>
> overlayLayer.addVectorFeatureSelectedListener( new
> VectorFeatureSelectedListener(){
>
> public void onFeatureSelected(Vector source,
> FeatureSelectedEvent eventObject) {
> VectorFeature overlay = eventObject.getFeature();
> popup = new AnchoredBubble("vector-info",
> new LonLat(0,0),
> new Size(300, 400),
> "<p>" + new KML().write(overlay) + "</p>",
> new Icon("", new Size(0, 0), new Pixel(0, 0)),
> true);
> map.addPopup(popup);
> }
>
> });
> </snip>
>
> Any suggestions?
>
> Thanks,
> Brendan
>
>
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco,
> CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the
> Enterprise
> -Strategies to boost innovation and cut costs with open source
> participation
> -Receive a $600 discount off the registration fee with the source code:
> SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> Gwt-openlayers-users mailing list
> Gwt...@li...
> https://lists.sourceforge.net/lists/listinfo/gwt-openlayers-users
>
>
|