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 > > |