12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /**
- * @class L.Draw.Rectangle
- * @aka Draw.Rectangle
- * @inherits L.Draw.SimpleShape
- */
- L.Draw.Rectangle = L.Draw.SimpleShape.extend({
- statics: {
- TYPE: 'rectangle'
- },
- options: {
- shapeOptions: {
- stroke: true,
- color: '#3388ff',
- weight: 4,
- opacity: 0.5,
- fill: true,
- fillColor: null, //same as color by default
- fillOpacity: 0.2,
- showArea: true,
- clickable: true
- },
- metric: true // Whether to use the metric measurement system or imperial
- },
- // @method initialize(): void
- initialize: function (map, options) {
- // Save the type so super can fire, need to do this as cannot do this.TYPE :(
- this.type = L.Draw.Rectangle.TYPE;
- this._initialLabelText = L.drawLocal.draw.handlers.rectangle.tooltip.start;
- L.Draw.SimpleShape.prototype.initialize.call(this, map, options);
- },
- _drawShape: function (latlng) {
- if (!this._shape) {
- this._shape = new L.Rectangle(new L.LatLngBounds(this._startLatLng, latlng), this.options.shapeOptions);
- this._map.addLayer(this._shape);
- } else {
- this._shape.setBounds(new L.LatLngBounds(this._startLatLng, latlng));
- }
- },
- _fireCreatedEvent: function () {
- var rectangle = new L.Rectangle(this._shape.getBounds(), this.options.shapeOptions);
- L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, rectangle);
- },
- _getTooltipText: function () {
- var tooltipText = L.Draw.SimpleShape.prototype._getTooltipText.call(this),
- shape = this._shape,
- showArea = this.options.showArea,
- latLngs, area, subtext;
- if (shape) {
- latLngs = this._shape._defaultShape ? this._shape._defaultShape() : this._shape.getLatLngs();
- area = L.GeometryUtil.geodesicArea(latLngs);
- subtext = showArea ? L.GeometryUtil.readableArea(area, this.options.metric) : ''
- }
- return {
- text: tooltipText.text,
- subtext: subtext
- };
- }
- });
|