Refactor layer persistence

This commit is contained in:
John Firebaugh 2013-06-10 15:49:07 -07:00
parent 6619b777e3
commit 75a776a574
2 changed files with 23 additions and 32 deletions

View file

@ -24,31 +24,31 @@ $(document).ready(function () {
layers = [{
layer: new L.OSM.Mapnik({
attribution: ''
attribution: '',
code: "M"
}),
keyid: "mapnik",
layerCode: "M",
name: I18n.t("javascripts.map.base.standard")
}, {
layer: new L.OSM.CycleMap({
attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
code: "C"
}),
keyid: "cyclemap",
layerCode: "C",
name: I18n.t("javascripts.map.base.cycle_map")
}, {
layer: new L.OSM.TransportMap({
attribution: "Tiles courtesy of <a href='http://www.opencyclemap.org/' target='_blank'>Andy Allan</a>",
code: "T"
}),
keyid: "transportmap",
layerCode: "T",
name: I18n.t("javascripts.map.base.transport_map")
}, {
layer: new L.OSM.MapQuestOpen({
attribution: "Tiles courtesy of <a href='http://www.mapquest.com/' target='_blank'>MapQuest</a> <img src='http://developer.mapquest.com/content/osm/mq_logo.png'>",
code: "Q"
}),
keyid: "mapquest",
layerCode: "Q",
name: I18n.t("javascripts.map.base.mapquest")
}];
@ -100,7 +100,18 @@ $(document).ready(function () {
}
if (params.layers) {
setMapLayers(params.layers);
var foundLayer = false;
for (var i = 0; i < layers.length; i++) {
if (params.layers.indexOf(layers[i].layer.options.code) >= 0) {
map.addLayer(layers[i].layer);
foundLayer = true;
} else {
map.removeLayer(layers[i].layer);
}
}
if (!foundLayer) {
map.addLayer(layers[0].layer);
}
}
if (params.marker) {
@ -214,25 +225,11 @@ function getMapBaseLayer() {
function getMapLayers() {
var layerConfig = "";
for (var i = 0; i < layers.length; i++) {
if (map.hasLayer(layers[i].layer)) {
layerConfig += layers[i].layerCode;
for (var i in map._layers) { // TODO: map.eachLayer
var layer = map._layers[i];
if (layer.options && layer.options.code) {
layerConfig += layer.options.code;
}
}
return layerConfig;
}
function setMapLayers(layerConfig) {
var foundLayer = false;
for (var i = 0; i < layers.length; i++) {
if (layerConfig.indexOf(layers[i].layerCode) >= 0) {
map.addLayer(layers[i].layer);
foundLayer = true;
} else {
map.removeLayer(layers[i].layer);
}
}
if (!foundLayer) {
map.addLayer(layers[0].layer);
}
}

View file

@ -3,7 +3,7 @@
$(document).ready(function () {
var params = OSM.mapParams(),
noteLayer = new L.LayerGroup(),
noteLayer = new L.LayerGroup({code: 'N'}),
notes = {},
newNote;
@ -25,11 +25,6 @@ $(document).ready(function () {
})
};
layers.push({
layer: noteLayer,
layerCode: "N"
});
map.noteLayer = noteLayer;
map.on("layeradd", function (e) {
@ -57,8 +52,7 @@ $(document).ready(function () {
});
if (OSM.STATUS != 'api_offline' && OSM.STATUS != 'database_offline') {
if (params.layers) setMapLayers(params.layers);
if (params.notes) map.addLayer(noteLayer);
if (params.notes || params.layers.indexOf('N') >= 0) map.addLayer(noteLayer);
if (params.note) {
$.ajax({
url: "/api/" + OSM.API_VERSION + "/notes/" + params.note + ".json",