google-maps-drawing-tools
Version:
Unified drawing tools for Google Maps
31 lines • 4.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const create_circle_1 = require("./create-circle");
const create_feature_1 = require("./create-feature");
function overlayToFeature(overlay) {
let paths = [];
if (overlay instanceof google.maps.Circle) {
let center = overlay.getCenter();
let radius = overlay.getRadius();
let circle = create_circle_1.default({
lat: center.lat(),
lng: center.lng(),
radius: radius,
});
paths = [circle];
}
else if (overlay instanceof google.maps.Rectangle) {
let bounds = overlay.getBounds();
let ne = bounds.getNorthEast();
let sw = bounds.getSouthWest();
let nw = new google.maps.LatLng(ne.lat(), sw.lng());
let se = new google.maps.LatLng(sw.lat(), ne.lng());
let path = [ne, se, sw, nw];
paths = [path];
}
let polygon = new google.maps.Data.Polygon(paths);
let feature = create_feature_1.default(polygon);
return feature;
}
exports.default = overlayToFeature;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS10by1mZWF0dXJlLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9pcmFkY2hlbmtvL3dvcmtzcGFjZS9nb29nbGUtbWFwcy1kcmF3aW5nLXRvb2xzLyIsInNvdXJjZXMiOlsidXRpbHMvb3ZlcmxheS10by1mZWF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQTJDO0FBQzNDLHFEQUE2QztBQVM3QywwQkFBeUMsT0FBZ0I7SUFDdkQsSUFBSSxLQUFLLEdBQTJCLEVBQUUsQ0FBQztJQUV2QyxJQUFJLE9BQU8sWUFBWSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUN6QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakMsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLElBQUksTUFBTSxHQUFHLHVCQUFZLENBQUM7WUFDeEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQVk7WUFDM0IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQVk7WUFDM0IsTUFBTSxFQUFFLE1BQWdCO1NBQ3pCLENBQUMsQ0FBQztRQUVILEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2xCO1NBQU0sSUFBSSxPQUFPLFlBQVksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDbkQsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMvQixJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDL0IsSUFBSSxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEQsSUFBSSxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU1QixLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNoQjtJQUVELElBQUksT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELElBQUksT0FBTyxHQUFHLHdCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFckMsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQTVCRCxtQ0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlQ2lyY2xlIGZyb20gJy4vY3JlYXRlLWNpcmNsZSc7XG5pbXBvcnQgY3JlYXRlRmVhdHVyZSBmcm9tICcuL2NyZWF0ZS1mZWF0dXJlJztcblxuZXhwb3J0IHR5cGUgT3ZlcmxheSA9XG4gIHwgZ29vZ2xlLm1hcHMuTWFya2VyXG4gIHwgZ29vZ2xlLm1hcHMuUG9seWdvblxuICB8IGdvb2dsZS5tYXBzLlBvbHlsaW5lXG4gIHwgZ29vZ2xlLm1hcHMuUmVjdGFuZ2xlXG4gIHwgZ29vZ2xlLm1hcHMuQ2lyY2xlO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvdmVybGF5VG9GZWF0dXJlKG92ZXJsYXk6IE92ZXJsYXkpIHtcbiAgbGV0IHBhdGhzOiBnb29nbGUubWFwcy5MYXRMbmdbXVtdID0gW107XG5cbiAgaWYgKG92ZXJsYXkgaW5zdGFuY2VvZiBnb29nbGUubWFwcy5DaXJjbGUpIHtcbiAgICBsZXQgY2VudGVyID0gb3ZlcmxheS5nZXRDZW50ZXIoKTtcbiAgICBsZXQgcmFkaXVzID0gb3ZlcmxheS5nZXRSYWRpdXMoKTtcbiAgICBsZXQgY2lyY2xlID0gY3JlYXRlQ2lyY2xlKHtcbiAgICAgIGxhdDogY2VudGVyLmxhdCgpIGFzIG51bWJlcixcbiAgICAgIGxuZzogY2VudGVyLmxuZygpIGFzIG51bWJlcixcbiAgICAgIHJhZGl1czogcmFkaXVzIGFzIG51bWJlcixcbiAgICB9KTtcblxuICAgIHBhdGhzID0gW2NpcmNsZV07XG4gIH0gZWxzZSBpZiAob3ZlcmxheSBpbnN0YW5jZW9mIGdvb2dsZS5tYXBzLlJlY3RhbmdsZSkge1xuICAgIGxldCBib3VuZHMgPSBvdmVybGF5LmdldEJvdW5kcygpO1xuICAgIGxldCBuZSA9IGJvdW5kcy5nZXROb3J0aEVhc3QoKTtcbiAgICBsZXQgc3cgPSBib3VuZHMuZ2V0U291dGhXZXN0KCk7XG4gICAgbGV0IG53ID0gbmV3IGdvb2dsZS5tYXBzLkxhdExuZyhuZS5sYXQoKSwgc3cubG5nKCkpO1xuICAgIGxldCBzZSA9IG5ldyBnb29nbGUubWFwcy5MYXRMbmcoc3cubGF0KCksIG5lLmxuZygpKTtcbiAgICBsZXQgcGF0aCA9IFtuZSwgc2UsIHN3LCBud107XG5cbiAgICBwYXRocyA9IFtwYXRoXTtcbiAgfVxuXG4gIGxldCBwb2x5Z29uID0gbmV3IGdvb2dsZS5tYXBzLkRhdGEuUG9seWdvbihwYXRocyk7XG4gIGxldCBmZWF0dXJlID0gY3JlYXRlRmVhdHVyZShwb2x5Z29uKTtcblxuICByZXR1cm4gZmVhdHVyZTtcbn1cbiJdfQ==