-$(document).ready(function() {
+$(document).ready(function () {
var params = OSM.params();
if (params.lat && params.lon) {
- $('.edit-located').show();
-
- $.ajax({
- url: "http://nominatim.openstreetmap.org/reverse",
- data: {
- lat: params.lat,
- lon: params.lon,
- zoom: 10
- },
- success: function(xml) {
- var result = $(xml).find('result');
- if (result.length) {
- $('.edit-located').hide();
- $('.edit-geocoded').show();
- $('.edit-geocoded-location').text(result.text());
- }
- }
- });
-
- params = {
- lat: params.lat,
- lon: params.lon,
- zoom: params.zoom || 17,
- editor: params.editor
- };
-
- $('.start-mapping').attr('href', '/edit?' + $.param(params));
+ params.lat = parseFloat(params.lat);
+ params.lon = parseFloat(params.lon);
+ params.zoom = params.zoom || 17;
- } else if (navigator.geolocation) {
- $('.edit-geolocated').show();
+ var url = "/edit";
- function geoSuccess(position) {
- window.location = '/edit?zoom=17&lat=' + position.coords.latitude + '&lon=' + position.coords.longitude;
+ if (params.editor) {
+ url += "?editor=" + params.editor;
}
- function geoError() {
- $('.start-mapping')
- .removeClass('loading')
- .addClass('error');
- }
+ url += OSM.formatHash(params);
- $('.start-mapping').on('click', function(e) {
- e.preventDefault();
+ $(".start-mapping").attr("href", url);
+ } else {
+ var geoSuccess = function (position) {
+ window.location = "/edit" + OSM.formatHash({
+ zoom: 17,
+ lat: position.coords.latitude,
+ lon: position.coords.longitude
+ });
+ };
- $('.start-mapping')
- .addClass('loading');
+ $(".start-mapping").on("click", function (e) {
+ e.preventDefault();
+ $(".start-mapping").addClass("loading");
- // handle firefox's weird implementation
- // https://bugzilla.mozilla.org/show_bug.cgi?id=675533
- window.setTimeout(geoError, 4000);
+ 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, geoError);
+ navigator.geolocation.getCurrentPosition(geoSuccess, manualEdit);
+ } else {
+ manualEdit();
+ }
});
}
+
+ function manualEdit() {
+ window.location = "/?edit_help=1";
+ }
});