[OpenLayers-Users] DrawFeature with callback?

Adorian Ardelean mynature at gmail.com
Fri Dec 5 08:35:45 EST 2008


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> 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>> 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>
>>    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]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20081205/4b7ab2d5/attachment.html


More information about the Users mailing list