HERE небольшой демо, что я вытащил Сформируйте страницу примеры openlayers3, вы можете увидеть часть образца кода ниже:LocalStorage не работает в OpenLayers геолокации
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) '. Это даст вам объект. Но я не очень оптимистичен в сравнении, так как ни один из двух объектов не идентичен. –
@HunanRostomyan naa не работает! –