/** * 鼠标坐标 */ import Tools from "../../Tools"; import { getCoordinateSystem } from "../../Global/global"; import MouseEvent from '../../Event/index' let event let MouseCoordinateElm let requestAnimationFrameEventId const MouseCoordinate = (sdk, status) => { let tools = new Tools(sdk) if (status) { if (event) { event.destroy() } event = new MouseEvent(sdk) let position = { x: '', y: '', z: '' } let contentElm if (MouseCoordinateElm) { contentElm = MouseCoordinateElm } else { contentElm = document.createElement('div'); contentElm.style.position = 'absolute'; contentElm.style['z-index'] = 777; contentElm.style.color = '#ff0000'; contentElm.style.left = '0px'; contentElm.style.top = '0px'; contentElm.style.width = '100%'; contentElm.style.height = '100%'; contentElm.style['font-size'] = '12px'; contentElm.style['pointer-events'] = 'none'; contentElm.style.background = `url(${tools.getSourceRootPath()}/img/cross.png) no-repeat 100% 100%`; contentElm.style['background-size'] = `200% 200%`; MouseCoordinateElm = contentElm } sdk.viewer._element.appendChild(contentElm) let tmovement event.mouse_move((movement, cartesian) => { tmovement = { ...movement } }) const getPosition = () => { if(!tmovement) { return } let canvas = sdk.viewer._element.getElementsByTagName('canvas')[0] let left = tmovement.endPosition.x; let top = tmovement.endPosition.y; let cartesian = event.getcartesian(tmovement) contentElm.style['background-position-x'] = `${-canvas.width + left + 4}px`; contentElm.style['background-position-y'] = `${-canvas.height + top - 2}px`; // this.entity.position = cartesian if (cartesian) { let degrees = tools.cartesian3Towgs84(cartesian, sdk.viewer) let coordinateSystem = getCoordinateSystem() if (coordinateSystem === 'EPSG:4326') { position = { x: degrees.lng, y: degrees.lat, z: degrees.alt } contentElm.innerHTML = `
经度:${degrees.lng.toFixed(6)}°
维度:${degrees.lat.toFixed(6)}°
海拔:${degrees.alt.toFixed(2)} m
x:${position.x.toFixed(6)}
y:${position.y.toFixed(6)}
z:${position.z.toFixed(6)}
经度:-
维度:-
海拔:-
x:-
y:-
z:-