hi Tim,<br><br>Thanks for the answer.<br><br>An error still keeps appearing. I think there are some events still going on that throw this error. (mousedown?)<br>any ideas?<br><br>This is what I get from firebug.<br><br><span class="objectBox objectBox-errorMessage hasTwisty hasBreakSwitch opened"><div class="errorTitle">
this.layer is null</div><div class="errorTrace"><div class="objectBox objectBox-stackFrame"><a class="objectLink">drawFeature()</a>()<span class="objectLink-sourceLink objectLink">Path.js (línea 164)</span></div><div class="objectBox objectBox-stackFrame">
<a class="objectLink">addPoint()</a>(<a class="objectLink objectLink-object"><span class="objectTitle">x=429,y=223</span> x=<span class="objectPropValue">429</span> y=<span class="objectPropValue">223</span> CLASS_NAME=<span class="objectPropValue">OpenLayers.Pixel</span></a><span class="arrayComma"></span>)<span class="objectLink-sourceLink objectLink">Path.js (línea 127)</span></div>
<div class="objectBox objectBox-stackFrame"><a class="objectLink">mousedown()</a>(<a class="objectLink objectLink-object">mousedown clientX=448, clientY=293</a><span class="arrayComma"></span>)<span class="objectLink-sourceLink objectLink">Path.js (línea 217)</span></div>
<div class="objectBox objectBox-stackFrame"><a class="objectLink">triggerEvent()</a>(<span class="objectBox objectBox-string">&quot;mousedown&quot;</span><span class="arrayComma">, </span><a class="objectLink objectLink-object">mousedown clientX=448, clientY=293</a><span class="arrayComma"></span>)<span class="objectLink-sourceLink objectLink">Events.js (línea 714)</span></div>
<div class="objectBox objectBox-stackFrame"><a class="objectLink">handleBrowserEvent()</a>(<a class="objectLink objectLink-object">mousedown clientX=448, clientY=293</a><span class="arrayComma"></span>)<span class="objectLink-sourceLink objectLink">Events.js (línea 742)</span></div>
<div class="objectBox objectBox-stackFrame"><a class="objectLink">bindAsEventListener()</a>(<a class="objectLink objectLink-object">mousedown clientX=448, clientY=293</a><span class="arrayComma"></span>)<span class="objectLink-sourceLink objectLink">BaseTypes.js (línea 432)</span></div>
</div><div class="errorSourceBox errorSource-exec"><img src="chrome://firebug/content/blank.gif" title="Break on this error" class="errorBreak"><span class="errorSource">        this.layer.drawFeature(this.line, this.style);</span></div>
</span><br><br><div class="gmail_quote">On Wed, Mar 25, 2009 at 9:16 PM, Tim Schaub <span dir="ltr">&lt;<a href="mailto:tschaub@opengeo.org">tschaub@opengeo.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hey-<br>
<div class="im"><br>
toni hernández wrote:<br>
&gt; Hi all,<br>
&gt;<br>
&gt; I need to draw lines with only two vertexs so when the second vertex is<br>
&gt; added the draing must end.<br>
&gt;<br>
<br>
</div>If you want to use the existing code, your application could do<br>
something like this (assuming you had a vector layer named &quot;layer&quot; and a<br>
drawing control named &quot;draw&quot; with a path handler configured to draw on<br>
that layer):<br>
<br>
// using API properties and methods only<br>
<br>
layer.events.on({<br>
     sketchmodified: function(event) {<br>
         var feature = event.feature;<br>
         if(feature.geometry.components.length &gt; 2) {<br>
             feature = feature.clone();<br>
             var geom = feature.geometry;<br>
             geom.removeComponent(geom.component[2]);<br>
             draw.deactivate();<br>
             layer.addFeatures([feature]);<br>
         }<br>
     }<br>
});<br>
<br>
Untested, but something like that should work.<br>
<br>
Tim<br>
<div><div></div><div class="h5"><br>
&gt;<br>
&gt; I&#39;ve done it so far creating a new handler.path where I control the<br>
&gt; length of the geometry components. When is bigger than 2 I run the<br>
&gt; finalize function so it ends.<br>
&gt; That works fine but I think there must be a better way of doing it?<br>
&gt;<br>
&gt; I have also tried registering the sketchmodified event of the control<br>
&gt; from the main html page.<br>
&gt;<br>
&gt; The issue here is that I do not know how to deactivate the drawing<br>
&gt; control without throwing and error. (feature is null, on Vector.js (line<br>
&gt; 617, in drawFeature function)<br>
&gt;<br>
&gt; any ideas?<br>
&gt;<br>
&gt; the code.<br>
&gt;<br>
&gt; //DRAWING CONTROLS<br>
&gt; drawControls = {<br>
&gt;     point: new OpenLayers.Control.DrawFeature(pointLayer,<br>
&gt;         OpenLayers.Handler.Point),<br>
&gt;     line: new OpenLayers.Control.DrawFeature(lineLayer,<br>
&gt;         OpenLayers.Handler.Path, options),<br>
&gt;     polygon: new OpenLayers.Control.DrawFeature(polygonLayer,<br>
&gt;         OpenLayers.Handler.Polygon, options)<br>
&gt; };<br>
&gt;<br>
&gt; for(var key in drawControls) {<br>
&gt;     map.addControl(drawControls[key]);<br>
&gt; }<br>
&gt;<br>
&gt; //REGISTERING<br>
&gt; drawControls.line.layer.events.on({<br>
&gt;     &#39;sketchmodified&#39;: report<br>
&gt; });<br>
&gt;<br>
&gt;<br>
&gt; function report(param)<br>
&gt; {<br>
&gt;     if (param.feature.components.length&gt;2)<br>
&gt;     {<br>
&gt;         drawControls.line.handler.finalize();<br>
&gt;     }<br>
&gt; }<br>
&gt;<br>
&gt;<br>
&gt;<br>
</div></div>&gt; ------------------------------------------------------------------------<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Dev mailing list<br>
&gt; <a href="mailto:Dev@openlayers.org">Dev@openlayers.org</a><br>
&gt; <a href="http://openlayers.org/mailman/listinfo/dev" target="_blank">http://openlayers.org/mailman/listinfo/dev</a><br>
<font color="#888888"><br>
<br>
--<br>
Tim Schaub<br>
OpenGeo - <a href="http://opengeo.org" target="_blank">http://opengeo.org</a><br>
Expert service straight from the developers.<br>
_______________________________________________<br>
Dev mailing list<br>
<a href="mailto:Dev@openlayers.org">Dev@openlayers.org</a><br>
<a href="http://openlayers.org/mailman/listinfo/dev" target="_blank">http://openlayers.org/mailman/listinfo/dev</a><br>
</font></blockquote></div><br>