I need to implemented code below to arcgis. Can you help me?
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>html</SPAN><SPAN class="punctuation token">></SPAN></SPAN>
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>head</SPAN><SPAN class="punctuation token">></SPAN></SPAN>
<SPAN class="language-javascript script token"><SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>script</SPAN> <SPAN class="attr-name token">src</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fdev.openlayers.org%2FOpenLayers.js" target="_blank">http://dev.openlayers.org/OpenLayers.js</A><SPAN class="punctuation token">"</SPAN></SPAN> <SPAN class="attr-name token">type</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>text/javascript<SPAN class="punctuation token">"</SPAN></SPAN><SPAN class="punctuation token">></SPAN></SPAN><SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>script</SPAN><SPAN class="punctuation token">></SPAN></SPAN></SPAN>
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>title</SPAN><SPAN class="punctuation token">></SPAN></SPAN>Ya Mahdi<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>title</SPAN><SPAN class="punctuation token">></SPAN></SPAN>
<SPAN class="language-css style token"><SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>style</SPAN><SPAN class="punctuation token">></SPAN></SPAN>
<SPAN class="selector token">html,body</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="property token">height</SPAN><SPAN class="punctuation token">:</SPAN> 99%<SPAN class="punctuation token">;</SPAN>
<SPAN class="property token">width</SPAN><SPAN class="punctuation token">:</SPAN> 99%<SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="selector token">#map</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="property token">width</SPAN><SPAN class="punctuation token">:</SPAN> 100%<SPAN class="punctuation token">;</SPAN>
<SPAN class="property token">height</SPAN><SPAN class="punctuation token">:</SPAN> 100%<SPAN class="punctuation token">;</SPAN>
<SPAN class="property token">border</SPAN><SPAN class="punctuation token">:</SPAN> 1px solid black<SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>style</SPAN><SPAN class="punctuation token">></SPAN></SPAN></SPAN>
<SPAN class="language-javascript script token"><SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>script</SPAN><SPAN class="punctuation token">></SPAN></SPAN>
mmGetCurvePoints <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">function</SPAN><SPAN class="punctuation token">(</SPAN>ptsa<SPAN class="punctuation token">,</SPAN> tension<SPAN class="punctuation token">,</SPAN> isClosed<SPAN class="punctuation token">,</SPAN> numOfSegments<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>ptsa<SPAN class="punctuation token">.</SPAN>length <SPAN class="operator token"><=</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">return</SPAN> ptsa<SPAN class="punctuation token">;</SPAN>
tension <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">typeof</SPAN> tension <SPAN class="operator token">===</SPAN> <SPAN class="string token">'number'</SPAN> <SPAN class="operator token">?</SPAN> tension <SPAN class="punctuation token">:</SPAN> <SPAN class="number token">0.5</SPAN><SPAN class="punctuation token">;</SPAN>
isClosed <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">typeof</SPAN> isClosed <SPAN class="operator token">===</SPAN> <SPAN class="string token">'boolean'</SPAN> <SPAN class="operator token">?</SPAN> isClosed <SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">;</SPAN>
numOfSegments <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">typeof</SPAN> numOfSegments <SPAN class="operator token">===</SPAN> <SPAN class="string token">'number'</SPAN> <SPAN class="operator token">?</SPAN> numOfSegments <SPAN class="punctuation token">:</SPAN> <SPAN class="number token">16</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> ptsaClone <SPAN class="operator token">=</SPAN> ptsa<SPAN class="punctuation token">.</SPAN><SPAN class="token function">slice</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>isClosed<SPAN class="punctuation token">)</SPAN>
ptsaClone<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>ptsa<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> ptsa<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> ptsa<SPAN class="punctuation token">[</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> ptsa<SPAN class="punctuation token">[</SPAN><SPAN class="number token">3</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> _pts<SPAN class="punctuation token">,</SPAN> res <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="comment token">/// clone array</SPAN>
x<SPAN class="punctuation token">,</SPAN> y<SPAN class="punctuation token">,</SPAN> <SPAN class="comment token">/// our x,y coords</SPAN>
t1x<SPAN class="punctuation token">,</SPAN> t2x<SPAN class="punctuation token">,</SPAN> t1y<SPAN class="punctuation token">,</SPAN> t2y<SPAN class="punctuation token">,</SPAN> <SPAN class="comment token">/// tension vectors</SPAN>
c1<SPAN class="punctuation token">,</SPAN> c2<SPAN class="punctuation token">,</SPAN> c3<SPAN class="punctuation token">,</SPAN> c4<SPAN class="punctuation token">,</SPAN> <SPAN class="comment token">/// cardinal points</SPAN>
st<SPAN class="punctuation token">,</SPAN> t<SPAN class="punctuation token">,</SPAN> i<SPAN class="punctuation token">,</SPAN> <SPAN class="comment token">/// steps based on num. of segments</SPAN>
pow3<SPAN class="punctuation token">,</SPAN> pow2<SPAN class="punctuation token">,</SPAN> <SPAN class="comment token">/// cache powers</SPAN>
pow32<SPAN class="punctuation token">,</SPAN> pow23<SPAN class="punctuation token">,</SPAN>
p0<SPAN class="punctuation token">,</SPAN> p1<SPAN class="punctuation token">,</SPAN> p2<SPAN class="punctuation token">,</SPAN> p3<SPAN class="punctuation token">,</SPAN> <SPAN class="comment token">/// cache points</SPAN>
pl <SPAN class="operator token">=</SPAN> ptsaClone<SPAN class="punctuation token">.</SPAN>length<SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">/// clone array so we don't change the original content</SPAN>
_pts <SPAN class="operator token">=</SPAN> ptsaClone<SPAN class="punctuation token">.</SPAN><SPAN class="token function">concat</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
_pts<SPAN class="punctuation token">.</SPAN><SPAN class="token function">unshift</SPAN><SPAN class="punctuation token">(</SPAN>ptsaClone<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="comment token">/// copy 1. point and insert at beginning</SPAN>
_pts<SPAN class="punctuation token">.</SPAN><SPAN class="token function">unshift</SPAN><SPAN class="punctuation token">(</SPAN>ptsaClone<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
_pts<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>ptsaClone<SPAN class="punctuation token">[</SPAN>pl <SPAN class="operator token">-</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> ptsaClone<SPAN class="punctuation token">[</SPAN>pl <SPAN class="operator token">-</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="comment token">/// copy last point and append</SPAN>
<SPAN class="comment token">/// 1. loop goes through point array</SPAN>
<SPAN class="comment token">/// 2. loop goes through each segment between the two points + one point before and after</SPAN>
<SPAN class="keyword token">for</SPAN> <SPAN class="punctuation token">(</SPAN>i <SPAN class="operator token">=</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">;</SPAN> i <SPAN class="operator token"><</SPAN> pl<SPAN class="punctuation token">;</SPAN> i <SPAN class="operator token">+</SPAN><SPAN class="operator token">=</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
p0 <SPAN class="operator token">=</SPAN> _pts<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
p1 <SPAN class="operator token">=</SPAN> _pts<SPAN class="punctuation token">[</SPAN>i <SPAN class="operator token">+</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
p2 <SPAN class="operator token">=</SPAN> _pts<SPAN class="punctuation token">[</SPAN>i <SPAN class="operator token">+</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
p3 <SPAN class="operator token">=</SPAN> _pts<SPAN class="punctuation token">[</SPAN>i <SPAN class="operator token">+</SPAN> <SPAN class="number token">3</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">/// calc tension vectors</SPAN>
t1x <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>p2 <SPAN class="operator token">-</SPAN> _pts<SPAN class="punctuation token">[</SPAN>i <SPAN class="operator token">-</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">*</SPAN> tension<SPAN class="punctuation token">;</SPAN>
t2x <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>_pts<SPAN class="punctuation token">[</SPAN>i <SPAN class="operator token">+</SPAN> <SPAN class="number token">4</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">-</SPAN> p0<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">*</SPAN> tension<SPAN class="punctuation token">;</SPAN>
t1y <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>p3 <SPAN class="operator token">-</SPAN> _pts<SPAN class="punctuation token">[</SPAN>i <SPAN class="operator token">-</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">*</SPAN> tension<SPAN class="punctuation token">;</SPAN>
t2y <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>_pts<SPAN class="punctuation token">[</SPAN>i <SPAN class="operator token">+</SPAN> <SPAN class="number token">5</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">-</SPAN> p1<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">*</SPAN> tension<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">for</SPAN> <SPAN class="punctuation token">(</SPAN>t <SPAN class="operator token">=</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">;</SPAN> t <SPAN class="operator token"><=</SPAN> numOfSegments<SPAN class="punctuation token">;</SPAN> t<SPAN class="operator token">++</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="comment token">/// calc step</SPAN>
st <SPAN class="operator token">=</SPAN> t <SPAN class="operator token">/</SPAN> numOfSegments<SPAN class="punctuation token">;</SPAN>
pow2 <SPAN class="operator token">=</SPAN> Math<SPAN class="punctuation token">.</SPAN><SPAN class="token function">pow</SPAN><SPAN class="punctuation token">(</SPAN>st<SPAN class="punctuation token">,</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
pow3 <SPAN class="operator token">=</SPAN> pow2 <SPAN class="operator token">*</SPAN> st<SPAN class="punctuation token">;</SPAN>
pow23 <SPAN class="operator token">=</SPAN> pow2 <SPAN class="operator token">*</SPAN> <SPAN class="number token">3</SPAN><SPAN class="punctuation token">;</SPAN>
pow32 <SPAN class="operator token">=</SPAN> pow3 <SPAN class="operator token">*</SPAN> <SPAN class="number token">2</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">/// calc cardinals</SPAN>
c1 <SPAN class="operator token">=</SPAN> pow32 <SPAN class="operator token">-</SPAN> pow23 <SPAN class="operator token">+</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">;</SPAN>
c2 <SPAN class="operator token">=</SPAN> pow23 <SPAN class="operator token">-</SPAN> pow32<SPAN class="punctuation token">;</SPAN>
c3 <SPAN class="operator token">=</SPAN> pow3 <SPAN class="operator token">-</SPAN> <SPAN class="number token">2</SPAN> <SPAN class="operator token">*</SPAN> pow2 <SPAN class="operator token">+</SPAN> st<SPAN class="punctuation token">;</SPAN>
c4 <SPAN class="operator token">=</SPAN> pow3 <SPAN class="operator token">-</SPAN> pow2<SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">/// calc x and y cords with common control vectors</SPAN>
x <SPAN class="operator token">=</SPAN> c1 <SPAN class="operator token">*</SPAN> p0 <SPAN class="operator token">+</SPAN> c2 <SPAN class="operator token">*</SPAN> p2 <SPAN class="operator token">+</SPAN> c3 <SPAN class="operator token">*</SPAN> t1x <SPAN class="operator token">+</SPAN> c4 <SPAN class="operator token">*</SPAN> t2x<SPAN class="punctuation token">;</SPAN>
y <SPAN class="operator token">=</SPAN> c1 <SPAN class="operator token">*</SPAN> p1 <SPAN class="operator token">+</SPAN> c2 <SPAN class="operator token">*</SPAN> p3 <SPAN class="operator token">+</SPAN> c3 <SPAN class="operator token">*</SPAN> t1y <SPAN class="operator token">+</SPAN> c4 <SPAN class="operator token">*</SPAN> t2y<SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">/// store points in array</SPAN>
res<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>x<SPAN class="punctuation token">,</SPAN> y<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>isClosed<SPAN class="punctuation token">)</SPAN>
res <SPAN class="operator token">=</SPAN> res<SPAN class="punctuation token">.</SPAN><SPAN class="token function">slice</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN> res<SPAN class="punctuation token">.</SPAN>length <SPAN class="operator token">-</SPAN> <SPAN class="number token">2</SPAN> <SPAN class="operator token">*</SPAN> numOfSegments<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">return</SPAN> res<SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> map<SPAN class="punctuation token">,</SPAN> control<SPAN class="punctuation token">,</SPAN>layer<SPAN class="punctuation token">,</SPAN>feature<SPAN class="punctuation token">,</SPAN>points<SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> xy <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> array <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">function</SPAN> <SPAN class="token function">init</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN>
map <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OpenLayers<SPAN class="punctuation token">.</SPAN>Map</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">'map'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>
center<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="number token">45.476333</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">39.4854095</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>
zoom<SPAN class="punctuation token">:</SPAN> <SPAN class="number token">10</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> wms <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OpenLayers<SPAN class="punctuation token">.</SPAN>Layer<SPAN class="punctuation token">.</SPAN>WMS</SPAN><SPAN class="punctuation token">(</SPAN> <SPAN class="string token">"OpenLayers WMS"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token"><SPAN>"</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Fvmap0.tiles.osgeo.org%2Fwms%2Fvmap0" target="_blank">http://vmap0.tiles.osgeo.org/wms/vmap0</A><SPAN>?"</SPAN></SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>layers<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'basic'</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
layer <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OpenLayers<SPAN class="punctuation token">.</SPAN>Layer<SPAN class="punctuation token">.</SPAN>Vector</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Simple Geometry"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
map<SPAN class="punctuation token">.</SPAN><SPAN class="token function">addLayer</SPAN><SPAN class="punctuation token">(</SPAN>wms<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
map<SPAN class="punctuation token">.</SPAN><SPAN class="token function">addLayer</SPAN><SPAN class="punctuation token">(</SPAN>layer<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">function</SPAN> <SPAN class="token function">drawEnd</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">if</SPAN><SPAN class="punctuation token">(</SPAN>xy<SPAN class="punctuation token">.</SPAN>length<SPAN class="operator token"><</SPAN><SPAN class="number token">6</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
xy<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">.</SPAN>x<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
xy<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">.</SPAN>y<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">return</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">else</SPAN> <SPAN class="keyword token">if</SPAN><SPAN class="punctuation token">(</SPAN>xy<SPAN class="punctuation token">.</SPAN>length<SPAN class="operator token">==</SPAN><SPAN class="number token">6</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN>
feature <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OpenLayers<SPAN class="punctuation token">.</SPAN>Feature<SPAN class="punctuation token">.</SPAN>Vector</SPAN><SPAN class="punctuation token">(</SPAN>
<SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OpenLayers<SPAN class="punctuation token">.</SPAN>Geometry<SPAN class="punctuation token">.</SPAN>LineString</SPAN><SPAN class="punctuation token">(</SPAN>array<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="punctuation token">{</SPAN>properties<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>state<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'a'</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
layer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">addFeatures</SPAN><SPAN class="punctuation token">(</SPAN>feature<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
console<SPAN class="punctuation token">.</SPAN><SPAN class="token function">log</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"add f"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
feature<SPAN class="operator token">=</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">;</SPAN>
layer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">refresh</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">{</SPAN>force<SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
xy<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">function</SPAN> <SPAN class="token function">putPoint</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">if</SPAN><SPAN class="punctuation token">(</SPAN>xy<SPAN class="punctuation token">.</SPAN>length<SPAN class="operator token"><</SPAN><SPAN class="number token">6</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">return</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">function</SPAN> <SPAN class="token function">sketchModified</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">,</SPAN> ee<SPAN class="punctuation token">,</SPAN> eee<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">if</SPAN><SPAN class="punctuation token">(</SPAN>xy<SPAN class="punctuation token">.</SPAN>length<SPAN class="operator token"><</SPAN><SPAN class="number token">6</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">return</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">{</SPAN>
layer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">removeFeatures</SPAN><SPAN class="punctuation token">(</SPAN>feature<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="keyword token">catch</SPAN><SPAN class="punctuation token">(</SPAN>err<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">var</SPAN> xytemp <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
xytemp<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>xy<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
xytemp<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>xy<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
xytemp<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>xy<SPAN class="punctuation token">[</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
xytemp<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>xy<SPAN class="punctuation token">[</SPAN><SPAN class="number token">3</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
xytemp<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">.</SPAN>x<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
xytemp<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">.</SPAN>y<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
points <SPAN class="operator token">=</SPAN> <SPAN class="token function">mmGetCurvePoints</SPAN><SPAN class="punctuation token">(</SPAN>xytemp<SPAN class="punctuation token">,</SPAN> <SPAN class="number token">0.5</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">15</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> i <SPAN class="operator token">=</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">while</SPAN><SPAN class="punctuation token">(</SPAN>i<SPAN class="operator token"><</SPAN>points<SPAN class="punctuation token">.</SPAN>length<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN>
array<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OpenLayers<SPAN class="punctuation token">.</SPAN>Geometry<SPAN class="punctuation token">.</SPAN>Point</SPAN><SPAN class="punctuation token">(</SPAN>points<SPAN class="punctuation token">[</SPAN>i<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> points<SPAN class="punctuation token">[</SPAN>i<SPAN class="operator token">+</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
i<SPAN class="operator token">++</SPAN><SPAN class="punctuation token">;</SPAN>
i<SPAN class="operator token">++</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
feature <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OpenLayers<SPAN class="punctuation token">.</SPAN>Feature<SPAN class="punctuation token">.</SPAN>Vector</SPAN><SPAN class="punctuation token">(</SPAN>
<SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OpenLayers<SPAN class="punctuation token">.</SPAN>Geometry<SPAN class="punctuation token">.</SPAN>LineString</SPAN><SPAN class="punctuation token">(</SPAN>array<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="punctuation token">{</SPAN>properties<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>state<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'a'</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
layer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">addFeatures</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>feature<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
array<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
points<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
layer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">refresh</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">{</SPAN>force<SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">function</SPAN> <SPAN class="token function">cancel</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">var</SPAN> callBackParams <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="string token">"done"</SPAN><SPAN class="punctuation token">:</SPAN> drawEnd<SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"point"</SPAN><SPAN class="punctuation token">:</SPAN> putPoint<SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"modify"</SPAN><SPAN class="punctuation token">:</SPAN> sketchModified<SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"cancel"</SPAN><SPAN class="punctuation token">:</SPAN> cancel
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> drawCrtl <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">OpenLayers<SPAN class="punctuation token">.</SPAN>Control<SPAN class="punctuation token">.</SPAN>DrawFeature</SPAN><SPAN class="punctuation token">(</SPAN>layer<SPAN class="punctuation token">,</SPAN> OpenLayers<SPAN class="punctuation token">.</SPAN>Handler<SPAN class="punctuation token">.</SPAN>Point<SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>callbacks<SPAN class="punctuation token">:</SPAN> callBackParams<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
map<SPAN class="punctuation token">.</SPAN><SPAN class="token function">addControls</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>drawCrtl<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
drawCrtl<SPAN class="punctuation token">.</SPAN><SPAN class="token function">activate</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>script</SPAN><SPAN class="punctuation token">></SPAN></SPAN></SPAN>
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>head</SPAN><SPAN class="punctuation token">></SPAN></SPAN>
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>body</SPAN> <SPAN class="attr-name token">onload</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>init()<SPAN class="punctuation token">"</SPAN></SPAN><SPAN class="punctuation token">></SPAN></SPAN>
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"><</SPAN>div</SPAN> <SPAN class="attr-name token">id</SPAN><SPAN class="attr-value token"><SPAN class="punctuation token">=</SPAN><SPAN class="punctuation token">"</SPAN>map<SPAN class="punctuation token">"</SPAN></SPAN><SPAN class="style-attr language-css token"><SPAN class="attr-name token"> <SPAN class="attr-name token">style</SPAN></SPAN><SPAN class="punctuation token">="</SPAN><SPAN class="attr-value token"><SPAN class="property token">width</SPAN><SPAN class="punctuation token">:</SPAN> 400px<SPAN class="punctuation token">;</SPAN> <SPAN class="property token">height</SPAN><SPAN class="punctuation token">:</SPAN> 400px<SPAN class="punctuation token">;</SPAN></SPAN><SPAN class="punctuation token">"</SPAN></SPAN><SPAN class="punctuation token">></SPAN></SPAN><SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>div</SPAN><SPAN class="punctuation token">></SPAN></SPAN>
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>body</SPAN><SPAN class="punctuation token">></SPAN></SPAN>
<SPAN class="token tag"><SPAN class="token tag"><SPAN class="punctuation token"></</SPAN>html</SPAN><SPAN class="punctuation token">></SPAN></SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>