Sha256: 40dcf5ab114fe9341a86f3f97c8b5253c6917e97c191a58e29132e0fb29d9f1e
Contents?: true
Size: 1.47 KB
Versions: 3
Compression:
Stored size: 1.47 KB
Contents
/* * L.Polygon is used to display polygons on a map. */ L.Polygon = L.Polyline.extend({ options: { fill: true }, initialize: function (latlngs, options) { L.Polyline.prototype.initialize.call(this, latlngs, options); if (latlngs && (latlngs[0] instanceof Array)) { this._latlngs = latlngs[0]; this._holes = latlngs.slice(1); } }, projectLatlngs: function () { L.Polyline.prototype.projectLatlngs.call(this); // project polygon holes points // TODO move this logic to Polyline to get rid of duplication this._holePoints = []; if (!this._holes) { return; } for (var i = 0, len = this._holes.length, hole; i < len; i++) { this._holePoints[i] = []; for (var j = 0, len2 = this._holes[i].length; j < len2; j++) { this._holePoints[i][j] = this._map.latLngToLayerPoint(this._holes[i][j]); } } }, _clipPoints: function () { var points = this._originalPoints, newParts = []; this._parts = [points].concat(this._holePoints); if (this.options.noClip) { return; } for (var i = 0, len = this._parts.length; i < len; i++) { var clipped = L.PolyUtil.clipPolygon(this._parts[i], this._map._pathViewport); if (!clipped.length) { continue; } newParts.push(clipped); } this._parts = newParts; }, _getPathPartStr: function (points) { var str = L.Polyline.prototype._getPathPartStr.call(this, points); return str + (L.Browser.svg ? 'z' : 'x'); } });
Version data entries
3 entries across 3 versions & 1 rubygems