diff options
Diffstat (limited to 'misc/openlayers/examples/geolocation.js')
-rw-r--r-- | misc/openlayers/examples/geolocation.js | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/misc/openlayers/examples/geolocation.js b/misc/openlayers/examples/geolocation.js deleted file mode 100644 index 3d8d6f4..0000000 --- a/misc/openlayers/examples/geolocation.js +++ /dev/null @@ -1,112 +0,0 @@ -var style = { - fillColor: '#000', - fillOpacity: 0.1, - strokeWidth: 0 -}; - -var map = new OpenLayers.Map('map'); -var layer = new OpenLayers.Layer.OSM( "Simple OSM Map"); -var vector = new OpenLayers.Layer.Vector('vector'); -map.addLayers([layer, vector]); - -map.setCenter( - new OpenLayers.LonLat(-71.147, 42.472).transform( - new OpenLayers.Projection("EPSG:4326"), - map.getProjectionObject() - ), 12 -); - -var pulsate = function(feature) { - var point = feature.geometry.getCentroid(), - bounds = feature.geometry.getBounds(), - radius = Math.abs((bounds.right - bounds.left)/2), - count = 0, - grow = 'up'; - - var resize = function(){ - if (count>16) { - clearInterval(window.resizeInterval); - } - var interval = radius * 0.03; - var ratio = interval/radius; - switch(count) { - case 4: - case 12: - grow = 'down'; break; - case 8: - grow = 'up'; break; - } - if (grow!=='up') { - ratio = - Math.abs(ratio); - } - feature.geometry.resize(1+ratio, point); - vector.drawFeature(feature); - count++; - }; - window.resizeInterval = window.setInterval(resize, 50, point, radius); -}; - -var geolocate = new OpenLayers.Control.Geolocate({ - bind: false, - geolocationOptions: { - enableHighAccuracy: false, - maximumAge: 0, - timeout: 7000 - } -}); -map.addControl(geolocate); -var firstGeolocation = true; -geolocate.events.register("locationupdated",geolocate,function(e) { - vector.removeAllFeatures(); - var circle = new OpenLayers.Feature.Vector( - OpenLayers.Geometry.Polygon.createRegularPolygon( - new OpenLayers.Geometry.Point(e.point.x, e.point.y), - e.position.coords.accuracy/2, - 40, - 0 - ), - {}, - style - ); - vector.addFeatures([ - new OpenLayers.Feature.Vector( - e.point, - {}, - { - graphicName: 'cross', - strokeColor: '#f00', - strokeWidth: 2, - fillOpacity: 0, - pointRadius: 10 - } - ), - circle - ]); - if (firstGeolocation) { - map.zoomToExtent(vector.getDataExtent()); - pulsate(circle); - firstGeolocation = false; - this.bind = true; - } -}); -geolocate.events.register("locationfailed",this,function() { - OpenLayers.Console.log('Location detection failed'); -}); -document.getElementById('locate').onclick = function() { - vector.removeAllFeatures(); - geolocate.deactivate(); - document.getElementById('track').checked = false; - geolocate.watch = false; - firstGeolocation = true; - geolocate.activate(); -}; -document.getElementById('track').onclick = function() { - vector.removeAllFeatures(); - geolocate.deactivate(); - if (this.checked) { - geolocate.watch = true; - firstGeolocation = true; - geolocate.activate(); - } -}; -document.getElementById('track').checked = false; |