Render polygons from URL hash and pass it to BRouter server

This commit is contained in:
Phyks (Lucas Verney) 2019-02-18 21:00:36 +01:00
parent 70a0f73d12
commit 6e60751db0
2 changed files with 52 additions and 18 deletions

View file

@ -120,6 +120,8 @@ BR.NogoAreas = L.Control.extend({
setOptions: function(options) {
var nogos = options.nogos;
var polylines = options.polylines;
var polygons = options.polygons;
this._clear();
if (nogos) {
for (var i = 0; i < nogos.length; i++) {
@ -127,6 +129,18 @@ BR.NogoAreas = L.Control.extend({
this.drawnItems.addLayer(nogos[i]);
}
}
if (polylines) {
for (var i = 0; i < polylines.length; i++) {
polylines[i].setStyle(this.style);
this.drawnItems.addLayer(polylines[i]);
}
}
if (polygons) {
for (var i = 0; i < polygons.length; i++) {
polygons[i].setStyle(this.style);
this.drawnItems.addLayer(polygons[i]);
}
}
},
_clear: function () {

View file

@ -282,6 +282,10 @@ L.BRouter = L.Class.extend({
}
s += this._formatLatLng(vertices[j]);
}
if (polyline.options.nogoWeight) {
s += L.BRouter.NUMBER_SEPARATOR;
s += polyline.options.nogoWeight;
}
if (i < (nogos.length - 1)) {
s += L.BRouter.GROUP_SEPARATOR;
}
@ -304,9 +308,15 @@ L.BRouter = L.Class.extend({
latlngs = [];
for (var j = 0; j < numbers.length - 1;)
{
latlngs.push([numbers[j++], numbers[j++]]);
var lng = Number.parseFloat(numbers[j++]);
var lat = Number.parseFloat(numbers[j++]);
latlngs.push([lat, lng]);
}
nogos.push(L.polyline(latlngs));
var nogoWeight;
if (j < numbers.length) {
nogoWeight = Number.parseFloat(numbers[j++]);
}
nogos.push(L.polyline(latlngs, { nogoWeight: nogoWeight }));
}
}
return nogos;
@ -323,6 +333,10 @@ L.BRouter = L.Class.extend({
}
s += this._formatLatLng(vertices[j]);
}
if (polygon.options.nogoWeight) {
s += L.BRouter.NUMBER_SEPARATOR;
s += polygon.options.nogoWeight;
}
if (i < (nogos.length - 1)) {
s += L.BRouter.GROUP_SEPARATOR;
}
@ -345,9 +359,15 @@ L.BRouter = L.Class.extend({
latlngs = [];
for (var j = 0; j < numbers.length - 1;)
{
latlngs.push([numbers[j++], numbers[j++]]);
var lng = Number.parseFloat(numbers[j++]);
var lat = Number.parseFloat(numbers[j++]);
latlngs.push([lat, lng]);
}
nogos.push(L.polygon(latlngs));
var nogoWeight;
if (j < numbers.length) {
nogoWeight = Number.parseFloat(numbers[j++]);
}
nogos.push(L.polygon(latlngs, { nogoWeight: nogoWeight }));
}
}
return nogos;