[OpenLayers-Users] DrawFeature with callback?
Eric Lemoine
eric.c2c at gmail.com
Mon Dec 8 12:04:18 EST 2008
Hi
var e = new OpenLayers.Control.EditingToolbar(...);
for(var i = 0; i<e.controls.length; i++) {
var c = e.controls[i];
c.events.on({
"featureadded": functio(e) {
alert(e.feature);
}
});
}
Untested.
Cheers,
Eric
2008/12/8, Nino Saturnino Martinez Vazquez Wael <nino.martinez at jayway.dk>:
> Hi again
>
> What if you want todo the exact same thing with the editing toolbar?
>
> map.addControl(new
> OpenLayers.Control.EditingToolbar(vectors,OpenLayers.Handler.Polygon,{'featureAdded':
> serialize}));
>
> Does not work...
>
> Adorian Ardelean wrote:
>> Hi Nino,
>>
>> This works ok for me:
>>
>> dosomething = function (feature)
>> {
>> //do something with polygon
>> alert("yeeehaaa");
>> };
>>
>>
>> controls = {
>> polygon: new
>> OpenLayers.Control.DrawFeature(regions,OpenLayers.Handler.Polygon,
>> {'featureAdded': dosomething})
>> }
>>
>>
>> All the best,
>> Adorian
>>
>>
>> On Fri, Dec 5, 2008 at 2:03 PM, Nino Saturnino Martinez Vazquez Wael
>> <nino.martinez at jayway.dk <mailto:nino.martinez at jayway.dk>> wrote:
>>
>> Okay so I now have this, still not working though:
>>
>>
>>
>> <html xmlns="http://www.w3.org/1999/xhtml">
>> <head>
>> <title>OpenLayers Regular Polygon Example</title>
>> <script src="http://openlayers.org/api/OpenLayers.js"></script>
>> <script type="text/javascript">
>> var map, polygonControl;
>> OpenLayers.Util.onImageLoadErrorColor = "transparent";
>> function init(){
>> map = new OpenLayers.Map('map');
>> var wmsLayer = new OpenLayers.Layer.WMS(
>> "OpenLayers WMS",
>> "http://labs.metacarta.com/wms/vmap0?", {layers:
>> 'basic'});
>>
>> var polygonLayer = new OpenLayers.Layer.Vector("Polygon
>> Layer");
>>
>> map.addLayers([wmsLayer, polygonLayer]);
>> map.addControl(new OpenLayers.Control.LayerSwitcher());
>> map.addControl(new OpenLayers.Control.MousePosition());
>>
>> dosomething = function (polygon)
>> {
>> //do something with polygon
>> alert("yeeehaaa");
>> };
>>
>> polyOptions = {sides: 4, callbacks: {'featureAdded':
>> dosomething} };
>>
>> polygonControl = new
>> OpenLayers.Control.DrawFeature(polygonLayer,
>>
>> OpenLayers.Handler.RegularPolygon,
>> {handlerOptions: polyOptions
>> });
>> map.addControl(polygonControl);
>> map.setCenter(new OpenLayers.LonLat(0, 0), 3);
>> document.getElementById('noneToggle').checked
>> = true;
>> }
>> function setOptions(options) {
>> polygonControl.handler.setOptions(options);
>> }
>> function setSize(fraction) {
>> var radius = fraction * map.getExtent().getHeight();
>> polygonControl.handler.setOptions({radius: radius,
>> angle: 0});
>> }
>> </script>
>>
>> </head>
>> <body onload="init()">
>> <h2 id="title">OpenLayers Regular Polygon Example</h2>
>> <p id="shortdesc">
>> Shows how to use the RegularPolygon handler to draw features with
>> different numbers of sides.
>> </p>
>> <div id="map" class="smallmap"></div>
>> <div id="config">
>> <ul id="controls"><b>Map Controls</b>
>>
>> <li>
>> <input type="radio" name="type"
>> value="none" id="noneToggle"
>> onclick="polygonControl.deactivate()"
>> checked="checked" />
>> <label for="noneToggle">navigate</label>
>> </li>
>> <li>
>> <input type="radio" name="type"
>> value="polygon" id="polygonToggle"
>> onclick="polygonControl.activate()" />
>> <label for="polygonToggle">draw polygon</label>
>> </li>
>>
>> </ul>
>>
>> </div>
>> </body>
>>
>> </html>
>>
>>
>> Adorian Ardelean wrote:
>>
>> Hi,
>>
>> I presume you have to specify the event name somehow. Try
>> including this:
>>
>> dosomething = function (feature)
>> {
>>
>> }
>>
>> ...callbacks: {'featureAdded': dosomething}...
>>
>>
>> All the best,
>> Adorian
>>
>> On Fri, Dec 5, 2008 at 12:59 PM, Nino Saturnino Martinez
>> Vazquez Wael <nino.martinez at jayway.dk
>> <mailto:nino.martinez at jayway.dk>
>> <mailto:nino.martinez at jayway.dk
>> <mailto:nino.martinez at jayway.dk>>> wrote:
>>
>> Hi Guys
>>
>> Im doing a integration for the Apache Wicket framework(
>>
>>
>> http://wicketstuff.org/confluence/display/STUFFWIKI/wicket-contrib-openlayers
>> ), and want to add some more features. Im looking into
>> adding the
>> possibility to draw polygons, however I cant find a example
>> where
>> theres
>> a simple callback involved once the polygon are drawn,
>> however the api
>> mentions it's possible.
>>
>> As you can see from the below code the only thing I need
>> for this
>> little
>> thing to work are the function that calls the alert to be
>> picked up.
>> Please say if you want me to elaborate further.
>>
>>
>> <html xmlns="http://www.w3.org/1999/xhtml">
>> <head>
>> <title>OpenLayers Regular Polygon Example</title>
>> <script
>> src="http://openlayers.org/api/OpenLayers.js"></script>
>> <script type="text/javascript">
>> var map, polygonControl;
>> OpenLayers.Util.onImageLoadErrorColor = "transparent";
>> function init(){
>> map = new OpenLayers.Map('map');
>>
>> var wmsLayer = new OpenLayers.Layer.WMS(
>> "OpenLayers WMS",
>> "http://labs.metacarta.com/wms/vmap0?", {layers:
>> 'basic'});
>>
>> var polygonLayer = new
>> OpenLayers.Layer.Vector("Polygon
>> Layer");
>>
>> map.addLayers([wmsLayer, polygonLayer]);
>> map.addControl(new
>> OpenLayers.Control.LayerSwitcher());
>> map.addControl(new
>> OpenLayers.Control.MousePosition());
>>
>> polyOptions = {sides: 4, callbacks:
>> {function(value){alert('yeeeha');}} };
>> polygonControl = new
>> OpenLayers.Control.DrawFeature(polygonLayer,
>>
>> OpenLayers.Handler.RegularPolygon,
>> {handlerOptions:
>> polyOptions
>> });
>>
>> map.addControl(polygonControl);
>>
>> map.setCenter(new OpenLayers.LonLat(0, 0), 3);
>>
>> document.getElementById('noneToggle').checked =
>> true;
>>
>> document.getElementById('irregularToggle').checked =
>> false;
>> }
>> function setOptions(options) {
>> polygonControl.handler.setOptions(options);
>> }
>> function setSize(fraction) {
>> var radius = fraction * map.getExtent().getHeight();
>> polygonControl.handler.setOptions({radius: radius,
>> angle: 0});
>> }
>> </script>
>>
>> </head>
>> <body onload="init()">
>> <h2 id="title">OpenLayers Regular Polygon Example</h2>
>> <p id="shortdesc">
>> Shows how to use the RegularPolygon handler to draw
>> features with
>> different numbers of sides.
>> </p>
>> <div id="map" class="smallmap"></div>
>> <div id="config">
>>
>> <ul id="controls"><b>Map Controls</b>
>>
>> <li>
>> <input type="radio" name="type"
>> value="none" id="noneToggle"
>> onclick="polygonControl.deactivate()"
>> checked="checked" />
>> <label for="noneToggle">navigate</label>
>> </li>
>> <li>
>> <input type="radio" name="type"
>> value="polygon" id="polygonToggle"
>> onclick="polygonControl.activate()" />
>> <label for="polygonToggle">draw polygon</label>
>> </li>
>>
>> </ul>
>>
>> </div>
>> </body>
>>
>> </html>
>>
>>
>>
>>
>> -Nino
>> _______________________________________________
>> Users mailing list
>> Users at openlayers.org <mailto:Users at openlayers.org>
>> <mailto:Users at openlayers.org <mailto:Users at openlayers.org>>
>>
>> http://openlayers.org/mailman/listinfo/users
>>
>>
>>
>>
>> --
>> Dr. Adorian Ardelean
>> coordinator of myNature Project
>>
>> http://mybiosis.info/nature/portal.php?pagename=firstpage [a
>> Romanian biodiversity-database]
>> http://mybiosis.info/nature/portal.php?pagename=adorian [CV]
>>
>>
>> --
>> -Wicket for love
>>
>> Nino Martinez Wael
>> Java Specialist @ Jayway DK
>> http://www.jayway.dk
>> +45 2936 7684
>>
>>
>>
>>
>> --
>> Dr. Adorian Ardelean
>> coordinator of myNature Project
>>
>> http://mybiosis.info/nature/portal.php?pagename=firstpage [a Romanian
>> biodiversity-database]
>> http://mybiosis.info/nature/portal.php?pagename=adorian [CV]
>>
>
> --
> -Wicket for love
>
> Nino Martinez Wael
> Java Specialist @ Jayway DK
> http://www.jayway.dk
> +45 2936 7684
>
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
>
More information about the Users
mailing list