X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/7f6320ed10ef13b11e4a1918d3f35340ac0ee545..52f755cb27dd7dad2fe65a3deb5d4591c6675dec:/app/assets/javascripts/diary_entry.js diff --git a/app/assets/javascripts/diary_entry.js b/app/assets/javascripts/diary_entry.js index 7dc988de7..625d43a52 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_entries.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_entries.edit.marker_text")); + } - map.events.register("click", map, setLocation); -} + map.on("click", setLocation); + }); +});