From c5ba5b0456a711d157e317f220e9c739226e7f50 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 10 Jan 2012 01:54:37 +0100 Subject: Installed leaflet in extlib --- extlib/leaflet/src/layer/vector/Polygon.js | 58 ++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 extlib/leaflet/src/layer/vector/Polygon.js (limited to 'extlib/leaflet/src/layer/vector/Polygon.js') diff --git a/extlib/leaflet/src/layer/vector/Polygon.js b/extlib/leaflet/src/layer/vector/Polygon.js new file mode 100644 index 00000000..52bf2d6b --- /dev/null +++ b/extlib/leaflet/src/layer/vector/Polygon.js @@ -0,0 +1,58 @@ +/* + * 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[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.Path.SVG ? 'z' : 'x'); + } +}); \ No newline at end of file -- cgit v1.2.3