X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/7f6320ed10ef13b11e4a1918d3f35340ac0ee545..f83b719f0347931640475b9e5ee8d60bbc50fd6d:/app/assets/javascripts/diary_entry.js diff --git a/app/assets/javascripts/diary_entry.js b/app/assets/javascripts/diary_entry.js index 7dc988de7..b513057c1 100644 --- a/app/assets/javascripts/diary_entry.js +++ b/app/assets/javascripts/diary_entry.js @@ -1,33 +1,43 @@ -var marker; +$(document).ready(function () { + var marker, map; -function setLocation( e ) { - closeMapPopup(); + function setLocation(e) { + $("#latitude").val(e.latlng.lat); + $("#longitude").val(e.latlng.lng); - var lonlat = getEventPosition(e); + if (marker) { + map.removeLayer(marker); + } - $("#latitude").val(lonlat.lat); - $("#longitude").val(lonlat.lon); - - if (marker) { - removeMarkerFromMap(marker); + marker = L.marker(e.latlng, {icon: OSM.getUserIcon()}).addTo(map) + .bindPopup(I18n.t('diary_entry.edit.marker_text')); } - marker = addMarkerToMap(lonlat, null, I18n.t('diary_entry.edit.marker_text')); -} + $("#usemap").click(function (e) { + e.preventDefault(); -function openMap() { - $("#map").show(); - $("#usemap").hide(); + $("#map").show(); + $("#usemap").hide(); - var params = $("#map").data(); - var centre = new OpenLayers.LonLat(params.lon, params.lat); - var map = createMap("map"); + var params = $("#map").data(); + var centre = [params.lat, params.lon]; + var position = $('html').attr('dir') === 'rtl' ? 'topleft' : 'topright'; - setMapCenter(centre, params.zoom); + map = L.map("map", { + attributionControl: false, + zoomControl: false + }).addLayer(new L.OSM.Mapnik()); - if ($("#latitude").val() && $("#longitude").val()) { - marker = addMarkerToMap(centre, null, I18n.t('diary_entry.edit.marker_text')); - } + L.OSM.zoom({position: position}) + .addTo(map); + + map.setView(centre, params.zoom); + + if ($("#latitude").val() && $("#longitude").val()) { + marker = L.marker(centre, {icon: OSM.getUserIcon()}).addTo(map) + .bindPopup(I18n.t('diary_entry.edit.marker_text')); + } - map.events.register("click", map, setLocation); -} + map.on("click", setLocation); + }); +});