[OpenLayers-Users] DrawFeature with callback?
Nino Saturnino Martinez Vazquez Wael
nino.martinez at jayway.dk
Tue Dec 9 02:41:49 EST 2008
Thanks it worked as well :)
Eric Lemoine wrote:
> 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
>>
>>
--
-Wicket for love
Nino Martinez Wael
Java Specialist @ Jayway DK
http://www.jayway.dk
+45 2936 7684
More information about the Users
mailing list