UNPKG

google-maps-drawing-tools

Version:
46 lines 5.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tool_1 = require("../tool"); class PolygonTool extends tool_1.default { constructor(options) { super(options); this.id = tool_1.ToolId.Polygon; this.data = options.data; // private this.dataId = 'Polygon'; this.dataStyle = options.style || { strokeColor: '#374046', fillColor: '#374046', fillOpacity: 0.5, strokeWeight: 2, clickable: false }; } activate() { let shape = super.activate(); this.data.setDrawingMode(this.dataId); this.data.setStyle(this.dataStyle); this.setupListeners(); return shape; } deactivate() { super.deactivate(); this.data.setDrawingMode(null); this.cleanupListeners(); } setupListeners() { let listener = this.data.addListener('addfeature', ({ feature }) => { this.feature = feature; this.deactivate(); }); this.feature = undefined; this.dataListener = listener; } cleanupListeners() { if (this.dataListener) { google.maps.event.removeListener(this.dataListener); } } } exports.default = PolygonTool; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWdvbi5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaXJhZGNoZW5rby93b3Jrc3BhY2UvZ29vZ2xlLW1hcHMtZHJhd2luZy10b29scy8iLCJzb3VyY2VzIjpbInRvb2xzL3BvbHlnb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQ0FBMkQ7QUFTM0QsaUJBQWlDLFNBQVEsY0FBSTtJQVEzQyxZQUFZLE9BQTJCO1FBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxFQUFFLEdBQUcsYUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFekIsVUFBVTtRQUNWLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSTtZQUNoQyxXQUFXLEVBQUUsU0FBUztZQUN0QixTQUFTLEVBQUUsU0FBUztZQUNwQixXQUFXLEVBQUUsR0FBRztZQUNoQixZQUFZLEVBQUUsQ0FBQztZQUNmLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU3QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxVQUFVO1FBQ1IsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUNqRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztDQUNGO0FBMURELDhCQTBEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUb29sLCB7IFNoYXBlLCBUb29sSWQsIFRvb2xPcHRpb25zIH0gZnJvbSAnLi4vdG9vbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9seWdvblRvb2xPcHRpb25zIGV4dGVuZHMgVG9vbE9wdGlvbnMge1xuICBkYXRhOiBnb29nbGUubWFwcy5EYXRhO1xuICBzdHlsZT86IGdvb2dsZS5tYXBzLkRhdGEuU3R5bGVPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBEcmF3aW5nTW9kZSA9ICdQb2ludCcgfCAnTGluZVN0cmluZycgfCAnUG9seWdvbicgfCBudWxsO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb2x5Z29uVG9vbCBleHRlbmRzIFRvb2wge1xuICBpZDogVG9vbElkO1xuICBkYXRhOiBnb29nbGUubWFwcy5EYXRhO1xuXG4gIHByaXZhdGUgZGF0YUlkOiBEcmF3aW5nTW9kZTtcbiAgcHJpdmF0ZSBkYXRhU3R5bGU6IGdvb2dsZS5tYXBzLkRhdGEuU3R5bGVPcHRpb25zO1xuICBwcml2YXRlIGRhdGFMaXN0ZW5lcj86IGdvb2dsZS5tYXBzLk1hcHNFdmVudExpc3RlbmVyO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBvbHlnb25Ub29sT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgdGhpcy5pZCA9IFRvb2xJZC5Qb2x5Z29uO1xuICAgIHRoaXMuZGF0YSA9IG9wdGlvbnMuZGF0YTtcblxuICAgIC8vIHByaXZhdGVcbiAgICB0aGlzLmRhdGFJZCA9ICdQb2x5Z29uJztcbiAgICB0aGlzLmRhdGFTdHlsZSA9IG9wdGlvbnMuc3R5bGUgfHwge1xuICAgICAgc3Ryb2tlQ29sb3I6ICcjMzc0MDQ2JyxcbiAgICAgIGZpbGxDb2xvcjogJyMzNzQwNDYnLFxuICAgICAgZmlsbE9wYWNpdHk6IDAuNSxcbiAgICAgIHN0cm9rZVdlaWdodDogMixcbiAgICAgIGNsaWNrYWJsZTogZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgYWN0aXZhdGUoKTogU2hhcGUge1xuICAgIGxldCBzaGFwZSA9IHN1cGVyLmFjdGl2YXRlKCk7XG5cbiAgICB0aGlzLmRhdGEuc2V0RHJhd2luZ01vZGUodGhpcy5kYXRhSWQpO1xuICAgIHRoaXMuZGF0YS5zZXRTdHlsZSh0aGlzLmRhdGFTdHlsZSk7XG5cbiAgICB0aGlzLnNldHVwTGlzdGVuZXJzKCk7XG5cbiAgICByZXR1cm4gc2hhcGU7XG4gIH1cblxuICBkZWFjdGl2YXRlKCkge1xuICAgIHN1cGVyLmRlYWN0aXZhdGUoKTtcblxuICAgIHRoaXMuZGF0YS5zZXREcmF3aW5nTW9kZShudWxsKTtcbiAgICB0aGlzLmNsZWFudXBMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBMaXN0ZW5lcnMoKSB7XG4gICAgbGV0IGxpc3RlbmVyID0gdGhpcy5kYXRhLmFkZExpc3RlbmVyKCdhZGRmZWF0dXJlJywgKHsgZmVhdHVyZSB9KSA9PiB7XG4gICAgICB0aGlzLmZlYXR1cmUgPSBmZWF0dXJlO1xuICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZlYXR1cmUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5kYXRhTGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cExpc3RlbmVycygpIHtcbiAgICBpZiAodGhpcy5kYXRhTGlzdGVuZXIpIHtcbiAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LnJlbW92ZUxpc3RlbmVyKHRoaXMuZGF0YUxpc3RlbmVyKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==