From 3ba5eb125ac8890968e4437b098e39195d699434 Mon Sep 17 00:00:00 2001 From: Aijana Schumann Date: Thu, 5 Aug 2021 08:50:16 +0200 Subject: Update ODLUX Add LineOfSightApp, update Framework, Connect, Performance and LinkCalculatorApp Issue-ID: CCSDK-3417 Signed-off-by: Aijana Schumann Change-Id: I651a2fb771d2963aea70f916c70c8fdfd3443e87 --- .../apps/lineOfSightApp/src/components/mapInfo.tsx | 171 +++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 sdnr/wt/odlux/apps/lineOfSightApp/src/components/mapInfo.tsx (limited to 'sdnr/wt/odlux/apps/lineOfSightApp/src/components/mapInfo.tsx') diff --git a/sdnr/wt/odlux/apps/lineOfSightApp/src/components/mapInfo.tsx b/sdnr/wt/odlux/apps/lineOfSightApp/src/components/mapInfo.tsx new file mode 100644 index 000000000..43a6e478a --- /dev/null +++ b/sdnr/wt/odlux/apps/lineOfSightApp/src/components/mapInfo.tsx @@ -0,0 +1,171 @@ +/** + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt odlux + * ================================================================================================= + * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + */ + +import { Accordion, AccordionDetails, AccordionSummary, makeStyles, Paper, Typography } from '@material-ui/core'; +import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; +import { GPSProfileResult } from '../model/GPSProfileResult'; +import * as React from 'react'; +import { calculateDistanceInMeter } from '../utils/map'; +import connect, { Connect, IDispatcher } from '../../../../framework/src/flux/connect'; +import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore'; + +const mapStateToProps = (state: IApplicationStoreState) => ({ + center: state.lineOfSight.map.center, + zoom: state.lineOfSight.map.zoom, + start: state.lineOfSight.map.start, + end: state.lineOfSight.map.end, + heightA: state.lineOfSight.map.heightA, + heightB: state.lineOfSight.map.heightB, +}); + +const mapDispatchToProps = (dispatcher: IDispatcher) => ({ + + +}) + +type props = Connect & { + minHeight: GPSProfileResult | undefined; + maxHeight: GPSProfileResult | undefined; +}; + +const styles = (props: any) => makeStyles({ + accordion: {padding: 5, position: 'absolute', top: 10, width: props.width, marginLeft: 10, zIndex:1}, + container: { display: 'flex', flexDirection: "column", marginLeft:10, padding: 5 }, + caption:{width:'40%'}, + subTitleRow:{ width: '60%'}, + titleRowElement:{width: '40%', fontWeight: "bold"}, + secondRow:{width:'25%'}, + thirdRow:{width:'20%'} + }); + +const MapInfo: React.FC = (props) =>{ + + const [expanded, setExpanded] = React.useState(false); + const [width, setWidth] = React.useState(470); + const [length, setLength] = React.useState(); + + const classes = styles({width: width})(); + + const {start, end, center, zoom, heightA, heightB, minHeight, maxHeight} = props; + + React.useEffect(()=>{ + + if(start && end){ + setLength(calculateDistanceInMeter(start.latitude, start.longitude, end.latitude, end.longitude).toFixed(3)) + + }else{ + setLength(undefined) + } + + }, [start, end]) + + const handleChange = (event: any, isExpanded: boolean) => { + setExpanded(isExpanded); + }; + + + + + return + } + aria-controls="panel1a-content" + id="panel1a-header" + > + Map Info + + + + + Map Center + +
+
+ Longitude{center.longitude}
+
+ Latitude{center.latitude}
+
+ Zoom {zoom}
+ +
+ Link + +
+
+ Start + End +
+ +
+ + Longitude + {start?.longitude.toFixed(3)} + {end?.longitude.toFixed(3)}
+ + +
+ + Latitude + {start?.latitude.toFixed(3)} + {end?.latitude.toFixed(3)}
+ + + +
+ + Meassured height [m] + {heightA?.amsl} + {heightB?.amsl} +
+ +
+ + Antenna height [m] + {heightA?.antennaHeight} + {heightB?.antennaHeight} +
+ +
+ + Length [m] + {length} + +
+ +
+ + Max height @ position + {maxHeight? maxHeight.height+' m': ''} + {maxHeight?.gps.longitude.toFixed(3)} + {maxHeight?.gps.latitude.toFixed(3)} +
+ +
+ + Min height @ position + {minHeight? minHeight.height +' m': ''} + {minHeight?.gps.longitude.toFixed(3)} + {minHeight?.gps.latitude.toFixed(3)} +
+ +
+
+
+} + +export default connect(mapStateToProps, mapDispatchToProps)(MapInfo); \ No newline at end of file -- cgit 1.2.3-korg