ТУК е малка демонстрация, която аз изтеглен от страницата с примери на openlayers3, можете да видите част от примерен код по-долу:
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
target: 'map',
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}),
view: view
});
Сега исках да използвам localStorage и затова промених кода, за да бъде както следва:
if(!localStorage.layer) {
localStorage.layer = new ol.layer.Tile({ source: new ol.source.OSM() })
}
// creating the map
var map = new ol.Map({
layers: localStorage.layer ? [ localStorage.layer ] : [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
target: 'map',
controls: ol.control.defaults({
attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
collapsible: false
})
}),
view: view
});
Сега това по някаква причина не работи, сега, ако направя някакво отстраняване на грешки, получавам следното
Сега, ако напиша следното в конзолата:
new ol.layer.Tile({ source: new ol.source.OSM() })
взимам
G {ca: false, ka: undefined, fb: Kc, pd: G, Ma: null…}
Но ако го направя
localStorage.layer = new ol.layer.Tile({ source: new ol.source.OSM() })
И след това въведете:
localStorage.layer
взимам
"[object Object]"
Така че защо localStorage.layer
не е равно на ново ol.layer.Tile({ source: new ol.source.OSM() })
? Вярвам, че това е причината картата да не се зарежда. Разбира се, ако премахна кода на localStorage, картата за геолокация работи добре. Така че защо localStorage.layer
не е равно на ново ol.layer.Tile({ source: new ol.source.OSM() })
?
localStorage.layer
, като направите нещо катоJSON.parse(localStorage.layer)
. Това ще ви даде обекта. Но не съм оптимист за сравнението, тъй като няма два идентични обекта. - person Hunan Rostomyan   schedule 26.10.2015