UNPKG

google-maps-drawing-tools

Version:
41 lines 5.02 kB
import Tool, { ToolId } from '../tool'; export default class LineTool extends Tool { constructor(options) { super(options); this.id = ToolId.Line; this.data = options.data; // private this.dataId = 'LineString'; this.dataStyle = options.style || { strokeColor: '#374046', 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaXJhZGNoZW5rby93b3Jrc3BhY2UvZ29vZ2xlLW1hcHMtZHJhd2luZy10b29scy8iLCJzb3VyY2VzIjpbInRvb2xzL2xpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLEVBQUUsRUFBUyxNQUFNLEVBQWUsTUFBTSxTQUFTLENBQUM7QUFTM0QsTUFBTSxDQUFDLE9BQU8sZUFBZ0IsU0FBUSxJQUFJO0lBUXhDLFlBQVksT0FBd0I7UUFDbEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUV6QixVQUFVO1FBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJO1lBQ2hDLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFlBQVksRUFBRSxDQUFDO1lBQ2YsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFVBQVU7UUFDUixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVG9vbCwgeyBTaGFwZSwgVG9vbElkLCBUb29sT3B0aW9ucyB9IGZyb20gJy4uL3Rvb2wnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbmVUb29sT3B0aW9ucyBleHRlbmRzIFRvb2xPcHRpb25zIHtcbiAgZGF0YTogZ29vZ2xlLm1hcHMuRGF0YTtcbiAgc3R5bGU/OiBnb29nbGUubWFwcy5EYXRhLlN0eWxlT3B0aW9ucztcbn1cblxuZXhwb3J0IHR5cGUgRHJhd2luZ01vZGUgPSAnUG9pbnQnIHwgJ0xpbmVTdHJpbmcnIHwgJ1BvbHlnb24nIHwgbnVsbDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGluZVRvb2wgZXh0ZW5kcyBUb29sIHtcbiAgaWQ6IFRvb2xJZDtcbiAgZGF0YTogZ29vZ2xlLm1hcHMuRGF0YTtcblxuICBwcml2YXRlIGRhdGFJZDogRHJhd2luZ01vZGU7XG4gIHByaXZhdGUgZGF0YVN0eWxlOiBnb29nbGUubWFwcy5EYXRhLlN0eWxlT3B0aW9ucztcbiAgcHJpdmF0ZSBkYXRhTGlzdGVuZXI/OiBnb29nbGUubWFwcy5NYXBzRXZlbnRMaXN0ZW5lcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMaW5lVG9vbE9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuaWQgPSBUb29sSWQuTGluZTtcbiAgICB0aGlzLmRhdGEgPSBvcHRpb25zLmRhdGE7XG5cbiAgICAvLyBwcml2YXRlXG4gICAgdGhpcy5kYXRhSWQgPSAnTGluZVN0cmluZyc7XG4gICAgdGhpcy5kYXRhU3R5bGUgPSBvcHRpb25zLnN0eWxlIHx8IHtcbiAgICAgIHN0cm9rZUNvbG9yOiAnIzM3NDA0NicsXG4gICAgICBzdHJva2VXZWlnaHQ6IDIsXG4gICAgICBjbGlja2FibGU6IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIGFjdGl2YXRlKCk6IFNoYXBlIHtcbiAgICBsZXQgc2hhcGUgPSBzdXBlci5hY3RpdmF0ZSgpO1xuXG4gICAgdGhpcy5kYXRhLnNldERyYXdpbmdNb2RlKHRoaXMuZGF0YUlkKTtcbiAgICB0aGlzLmRhdGEuc2V0U3R5bGUodGhpcy5kYXRhU3R5bGUpO1xuXG4gICAgdGhpcy5zZXR1cExpc3RlbmVycygpO1xuXG4gICAgcmV0dXJuIHNoYXBlO1xuICB9XG5cbiAgZGVhY3RpdmF0ZSgpIHtcbiAgICBzdXBlci5kZWFjdGl2YXRlKCk7XG5cbiAgICB0aGlzLmRhdGEuc2V0RHJhd2luZ01vZGUobnVsbCk7XG4gICAgdGhpcy5jbGVhbnVwTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwTGlzdGVuZXJzKCkge1xuICAgIGxldCBsaXN0ZW5lciA9IHRoaXMuZGF0YS5hZGRMaXN0ZW5lcignYWRkZmVhdHVyZScsICh7IGZlYXR1cmUgfSkgPT4ge1xuICAgICAgdGhpcy5mZWF0dXJlID0gZmVhdHVyZTtcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mZWF0dXJlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZGF0YUxpc3RlbmVyID0gbGlzdGVuZXI7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHRoaXMuZGF0YUxpc3RlbmVyKSB7XG4gICAgICBnb29nbGUubWFwcy5ldmVudC5yZW1vdmVMaXN0ZW5lcih0aGlzLmRhdGFMaXN0ZW5lcik7XG4gICAgfVxuICB9XG59XG4iXX0=