If the browser doesn't support geolocation then we might as well just start manual edit mode straight away rather than waiting four seconds.
47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
$(document).ready(function() {
|
|
var params = OSM.params();
|
|
|
|
if (params.lat && params.lon) {
|
|
params.lat = parseFloat(params.lat);
|
|
params.lon = parseFloat(params.lon);
|
|
params.zoom = params.zoom || 17;
|
|
|
|
var url = '/edit';
|
|
|
|
if (params.editor) {
|
|
url += '?editor=' + params.editor;
|
|
}
|
|
|
|
url += OSM.formatHash(params);
|
|
|
|
$('.start-mapping').attr('href', url);
|
|
|
|
} else {
|
|
function geoSuccess(position) {
|
|
window.location = '/edit' + OSM.formatHash({
|
|
zoom: 17,
|
|
lat: position.coords.latitude,
|
|
lon: position.coords.longitude
|
|
});
|
|
}
|
|
|
|
$('.start-mapping').on('click', function(e) {
|
|
e.preventDefault();
|
|
$('.start-mapping').addClass('loading');
|
|
|
|
if (navigator.geolocation) {
|
|
// handle firefox's weird implementation
|
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=675533
|
|
window.setTimeout(manualEdit, 4000);
|
|
|
|
navigator.geolocation.getCurrentPosition(geoSuccess, manualEdit);
|
|
} else {
|
|
manualEdit();
|
|
}
|
|
});
|
|
}
|
|
|
|
function manualEdit() {
|
|
window.location = '/?edit_help=1';
|
|
}
|
|
});
|