Refactor geolocate control

This commit is contained in:
Tom MacWright
2013-01-08 12:14:05 -05:00
parent 87169a898c
commit 85c8bdf0ff
3 changed files with 24 additions and 12 deletions

View File

@@ -46,6 +46,7 @@
<script src='js/id/ui/layerswitcher.js'></script>
<script src='js/id/ui/contributors.js'></script>
<script src='js/id/ui/geocoder.js'></script>
<script src='js/id/ui/geolocate.js'></script>
<script src='js/id/ui/notice.js'></script>
<script src='js/id/ui/tag_reference.js'></script>

View File

@@ -184,20 +184,9 @@ window.iD = function(container) {
return d[0] + ' icon';
});
function geolocateSuccess(position) {
map.center([position.coords.longitude, position.coords.latitude]);
}
function geolocateError() { }
if (navigator.geolocation) {
container.append('div')
.attr('class', 'geolocate-control map-control')
.append('button')
.attr('class', 'narrow')
.attr('title', 'Show My Location')
.text('G')
.on('click', function() {
navigator.geolocation.getCurrentPosition(geolocateSuccess, geolocateError);
});
.call(iD.geolocate(map));
}
var gc = container.append('div').attr('class', 'geocode-control map-control')

22
js/id/ui/geolocate.js Normal file
View File

@@ -0,0 +1,22 @@
iD.geolocate = function(map) {
function success(position) {
map.center([position.coords.longitude, position.coords.latitude]);
}
function error() { }
return function(selection) {
selection
.attr('class', 'geolocate-control map-control')
.append('button')
.attr('class', 'narrow')
.attr('title', 'Show My Location')
.text('G')
.on('click', function() {
navigator.geolocation.getCurrentPosition(
success, error);
});
};
};