google-maps-drawing-tools
Version:
Unified drawing tools for Google Maps
54 lines • 5.11 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const guid_1 = require("./utils/guid");
/**
* Base class for all tools
*/
/**
* Available tool ids to use for `manager.changeTool`.
*/
var ToolId;
(function (ToolId) {
ToolId["Marker"] = "marker";
ToolId["Circle"] = "circle";
ToolId["Polygon"] = "polygon";
ToolId["Line"] = "line";
ToolId["Rectangle"] = "rectangle";
})(ToolId = exports.ToolId || (exports.ToolId = {}));
class Tool {
constructor(options) {
this.map = options.map;
}
activate() {
// TODO
if (this.map) {
this.map.setOptions({ draggableCursor: 'crosshair' });
}
this.shape = {
id: guid_1.default(),
toolType: this.id,
feature: this.feature
};
return this.shape;
}
deactivate() {
// TODO
if (this.map) {
this.map.setOptions({ draggableCursor: 'default' });
}
}
set feature(feature) {
if (feature && this.shape) {
feature.setProperty('id', this.shape.id);
}
if (this.shape) {
this.shape.feature = feature;
}
this._feature = feature;
}
get feature() {
return this._feature;
}
}
exports.default = Tool;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaXJhZGNoZW5rby93b3Jrc3BhY2UvZ29vZ2xlLW1hcHMtZHJhd2luZy10b29scy8iLCJzb3VyY2VzIjpbInRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1Q0FBZ0M7QUFFaEM7O0dBRUc7QUFFSDs7R0FFRztBQUNILElBQVksTUFNWDtBQU5ELFdBQVksTUFBTTtJQUNoQiwyQkFBaUIsQ0FBQTtJQUNqQiwyQkFBaUIsQ0FBQTtJQUNqQiw2QkFBbUIsQ0FBQTtJQUNuQix1QkFBYSxDQUFBO0lBQ2IsaUNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQU5XLE1BQU0sR0FBTixjQUFNLEtBQU4sY0FBTSxRQU1qQjtBQWtCRDtJQU9FLFlBQVksT0FBb0I7UUFDOUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTztRQUNQLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsRUFBRSxFQUFFLGNBQUksRUFBRTtZQUNWLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU87UUFDUCxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQTZDO1FBQ3ZELElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDekIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUM5QjtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBaERELHVCQWdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBndWlkIGZyb20gJy4vdXRpbHMvZ3VpZCc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYWxsIHRvb2xzXG4gKi9cblxuLyoqXG4gKiBBdmFpbGFibGUgdG9vbCBpZHMgdG8gdXNlIGZvciBgbWFuYWdlci5jaGFuZ2VUb29sYC5cbiAqL1xuZXhwb3J0IGVudW0gVG9vbElkIHtcbiAgTWFya2VyID0gJ21hcmtlcicsXG4gIENpcmNsZSA9ICdjaXJjbGUnLFxuICBQb2x5Z29uID0gJ3BvbHlnb24nLFxuICBMaW5lID0gJ2xpbmUnLFxuICBSZWN0YW5nbGUgPSAncmVjdGFuZ2xlJ1xufVxuXG4vKipcbiAqIE9iamVjdCByZXByZXNlbnRpbmcgdGhlIHNoYXBlIGluIHByb2dyZXNzIG9yIGNvbXBsZXRlZC5cbiAqXG4gKiBXaGVuIHRoZSBzaGFwZSBpcyBjb21wbGV0ZWQsIHRoaXMgb2JqZWN0IHdpbGwgaGF2ZSBpdCdzIGBmZWF0dXJlYCBhdHRyaWJ1dGVcbiAqIGZpbGxlZCBpbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaGFwZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRvb2xUeXBlPzogVG9vbElkO1xuICBmZWF0dXJlPzogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xPcHRpb25zIHtcbiAgbWFwOiBnb29nbGUubWFwcy5NYXA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFic3RyYWN0IGNsYXNzIFRvb2wge1xuICBtYXA6IGdvb2dsZS5tYXBzLk1hcCB8IG51bGw7XG4gIGlkPzogVG9vbElkO1xuICBzaGFwZT86IFNoYXBlO1xuXG4gIHByaXZhdGUgX2ZlYXR1cmU/OiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmU7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogVG9vbE9wdGlvbnMpIHtcbiAgICB0aGlzLm1hcCA9IG9wdGlvbnMubWFwO1xuICB9XG5cbiAgYWN0aXZhdGUoKSB7XG4gICAgLy8gVE9ET1xuICAgIGlmICh0aGlzLm1hcCkge1xuICAgICAgdGhpcy5tYXAuc2V0T3B0aW9ucyh7IGRyYWdnYWJsZUN1cnNvcjogJ2Nyb3NzaGFpcicgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5zaGFwZSA9IHtcbiAgICAgIGlkOiBndWlkKCksXG4gICAgICB0b29sVHlwZTogdGhpcy5pZCxcbiAgICAgIGZlYXR1cmU6IHRoaXMuZmVhdHVyZVxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5zaGFwZTtcbiAgfVxuXG4gIGRlYWN0aXZhdGUoKSB7XG4gICAgLy8gVE9ET1xuICAgIGlmICh0aGlzLm1hcCkge1xuICAgICAgdGhpcy5tYXAuc2V0T3B0aW9ucyh7IGRyYWdnYWJsZUN1cnNvcjogJ2RlZmF1bHQnIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldCBmZWF0dXJlKGZlYXR1cmU6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChmZWF0dXJlICYmIHRoaXMuc2hhcGUpIHtcbiAgICAgIGZlYXR1cmUuc2V0UHJvcGVydHkoJ2lkJywgdGhpcy5zaGFwZS5pZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hhcGUpIHtcbiAgICAgIHRoaXMuc2hhcGUuZmVhdHVyZSA9IGZlYXR1cmU7XG4gICAgfVxuXG4gICAgdGhpcy5fZmVhdHVyZSA9IGZlYXR1cmU7XG4gIH1cblxuICBnZXQgZmVhdHVyZSgpOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mZWF0dXJlO1xuICB9XG59XG4iXX0=