Allow a note=N parameter in the URL to zoom to and open a note

This commit is contained in:
Tom Hughes 2013-02-03 16:47:30 +00:00
parent 2da3b85a7a
commit 4b324f5896
2 changed files with 21 additions and 3 deletions

View file

@ -43,6 +43,20 @@ $(document).ready(function () {
map.layersControl.addOverlay(noteLayer, I18n.t("browse.start_rjs.notes_layer_name"));
if (params.notes) map.addLayer(noteLayer);
if (params.note) {
$.ajax({
url: "/api/" + OSM.API_VERSION + "/notes/" + params.note + ".json",
success: function (feature) {
var marker = updateMarker(notes[feature.properties.id], feature);
notes[feature.properties.id] = marker;
map.addLayer(noteLayer);
marker.openPopup();
}
});
}
}
function updateMarker(marker, feature) {
@ -106,10 +120,10 @@ $(document).ready(function () {
function popupOptions() {
var mapSize = map.getSize();
return {
return {
minWidth: 320,
maxWidth: mapSize.y * 1 / 3,
maxHeight: mapSize.y * 2 / 3,
maxWidth: mapSize.y * 1 / 3,
maxHeight: mapSize.y * 2 / 3,
offset: new L.Point(0, -3),
autoPanPadding: new L.Point(60, 40)
};

View file

@ -113,6 +113,10 @@ OSM = {
mapParams.notes = params.notes == "yes";
if (params.note) {
mapParams.note = parseInt(params.note);
}
var scale = parseFloat(params.scale);
if (scale > 0) {
mapParams.zoom = Math.log(360.0 / (scale * 512.0)) / Math.log(2.0);