Encode beeline hash as indexes
This commit is contained in:
parent
3c8be96085
commit
044dab0f80
1 changed files with 13 additions and 8 deletions
|
|
@ -90,7 +90,7 @@ L.BRouter = L.Class.extend({
|
||||||
opts.lonlats = this._parseLonLats(params.lonlats);
|
opts.lonlats = this._parseLonLats(params.lonlats);
|
||||||
}
|
}
|
||||||
if (params.straight) {
|
if (params.straight) {
|
||||||
opts.beelineFlags = this._parseBeelines(params.straight);
|
opts.beelineFlags = this._parseBeelines(params.straight, opts.lonlats);
|
||||||
}
|
}
|
||||||
if (params.nogos) {
|
if (params.nogos) {
|
||||||
opts.nogos = this._parseNogos(params.nogos);
|
opts.nogos = this._parseNogos(params.nogos);
|
||||||
|
|
@ -315,17 +315,22 @@ L.BRouter = L.Class.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
_getBeelineString: function (beelineFlags) {
|
_getBeelineString: function (beelineFlags) {
|
||||||
var s = '';
|
var indexes = [];
|
||||||
for (var i = 0; i < beelineFlags.length; i++) {
|
for (var i = 0; i < beelineFlags.length; i++) {
|
||||||
s += beelineFlags[i] ? '1' : '0';
|
if (beelineFlags[i]) {
|
||||||
|
indexes.push(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return s;
|
return indexes.join(',');
|
||||||
},
|
},
|
||||||
|
|
||||||
_parseBeelines: function (s) {
|
_parseBeelines: function (s, lonlats) {
|
||||||
const beelineFlags = [];
|
if (!lonlats || lonlats.length < 2) return [];
|
||||||
for (const c of s) {
|
|
||||||
beelineFlags.push(!!+c);
|
const beelineFlags = new Array(lonlats.length - 1);
|
||||||
|
beelineFlags.fill(false);
|
||||||
|
for (const i of s.split(',')) {
|
||||||
|
beelineFlags[i] = true;
|
||||||
}
|
}
|
||||||
return beelineFlags;
|
return beelineFlags;
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue