Browse Source

Compile initState, apply if no state is set

master
parent
commit
61cdf70f29
  1. 29
      src/index.js
  2. 2
      src/language.js
  3. 14
      src/location.js

29
src/index.js

@ -28,18 +28,15 @@ require('./mapLayers')
require('./twigFunctions')
window.onload = function() {
var initState = {}
map = L.map('map')
call_hooks('init')
if (location.hash && location.hash.length > 1) {
applyState(readState(location.hash.substr(1)))
}
call_hooks_callback('init_callback', onload2)
call_hooks_callback('init_callback', initState, onload2.bind(this, initState))
}
function onload2 () {
function onload2 (initState) {
// Add Geo Search
var provider = new LeafletGeoSearch.OpenStreetMapProvider()
var searchControl = new LeafletGeoSearch.GeoSearchControl({
@ -71,6 +68,20 @@ function onload2 () {
OpenStreetBrowserLoader.setMap(map)
var newState
if (location.hash && location.hash.length > 1) {
newState = readState(location.hash.substr(1))
} else {
newState = initState
}
// make sure the map has an initial location
if (!('map' in newState)) {
newState.map = initState.map
}
applyState(newState)
OpenStreetBrowserLoader.getCategory('index', function (err, category) {
if (err) {
alert(err)
@ -119,6 +130,10 @@ function onload2 () {
}
function getStateMap () {
if (typeof map.getZoom() === 'undefined') {
return
}
var center = map.getCenter()
var zoom = map.getZoom()
var precision =

2
src/language.js

@ -75,7 +75,7 @@ function langName (code) {
return ret
}
register_hook('init_callback', function (callback) {
register_hook('init_callback', function (initState, callback) {
if ('data_lang' in options) {
tagTranslations.setTagLanguage(options.data_lang)
} else {

14
src/location.js

@ -1,21 +1,17 @@
var ipLocation = require('./ip-location')
register_hook('init_callback', function (callback) {
register_hook('init_callback', function (initState, callback) {
initState.map = ('zoom' in config.defaultView ? config.defaultView.zoom : 14) + '/' + config.defaultView.lat + '/' + config.defaultView.lon
if ('checkIpLocation' in config && !config.checkIpLocation) {
map.setView(config.defaultView, 'zoom' in config.defaultView ? config.defaultView.zoom : 14)
return callback()
}
ipLocation('', function (err, ipLoc) {
// initial map location already set
if (typeof map.getZoom() !== 'undefined') {
return callback()
}
var ret
if (typeof ipLoc === 'object' && 'latitude' in ipLoc) {
map.setView([ ipLoc.latitude, ipLoc.longitude ], 14)
} else {
map.setView(config.defaultView, 'zoom' in config.defaultView ? config.defaultView.zoom : 14)
initState.map = '14/' + ipLoc.latitude + '/' + ipLoc.longitude
}
callback()

Loading…
Cancel
Save