<html><body bgcolor="#FFFFFF"><div>This is not available in 2.10 only in trunk and the upcoming 2.11 release.</div><div><br></div><div>Bart<br><br>Sent from my iPhone</div><div><br>On Mar 12, 2011, at 11:56 AM, Nicholas Efremov-Kendall &lt;<a href="mailto:n.e.kendall@gmail.com">n.e.kendall@gmail.com</a>&gt; wrote:<br><br></div><div></div><blockquote type="cite"><div>Hi Everyone,<div><br></div><div>I apologize in advance for what I assume is a pretty trivial error. I've been trying to implement the geolocation example on my local system, but I get an error "ol.control.geolocate is not a constructor" in Firebug, and uncaught typeerror: undefined is not a function in chrome. I've tried this both with linking the OL script to the live api url, as well as to a local copy of OL 2.10. I repost the code below, but I just copied it from the live example and got this error.</div>
<div>Thanks in advance!</div><div><br></div><div><div>var style = {</div><div>&nbsp;&nbsp; &nbsp;fillColor: '#000',</div><div>&nbsp;&nbsp; &nbsp;fillOpacity: 0.1,</div><div>&nbsp;&nbsp; &nbsp;strokeWidth: 0</div><div>};</div><div><br></div><div>var map = new OpenLayers.Map('map');</div>
<div>var layer = new OpenLayers.Layer.OSM( "Simple OSM Map");</div><div>var vector = new OpenLayers.Layer.Vector('vector');</div><div>map.addLayers([layer, vector]);</div><div><br></div><div>map.setCenter(</div>
<div>&nbsp;&nbsp; &nbsp;new OpenLayers.LonLat(-71.147, 42.472).transform(</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;new OpenLayers.Projection("EPSG:4326"),</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;map.getProjectionObject()</div><div>&nbsp;&nbsp; &nbsp;), 12</div><div>);</div><div><br></div>
<div>var pulsate = function(feature) {</div><div>&nbsp;&nbsp; &nbsp;var point = feature.geometry.getCentroid(),</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;bounds = feature.geometry.getBounds(),</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;radius = Math.abs((bounds.right - bounds.left)/2),</div>
<div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;count = 0,</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;grow = 'up';</div><div><br></div><div>&nbsp;&nbsp; &nbsp;var resize = function(){</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (count&gt;16) {</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clearInterval(window.resizeInterval);</div><div>
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;var interval = radius * 0.03;</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;var ratio = interval/radius;</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;switch(count) {</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 4:</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 12:</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;grow = 'down'; break;</div>
<div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case 8:</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;grow = 'up'; break;</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (grow!=='up') {</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ratio = - Math.abs(ratio);</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div>
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;feature.geometry.resize(1+ratio, point);</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;vector.drawFeature(feature);</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;count++;</div><div>&nbsp;&nbsp; &nbsp;};</div><div>&nbsp;&nbsp; &nbsp;window.resizeInterval = window.setInterval(resize, 50, point, radius);</div>
<div>};</div><div><br></div><div>var geolocate = new OpenLayers.Control.Geolocate({</div><div>&nbsp;&nbsp; &nbsp;geolocationOptions: {</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;enableHighAccuracy: false,</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;maximumAge: 0,</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;timeout: 7000</div>
<div>&nbsp;&nbsp; &nbsp;}</div><div>});</div><div>map.addControl(geolocate);</div><div>geolocate.events.register("locationupdated",this,function(e) {</div><div>&nbsp;&nbsp; &nbsp;vector.removeAllFeatures();</div><div>&nbsp;&nbsp; &nbsp;var circle = new OpenLayers.Feature.Vector(</div>
<div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;OpenLayers.Geometry.Polygon.createRegularPolygon(</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new OpenLayers.Geometry.Point(e.point.x, e.point.y),</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;e.position.coords.accuracy/2,</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;40,</div>
<div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;),</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{},</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;style</div><div>&nbsp;&nbsp; &nbsp;);</div><div>&nbsp;&nbsp; &nbsp;vector.addFeatures([</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;new OpenLayers.Feature.Vector(</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;e.point,</div>
<div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{},</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;graphicName: 'cross',</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strokeColor: '#f00',</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strokeWidth: 2,</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fillOpacity: 0,</div>
<div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pointRadius: 10</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;),</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;circle</div><div>&nbsp;&nbsp; &nbsp;]);</div><div>&nbsp;&nbsp; &nbsp;map.zoomToExtent(vector.getDataExtent());</div><div>&nbsp;&nbsp; &nbsp;pulsate(circle);</div><div>
});</div><div>geolocate.events.register("locationfailed",this,function() {</div><div>&nbsp;&nbsp; &nbsp;OpenLayers.Console.log('Location detection failed');</div><div>});</div><div><br></div><div>$('locate').onclick = function() {</div>
<div>&nbsp;&nbsp; &nbsp;vector.removeAllFeatures();</div><div>&nbsp;&nbsp; &nbsp;geolocate.deactivate();</div><div>&nbsp;&nbsp; &nbsp;$('track').checked = false;</div><div>&nbsp;&nbsp; &nbsp;geolocate.watch = false;</div><div>&nbsp;&nbsp; &nbsp;geolocate.activate();</div><div>};</div><div>
$('track').onclick = function() {</div><div>&nbsp;&nbsp; &nbsp;vector.removeAllFeatures();</div><div>&nbsp;&nbsp; &nbsp;geolocate.deactivate();</div><div>&nbsp;&nbsp; &nbsp;if (this.checked) {</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;geolocate.watch = true;</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;geolocate.activate();</div>
<div>&nbsp;&nbsp; &nbsp;}</div><div>};</div><div>$('track').checked = false;</div>-- <br><br><div>Dept. of Anthropology</div><div>Washington University in St. Louis</div><div>Campus Box 1114</div><div>St. Louis, MO, 63130</div><div>
(917) 370-3489</div><div><a href="mailto:nefremov@artsci.wustl.edu" target="_blank"><a href="mailto:nefremov@wustl.edu">nefremov@wustl.edu</a></a><br></div><br>
</div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Users mailing list</span><br><span><a href="mailto:Users@lists.osgeo.org">Users@lists.osgeo.org</a></span><br><span><a href="http://lists.osgeo.org/mailman/listinfo/openlayers-users">http://lists.osgeo.org/mailman/listinfo/openlayers-users</a></span><br></div></blockquote></body></html>