-
Glenn Vorhes authoredGlenn Vorhes authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
SelectArea.js.map 7.26 KiB
{"version":3,"file":"SelectArea.js","sourceRoot":"","sources":["../../src/reactComponents/SelectArea.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Created by glenn on 6/12/2017.\r\n */\r\n\r\nimport {React} from './reactAndRedux';\r\nimport ol = require('custom-ol');\r\nimport LayerBaseVectorGeoJson from '../layers/LayerBaseVectorGeoJson';\r\nimport {proj4326, proj3857} from '../olHelpers/projections'\r\nimport makeGuid from '../util/makeGuid';\r\nimport getMap from './helpers/get_map';\r\n\r\nexport interface iSelectArea{\r\n map: ol.Map | (() => ol.Map);\r\n callback: (coords: Array<number[]>) => any\r\n}\r\n\r\nexport class SelectArea extends React.Component<iSelectArea, null> {\r\n map: ol.Map;\r\n callback: (coords: Array<number[]>) => any;\r\n areaOverlay: LayerBaseVectorGeoJson;\r\n draw: ol.interaction.Draw;\r\n selectId: string;\r\n cancelId: string;\r\n selectButton: HTMLButtonElement;\r\n cancelButton: HTMLButtonElement;\r\n\r\n\r\n constructor(props: iSelectArea, context: Object) {\r\n super(props, context);\r\n\r\n this.selectId = makeGuid();\r\n this.cancelId = makeGuid();\r\n\r\n this.callback = this.props.callback;\r\n\r\n this.areaOverlay = new LayerBaseVectorGeoJson('',\r\n {\r\n style: new ol.style.Style({\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 0, 237, 0.1)'\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: 'rgb(255, 0, 237)',\r\n width: 2\r\n })\r\n }),\r\n transform: {dataProjection: proj4326, featureProjection: proj3857}\r\n });\r\n\r\n this.draw = new ol.interaction.Draw({\r\n source: this.areaOverlay.source,\r\n type: 'Polygon'\r\n });\r\n\r\n this.draw.on('drawend', (evt: {feature: {getGeometry: () => ol.geom.Polygon}}) => {\r\n this.selectButton.style.display = '';\r\n this.cancelButton.style.display = 'none';\r\n\r\n let geom = evt.feature.getGeometry();\r\n let geomClone = geom.clone();\r\n\r\n geomClone.transform('EPSG:3857', 'EPSG:4326');\r\n\r\n setTimeout(() => {\r\n this.map.removeInteraction(this.draw);\r\n }, 100);\r\n\r\n let outCoords = [];\r\n let ccc = geomClone.getCoordinates()[0];\r\n\r\n for (let cc of ccc) {\r\n outCoords.push([Math.round(cc[0] * 1000000) / 1000000, Math.round(cc[1] * 1000000) / 1000000]);\r\n }\r\n\r\n this.callback(outCoords);\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.selectButton = document.getElementById(this.selectId) as HTMLButtonElement;\r\n this.cancelButton = document.getElementById(this.cancelId) as HTMLButtonElement;\r\n getMap(this.props.map, this.areaOverlay.olLayer).then((m) => {this.map = m})\r\n }\r\n\r\n\r\n setArea() {\r\n if (!this.map) {\r\n return;\r\n }\r\n\r\n this.selectButton.style.display = 'none';\r\n this.cancelButton.style.display = '';\r\n\r\n this.areaOverlay.source.clear();\r\n this.map.addInteraction(this.draw);\r\n this.callback(null);\r\n }\r\n\r\n cancel() {\r\n if (!this.map) {\r\n return;\r\n }\r\n this.selectButton.style.display = '';\r\n this.cancelButton.style.display = 'none';\r\n\r\n this.areaOverlay.source.clear();\r\n this.map.removeInteraction(this.draw);\r\n\r\n this.callback(null);\r\n }\r\n\r\n render() {\r\n return <div className=\"ol-select-area\" style={{margin: '10px'}}>\r\n <button id={this.selectId} onClick={() => {\r\n this.setArea()\r\n }}>Select Area\r\n </button>\r\n <button id={this.cancelId} onClick={() => {\r\n this.cancel()\r\n }} style={{display: 'none'}}>Cancel\r\n </button>\r\n </div>\r\n }\r\n}\r\n"]}