| | |
| | | var start_hest = turf.destination(start_west, hStep * i, hAngle, op).geometry.coordinates; |
| | | var end_hest = turf.destination(end_west, hStep * i, hAngle, op).geometry.coordinates; |
| | | var val = [ |
| | | [start_west[0], start_west[1],18], |
| | | [end_west[0], end_west[1],18], |
| | | [end_hest[0], end_hest[1],18], |
| | | [start_hest[0], start_hest[1],18], |
| | | [start_west[0], start_west[1],18] |
| | | [start_west[0], start_west[1], 18], |
| | | [end_west[0], end_west[1], 18], |
| | | [end_hest[0], end_hest[1], 18], |
| | | [start_hest[0], start_hest[1], 18], |
| | | [start_west[0], start_west[1], 18] |
| | | ] |
| | | this.setInsertGridData(val, (i * j)) |
| | | } |
| | |
| | | |
| | | store.state.isshowGrid = false; |
| | | |
| | | this.drawPoint(res); |
| | | // this.drawPoint(res); |
| | | this.drawRects(res) |
| | | |
| | | }, |
| | | |
| | | drawRects: function (res) { |
| | | this.cc = 0; |
| | | var rect = viewer.entities.getById(this.id); |
| | | if (!rect) return; |
| | | var points = rect.polygon.hierarchy.getValue().positions; |
| | | viewer.entities.removeAll(); // viewer.entities.remove(rect); |
| | | |
| | | var r0 = Cesium.Cartographic.fromCartesian(points[0]); |
| | | var r1 = Cesium.Cartographic.fromCartesian(points[1]); |
| | | var r2 = Cesium.Cartographic.fromCartesian(points[2]); |
| | | |
| | | var p0 = turf.point([(r0.longitude * 180) / Math.PI, (r0.latitude * 180) / Math.PI]); |
| | | var p1 = turf.point([(r1.longitude * 180) / Math.PI, (r1.latitude * 180) / Math.PI]); |
| | | var p2 = turf.point([(r2.longitude * 180) / Math.PI, (r2.latitude * 180) / Math.PI]); |
| | | |
| | | // 做成 3 * 4 的网格 |
| | | // var wCount = 3, hCount = 4; |
| | | var wCount = res.col, hCount = res.row; |
| | | this.flag = parseInt(wCount) * parseInt(hCount); |
| | | var op = { units: "meters", }; |
| | | var wStep = turf.distance(p0, p1, op) / wCount; |
| | | var hStep = turf.distance(p1, p2, op) / hCount; |
| | | var wAngle = turf.bearing(p0, p1); |
| | | var hAngle = turf.bearing(p1, p2); |
| | | this.removeRect(); |
| | | for (var i = 0; i < wCount; i++) { |
| | | var ds = turf.destination(p0, wStep * i, wAngle, op); |
| | | for (var j = 0; j < hCount; j++) { |
| | | var d1 = turf.destination(ds.geometry.coordinates, hStep * j, hAngle, op); |
| | | var d2 = turf.destination(d1.geometry.coordinates, wStep, wAngle, op); |
| | | var d3 = turf.destination(d2.geometry.coordinates, hStep, hAngle, op); |
| | | var d4 = turf.destination(d1.geometry.coordinates, hStep, hAngle, op); |
| | | |
| | | // var arr = [d1.geometry.coordinates, d2.geometry.coordinates, d3.geometry.coordinates, d4.geometry.coordinates]; |
| | | var arr = [ |
| | | [d1.geometry.coordinates[0], d1.geometry.coordinates[1], 18], |
| | | [d2.geometry.coordinates[0], d2.geometry.coordinates[1], 18], |
| | | [d3.geometry.coordinates[0], d3.geometry.coordinates[1], 18], |
| | | [d4.geometry.coordinates[0], d4.geometry.coordinates[1], 18], |
| | | [d1.geometry.coordinates[0], d1.geometry.coordinates[1], 18] |
| | | ] |
| | | this.setInsertGridData(arr, ((i + 1) * (j + 1))); |
| | | } |
| | | } |
| | | }, |
| | | async setInsertGridData(res, num) { |
| | | var obj = |
| | | { |
| | | "type": "Feature", |
| | | "properties": |
| | | { "ID": num, "NAME": "Area8", "REMARK": "" }, |
| | | { "ID": num, "NAME": "Area" + num, "REMARK": "", "TYPE": 'DrawGrid' }, |
| | | "geometry": |
| | | { |
| | | "type": "Polygon", |
| | |
| | | ] |
| | | } |
| | | } |
| | | |
| | | const data = await Grid_Insert({ json: JSON.stringify(obj) }) |
| | | if (data.status == 200) { |
| | | this.ids.push(data.data) |
| | | if (this.ids.length == this.flag) { |
| | | var obj = { |
| | | id: new Date().getTime(), |
| | | sourceType: 'DrawGrid', |
| | | name: "新建格网", |
| | | style: { |
| | | ids: this.ids, |
| | | sourceType: 'DrawGrid', |
| | | } |
| | | } |
| | | Bus.$emit("addOtherData", "对象", obj); |
| | | } |
| | | } |
| | | |
| | | if (this.flag == num) { |
| | | var obj = { |
| | | id: new Date().getTime(), |
| | | sourceType: 'DrawGrid', |
| | | name: "新建格网", |
| | | style: { |
| | | ids: this.ids, |
| | | sourceType: 'DrawGrid', |
| | | } |
| | | } |
| | | Bus.$emit("addOtherData", "对象", obj); |
| | | } |
| | | |
| | | } |
| | | }; |
| | | export default drawGrid |