| | |
| | | import * as Cesium from 'cesium' |
| | | |
| | | export const getLngLatDistance = ( |
| | | lat1: number, |
| | | lng1: number, |
| | | lat2: number, |
| | | lng2: number, |
| | | ) => { |
| | | export const getLngLatDistance = (lat1: number, lng1: number, lat2: number, lng2: number) => { |
| | | const radLat1 = (lat1 * Math.PI) / 180.0 |
| | | const radLat2 = (lat2 * Math.PI) / 180.0 |
| | | const a = radLat1 - radLat2 |
| | |
| | | let s = |
| | | 2 * |
| | | Math.asin( |
| | | Math.sqrt( |
| | | Math.pow(Math.sin(a / 2), 2) + |
| | | Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2), |
| | | ), |
| | | Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)), |
| | | ) |
| | | s = s * 6378.137 // EARTH_RADIUS; |
| | | s = Math.round(s * 10000) / 10000 |
| | |
| | | ctx.closePath() |
| | | return billboard |
| | | } |
| | | |
| | | // 获取当前经纬度海拔 |
| | | export const getHaeHeight = (start: { longitude: number; latitude: number; height: number }, end: { longitude: number; latitude: number; height: number }) => { |
| | | const ellipsoid = Cesium.Ellipsoid.WGS84 // 选择合适的椭圆体模型 |
| | | // const { longitude, latitude, height } = start |
| | | // const { longitude: endLng, latitude: endLat, height: endHeight } = end |
| | | // const startC3Position = new Cesium.Cartographic(longitude, latitude, height) |
| | | // const endC3Position = new Cesium.Cartographic(endLng, endLat, endHeight) |
| | | // const startCartesianPosition = ellipsoid.cartographicToCartesian(startC3Position) |
| | | // const endCartesianPosition = ellipsoid.cartographicToCartesian(endC3Position) |
| | | // // 计算两个位置之间的距离 |
| | | // const distance = new Cesium.EllipsoidGeodesic(startCartesianPosition, endCartesianPosition, ellipsoid) |
| | | // return distance |
| | | const { longitude, latitude, height } = end |
| | | const cartographic = Cesium.Cartographic.fromDegrees(longitude, latitude, height) |
| | | const cartesianPosition = ellipsoid.cartographicToCartesian(cartographic) |
| | | const haeHeight = ellipsoid.cartesianToCartographic(cartesianPosition).height |
| | | return haeHeight |
| | | } |