Skip to content

Commit

Permalink
Extends Leaflet-fullhash properly
Browse files Browse the repository at this point in the history
  • Loading branch information
bagage committed Apr 24, 2017
1 parent 590ee32 commit 3a06009
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 3 deletions.
6 changes: 5 additions & 1 deletion bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
"leaflet.locatecontrol": "^0.60.0",
"font-awesome": "^4.7.0",
"bootstrap-select": "hugdx/bootstrap-select#patch-1",
"leaflet-sidebar": "^0.1.9"
"leaflet-sidebar": "^0.1.9",
"leaflet-fullHash": "KoGor/leaflet-fullHash#master"
},
"overrides": {
"leaflet": {
Expand Down Expand Up @@ -96,6 +97,9 @@
"css/font-awesome.css",
"fonts/*"
]
},
"leaflet-fullHash": {
"main": "leaflet-fullHash.js"
}
}
}
6 changes: 4 additions & 2 deletions js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -263,10 +263,12 @@
}
};

urlHash = new L.Hash(map, mapLayers, function() {
urlHash = new BR.Hash(map, mapLayers);
urlHash.additionalCb = function() {
var url = router.getUrl(routing.getWaypoints(), null);
return url.substr('brouter?'.length);
}, onHashChangeCb);
};
urlHash.onHashChangeCb = onHashChangeCb;
routingOptions.on('update', urlHash.updateHash, urlHash);
nogos.on('update', urlHash.updateHash, urlHash);
// waypoint add, move, delete (but last)
Expand Down
65 changes: 65 additions & 0 deletions js/plugin/Hash.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
BR.Hash = L.hash.extend({

formatHash: function(map) {
var center = map.getCenter(),
zoom = map.getZoom(),
precision = Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2)),
layers = [];

//console.log(this.options);
var options = this.options;
//Check active layers
for(var key in options) {
if (options.hasOwnProperty(key)) {
if (map.hasLayer(options[key])) {
layers.push(key);
};
};
};

var url = "#" + [zoom,
center.lat.toFixed(precision),
center.lng.toFixed(precision),
layers.join("-")
].join("/");

if (this.additionalCb != null) {
var additional = this.additionalCb();
if (additional != null) {
url += additional;
}
}

return url;
},

update: function() {
var hash = location.hash;
if (hash === this.lastHash) {
return;
}
var parsed = this.parseHash(hash);
if (parsed) {
this.movingMap = true;

this.map.setView(parsed.center, parsed.zoom);
var layers = parsed.layers,
options = this.options,
that = this;
//Add/remove layers
this.map.eachLayer(function(layer) {
that.map.removeLayer(layer);
});

layers.forEach(function(element, index, array) {
//console.log(options[element]);
that.map.addLayer(options[element]);
});

this.movingMap = false;
} else {
this.onMapMove(this.map);
}
},

});
File renamed without changes.

0 comments on commit 3a06009

Please sign in to comment.