Make L.LineUtil._flat public as L.LineUtil.isFlat (#5667)
Also, keep retrocompat for both L.LineUtil._flat and L.Polyline._flat (<1.1).
This commit is contained in:
parent
b090e88498
commit
b675753422
@ -12,7 +12,7 @@ describe('Polygon', function () {
|
|||||||
|
|
||||||
var polygon = new L.Polygon(latLngs);
|
var polygon = new L.Polygon(latLngs);
|
||||||
|
|
||||||
expect(L.LineUtil._flat(polygon._latlngs)).to.be(false);
|
expect(L.LineUtil.isFlat(polygon._latlngs)).to.be(false);
|
||||||
expect(polygon.getLatLngs()).to.eql(polygon._latlngs);
|
expect(polygon.getLatLngs()).to.eql(polygon._latlngs);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -35,27 +35,35 @@ describe('PolylineGeometry', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('LineUtil', function () {
|
describe('LineUtil', function () {
|
||||||
describe('#_flat', function () {
|
describe('#isFlat', function () {
|
||||||
var layer = L.polyline([]);
|
var layer = L.polyline([]);
|
||||||
|
|
||||||
it('should return true for an array of LatLngs', function () {
|
it('should return true for an array of LatLngs', function () {
|
||||||
expect(L.LineUtil._flat([L.latLng([0, 0])])).to.be(true);
|
expect(L.LineUtil.isFlat([L.latLng([0, 0])])).to.be(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return true for an array of LatLngs arrays', function () {
|
it('should return true for an array of LatLngs arrays', function () {
|
||||||
expect(L.LineUtil._flat([[0, 0]])).to.be(true);
|
expect(L.LineUtil.isFlat([[0, 0]])).to.be(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return true for an empty array', function () {
|
it('should return true for an empty array', function () {
|
||||||
expect(L.LineUtil._flat([])).to.be(true);
|
expect(L.LineUtil.isFlat([])).to.be(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return false for a nested array of LatLngs', function () {
|
it('should return false for a nested array of LatLngs', function () {
|
||||||
expect(L.LineUtil._flat([[L.latLng([0, 0])]])).to.be(false);
|
expect(L.LineUtil.isFlat([[L.latLng([0, 0])]])).to.be(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return false for a nested empty array', function () {
|
it('should return false for a nested empty array', function () {
|
||||||
expect(L.LineUtil._flat([[]])).to.be(false);
|
expect(L.LineUtil.isFlat([[]])).to.be(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be aliased as _flat for retrocompat', function () {
|
||||||
|
expect(L.LineUtil._flat([L.latLng([0, 0])])).to.be(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be aliased as L.Polyline._flat for retrocompat', function () {
|
||||||
|
expect(L.Polyline._flat([L.latLng([0, 0])])).to.be(true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -230,7 +230,13 @@ export function _sqClosestPointOnSegment(p, p1, p2, sqDist) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export function _flat(latlngs) {
|
// @function isFlat(latlngs: LatLng[]): Boolean
|
||||||
// true if it's a flat array of latlngs; false if nested
|
// Returns true if `latlngs` is a flat array, false is nested.
|
||||||
|
export function isFlat(latlngs) {
|
||||||
return !Util.isArray(latlngs[0]) || (typeof latlngs[0][0] !== 'object' && typeof latlngs[0][0] !== 'undefined');
|
return !Util.isArray(latlngs[0]) || (typeof latlngs[0][0] !== 'object' && typeof latlngs[0][0] !== 'undefined');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function _flat(latlngs) {
|
||||||
|
console.warn('Deprecated use of _flat, please use L.LineUtil.isFlat instead.');
|
||||||
|
return isFlat(latlngs);
|
||||||
|
}
|
||||||
|
@ -314,7 +314,7 @@ CircleMarker.include(PointToGeoJSON);
|
|||||||
// Returns a [`GeoJSON`](http://en.wikipedia.org/wiki/GeoJSON) representation of the polyline (as a GeoJSON `LineString` or `MultiLineString` Feature).
|
// Returns a [`GeoJSON`](http://en.wikipedia.org/wiki/GeoJSON) representation of the polyline (as a GeoJSON `LineString` or `MultiLineString` Feature).
|
||||||
Polyline.include({
|
Polyline.include({
|
||||||
toGeoJSON: function (precision) {
|
toGeoJSON: function (precision) {
|
||||||
var multi = !LineUtil._flat(this._latlngs);
|
var multi = !LineUtil.isFlat(this._latlngs);
|
||||||
|
|
||||||
var coords = latLngsToCoords(this._latlngs, multi ? 1 : 0, false, precision);
|
var coords = latLngsToCoords(this._latlngs, multi ? 1 : 0, false, precision);
|
||||||
|
|
||||||
@ -330,8 +330,8 @@ Polyline.include({
|
|||||||
// Returns a [`GeoJSON`](http://en.wikipedia.org/wiki/GeoJSON) representation of the polygon (as a GeoJSON `Polygon` or `MultiPolygon` Feature).
|
// Returns a [`GeoJSON`](http://en.wikipedia.org/wiki/GeoJSON) representation of the polygon (as a GeoJSON `Polygon` or `MultiPolygon` Feature).
|
||||||
Polygon.include({
|
Polygon.include({
|
||||||
toGeoJSON: function (precision) {
|
toGeoJSON: function (precision) {
|
||||||
var holes = !LineUtil._flat(this._latlngs),
|
var holes = !LineUtil.isFlat(this._latlngs),
|
||||||
multi = holes && !LineUtil._flat(this._latlngs[0]);
|
multi = holes && !LineUtil.isFlat(this._latlngs[0]);
|
||||||
|
|
||||||
var coords = latLngsToCoords(this._latlngs, multi ? 2 : holes ? 1 : 0, true, precision);
|
var coords = latLngsToCoords(this._latlngs, multi ? 2 : holes ? 1 : 0, true, precision);
|
||||||
|
|
||||||
|
@ -109,13 +109,13 @@ export var Polygon = Polyline.extend({
|
|||||||
|
|
||||||
_setLatLngs: function (latlngs) {
|
_setLatLngs: function (latlngs) {
|
||||||
Polyline.prototype._setLatLngs.call(this, latlngs);
|
Polyline.prototype._setLatLngs.call(this, latlngs);
|
||||||
if (LineUtil._flat(this._latlngs)) {
|
if (LineUtil.isFlat(this._latlngs)) {
|
||||||
this._latlngs = [this._latlngs];
|
this._latlngs = [this._latlngs];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_defaultShape: function () {
|
_defaultShape: function () {
|
||||||
return LineUtil._flat(this._latlngs[0]) ? this._latlngs[0] : this._latlngs[0][0];
|
return LineUtil.isFlat(this._latlngs[0]) ? this._latlngs[0] : this._latlngs[0][0];
|
||||||
},
|
},
|
||||||
|
|
||||||
_clipPoints: function () {
|
_clipPoints: function () {
|
||||||
|
@ -176,13 +176,13 @@ export var Polyline = Path.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_defaultShape: function () {
|
_defaultShape: function () {
|
||||||
return LineUtil._flat(this._latlngs) ? this._latlngs : this._latlngs[0];
|
return LineUtil.isFlat(this._latlngs) ? this._latlngs : this._latlngs[0];
|
||||||
},
|
},
|
||||||
|
|
||||||
// recursively convert latlngs input into actual LatLng instances; calculate bounds along the way
|
// recursively convert latlngs input into actual LatLng instances; calculate bounds along the way
|
||||||
_convertLatLngs: function (latlngs) {
|
_convertLatLngs: function (latlngs) {
|
||||||
var result = [],
|
var result = [],
|
||||||
flat = LineUtil._flat(latlngs);
|
flat = LineUtil.isFlat(latlngs);
|
||||||
|
|
||||||
for (var i = 0, len = latlngs.length; i < len; i++) {
|
for (var i = 0, len = latlngs.length; i < len; i++) {
|
||||||
if (flat) {
|
if (flat) {
|
||||||
@ -322,3 +322,5 @@ export function polyline(latlngs, options) {
|
|||||||
return new Polyline(latlngs, options);
|
return new Polyline(latlngs, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Retrocompat. Allow plugins to support Leaflet versions before and after 1.1.
|
||||||
|
Polyline._flat = LineUtil._flat;
|
||||||
|
Loading…
Reference in New Issue
Block a user