UNPKG

google-maps-drawing-tools

Version:
43 lines 5.23 kB
import Tool, { ToolId } from '../tool'; export default class PolygonTool extends Tool { constructor(options) { super(options); this.id = 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); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWdvbi5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaXJhZGNoZW5rby93b3Jrc3BhY2UvZ29vZ2xlLW1hcHMtZHJhd2luZy10b29scy8iLCJzb3VyY2VzIjpbInRvb2xzL3BvbHlnb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLEVBQUUsRUFBUyxNQUFNLEVBQWUsTUFBTSxTQUFTLENBQUM7QUFTM0QsTUFBTSxDQUFDLE9BQU8sa0JBQW1CLFNBQVEsSUFBSTtJQVEzQyxZQUFZLE9BQTJCO1FBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFekIsVUFBVTtRQUNWLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSTtZQUNoQyxXQUFXLEVBQUUsU0FBUztZQUN0QixTQUFTLEVBQUUsU0FBUztZQUNwQixXQUFXLEVBQUUsR0FBRztZQUNoQixZQUFZLEVBQUUsQ0FBQztZQUNmLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU3QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxVQUFVO1FBQ1IsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUNqRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRvb2wsIHsgU2hhcGUsIFRvb2xJZCwgVG9vbE9wdGlvbnMgfSBmcm9tICcuLi90b29sJztcblxuZXhwb3J0IGludGVyZmFjZSBQb2x5Z29uVG9vbE9wdGlvbnMgZXh0ZW5kcyBUb29sT3B0aW9ucyB7XG4gIGRhdGE6IGdvb2dsZS5tYXBzLkRhdGE7XG4gIHN0eWxlPzogZ29vZ2xlLm1hcHMuRGF0YS5TdHlsZU9wdGlvbnM7XG59XG5cbmV4cG9ydCB0eXBlIERyYXdpbmdNb2RlID0gJ1BvaW50JyB8ICdMaW5lU3RyaW5nJyB8ICdQb2x5Z29uJyB8IG51bGw7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvbHlnb25Ub29sIGV4dGVuZHMgVG9vbCB7XG4gIGlkOiBUb29sSWQ7XG4gIGRhdGE6IGdvb2dsZS5tYXBzLkRhdGE7XG5cbiAgcHJpdmF0ZSBkYXRhSWQ6IERyYXdpbmdNb2RlO1xuICBwcml2YXRlIGRhdGFTdHlsZTogZ29vZ2xlLm1hcHMuRGF0YS5TdHlsZU9wdGlvbnM7XG4gIHByaXZhdGUgZGF0YUxpc3RlbmVyPzogZ29vZ2xlLm1hcHMuTWFwc0V2ZW50TGlzdGVuZXI7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogUG9seWdvblRvb2xPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICB0aGlzLmlkID0gVG9vbElkLlBvbHlnb247XG4gICAgdGhpcy5kYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgLy8gcHJpdmF0ZVxuICAgIHRoaXMuZGF0YUlkID0gJ1BvbHlnb24nO1xuICAgIHRoaXMuZGF0YVN0eWxlID0gb3B0aW9ucy5zdHlsZSB8fCB7XG4gICAgICBzdHJva2VDb2xvcjogJyMzNzQwNDYnLFxuICAgICAgZmlsbENvbG9yOiAnIzM3NDA0NicsXG4gICAgICBmaWxsT3BhY2l0eTogMC41LFxuICAgICAgc3Ryb2tlV2VpZ2h0OiAyLFxuICAgICAgY2xpY2thYmxlOiBmYWxzZVxuICAgIH07XG4gIH1cblxuICBhY3RpdmF0ZSgpOiBTaGFwZSB7XG4gICAgbGV0IHNoYXBlID0gc3VwZXIuYWN0aXZhdGUoKTtcblxuICAgIHRoaXMuZGF0YS5zZXREcmF3aW5nTW9kZSh0aGlzLmRhdGFJZCk7XG4gICAgdGhpcy5kYXRhLnNldFN0eWxlKHRoaXMuZGF0YVN0eWxlKTtcblxuICAgIHRoaXMuc2V0dXBMaXN0ZW5lcnMoKTtcblxuICAgIHJldHVybiBzaGFwZTtcbiAgfVxuXG4gIGRlYWN0aXZhdGUoKSB7XG4gICAgc3VwZXIuZGVhY3RpdmF0ZSgpO1xuXG4gICAgdGhpcy5kYXRhLnNldERyYXdpbmdNb2RlKG51bGwpO1xuICAgIHRoaXMuY2xlYW51cExpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cExpc3RlbmVycygpIHtcbiAgICBsZXQgbGlzdGVuZXIgPSB0aGlzLmRhdGEuYWRkTGlzdGVuZXIoJ2FkZGZlYXR1cmUnLCAoeyBmZWF0dXJlIH0pID0+IHtcbiAgICAgIHRoaXMuZmVhdHVyZSA9IGZlYXR1cmU7XG4gICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmVhdHVyZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmRhdGFMaXN0ZW5lciA9IGxpc3RlbmVyO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwTGlzdGVuZXJzKCkge1xuICAgIGlmICh0aGlzLmRhdGFMaXN0ZW5lcikge1xuICAgICAgZ29vZ2xlLm1hcHMuZXZlbnQucmVtb3ZlTGlzdGVuZXIodGhpcy5kYXRhTGlzdGVuZXIpO1xuICAgIH1cbiAgfVxufVxuIl19