Hi Everyone,<div><br></div><div>I apologize in advance for what I assume is a pretty trivial error. I&#39;ve been trying to implement the geolocation example on my local system, but I get an error &quot;ol.control.geolocate is not a constructor&quot; in Firebug, and uncaught typeerror: undefined is not a function in chrome. I&#39;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>    fillColor: &#39;#000&#39;,</div><div>    fillOpacity: 0.1,</div><div>    strokeWidth: 0</div><div>};</div><div><br></div><div>var map = new OpenLayers.Map(&#39;map&#39;);</div>
<div>var layer = new OpenLayers.Layer.OSM( &quot;Simple OSM Map&quot;);</div><div>var vector = new OpenLayers.Layer.Vector(&#39;vector&#39;);</div><div>map.addLayers([layer, vector]);</div><div><br></div><div>map.setCenter(</div>
<div>    new OpenLayers.LonLat(-71.147, 42.472).transform(</div><div>        new OpenLayers.Projection(&quot;EPSG:4326&quot;),</div><div>        map.getProjectionObject()</div><div>    ), 12</div><div>);</div><div><br></div>
<div>var pulsate = function(feature) {</div><div>    var point = feature.geometry.getCentroid(),</div><div>        bounds = feature.geometry.getBounds(),</div><div>        radius = Math.abs((bounds.right - bounds.left)/2),</div>
<div>        count = 0,</div><div>        grow = &#39;up&#39;;</div><div><br></div><div>    var resize = function(){</div><div>        if (count&gt;16) {</div><div>            clearInterval(window.resizeInterval);</div><div>
        }</div><div>        var interval = radius * 0.03;</div><div>        var ratio = interval/radius;</div><div>        switch(count) {</div><div>            case 4:</div><div>            case 12:</div><div>                grow = &#39;down&#39;; break;</div>
<div>            case 8:</div><div>                grow = &#39;up&#39;; break;</div><div>        }</div><div>        if (grow!==&#39;up&#39;) {</div><div>            ratio = - Math.abs(ratio);</div><div>        }</div><div>
        feature.geometry.resize(1+ratio, point);</div><div>        vector.drawFeature(feature);</div><div>        count++;</div><div>    };</div><div>    window.resizeInterval = window.setInterval(resize, 50, point, radius);</div>
<div>};</div><div><br></div><div>var geolocate = new OpenLayers.Control.Geolocate({</div><div>    geolocationOptions: {</div><div>        enableHighAccuracy: false,</div><div>        maximumAge: 0,</div><div>        timeout: 7000</div>
<div>    }</div><div>});</div><div>map.addControl(geolocate);</div><div>geolocate.events.register(&quot;locationupdated&quot;,this,function(e) {</div><div>    vector.removeAllFeatures();</div><div>    var circle = new OpenLayers.Feature.Vector(</div>
<div>        OpenLayers.Geometry.Polygon.createRegularPolygon(</div><div>            new OpenLayers.Geometry.Point(e.point.x, e.point.y),</div><div>            e.position.coords.accuracy/2,</div><div>            40,</div>
<div>            0</div><div>        ),</div><div>        {},</div><div>        style</div><div>    );</div><div>    vector.addFeatures([</div><div>        new OpenLayers.Feature.Vector(</div><div>            e.point,</div>
<div>            {},</div><div>            {</div><div>                graphicName: &#39;cross&#39;,</div><div>                strokeColor: &#39;#f00&#39;,</div><div>                strokeWidth: 2,</div><div>                fillOpacity: 0,</div>
<div>                pointRadius: 10</div><div>            }</div><div>        ),</div><div>        circle</div><div>    ]);</div><div>    map.zoomToExtent(vector.getDataExtent());</div><div>    pulsate(circle);</div><div>
});</div><div>geolocate.events.register(&quot;locationfailed&quot;,this,function() {</div><div>    OpenLayers.Console.log(&#39;Location detection failed&#39;);</div><div>});</div><div><br></div><div>$(&#39;locate&#39;).onclick = function() {</div>
<div>    vector.removeAllFeatures();</div><div>    geolocate.deactivate();</div><div>    $(&#39;track&#39;).checked = false;</div><div>    geolocate.watch = false;</div><div>    geolocate.activate();</div><div>};</div><div>
$(&#39;track&#39;).onclick = function() {</div><div>    vector.removeAllFeatures();</div><div>    geolocate.deactivate();</div><div>    if (this.checked) {</div><div>        geolocate.watch = true;</div><div>        geolocate.activate();</div>
<div>    }</div><div>};</div><div>$(&#39;track&#39;).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">nefremov@wustl.edu</a><br></div><br>
</div>