<!DOCTYPE html> <html> <head> <meta charset='UTF-8'/> <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no'/> <link rel='stylesheet'/> <script src='http://bigemap.com:9000/bigemap-gl.js/v1.1.0/bigemap-gl.js'></script> <style> body { margin: 0; padding: 0; } #container { position: absolute; top: 0; bottom: 0; width: 100%; } .bmgl-widget-credits{display:none} </style> <title>part_test</title> </head> <body> <div id='container'></div> <div id="creditContainer" style="display: none;"></div> <div id="mouse_state" style="position:absolute;z-index:9999;top:1px;left:1px;background-color:white"></div> <script> bmgl.Config.HTTP_URL = 'http://bigemap.com:9000'; var viewer = new bmgl.Viewer('container', {mapId: 'bigemap.zhongkexingtu'}); //設置初始位置 viewer.camera.setView( { destination : bmgl.Cartesian3.fromDegrees( 110.20, 34.55, 3000000 ) } ); var scene = viewer.scene; var handler = new bmgl.ScreenSpaceEventHandler(scene.canvas); var ellipsoid = scene.globe.ellipsoid; //得到當前三維場景的橢球體 var longitudeString = null; var latitudeString = null; var height = null; var cartesian = null; var mouse_state = document.getElementById("mouse_state");//顯示狀態信息 //一 鼠標MOUSE_MOVE handler.setInputAction(function(movement) { //通過指定的橢球或者地圖對應的坐標系,將鼠標的二維坐標轉換為對應橢球體三維坐標 var ray=viewer.camera.getPickRay(movement.endPosition); var cartesian=viewer.scene.globe.pick(ray,viewer.scene); if (cartesian) { //將笛卡爾坐標轉換為地理坐標 var cartographic = ellipsoid.cartesianToCartographic(cartesian); //將弧度轉為度的十進制度表示 longitudeString = bmgl.Math.toDegrees(cartographic.longitude).toFixed(7); latitudeString = bmgl.Math.toDegrees(cartographic.latitude).toFixed(7); //獲取相機高度 height = Math.ceil(viewer.camera.positionCartographic.height).toFixed(3); mouse_state.innerText = '移動:(' + longitudeString + ', ' + latitudeString + "," + height + ')'; }else { mouse_state.innerText = ""; } }, bmgl.ScreenSpaceEventType.MOUSE_MOVE); //二 LEFT_CLICK handler.setInputAction(function(movement) { //cartesian = viewer.camera.pickEllipsoid(movement.position, ellipsoid);//movement.endPosition //if (cartesian) { // //將笛卡爾坐標轉換為地理坐標 // var cartographic = bmgl.Cartographic.fromCartesian(cartesian); // longitudeString = bmgl.Math.toDegrees(cartographic.longitude).toFixed(3); // latitudeString = bmgl.Math.toDegrees(cartographic.latitude).toFixed(3); // //獲取相機高度 // height = Math.ceil(viewer.camera.positionCartographic.height); // mouse_state.innerText = 'LEFT_CLICK:(' + longitudeString + ', ' + latitudeString + "," + height + ')'; //}else { // mouse_state.innerText = ''; //} }, bmgl.ScreenSpaceEventType.LEFT_CLICK ); //三 LEFT_DOUBLE_CLICK handler.setInputAction(function(movement) { cartesian = viewer.camera.pickEllipsoid(movement.position, ellipsoid);//movement.endPosition if (cartesian) { //將笛卡爾坐標轉換為地理坐標 var cartographic = bmgl.Cartographic.fromCartesian(cartesian); longitudeString = bmgl.Math.toDegrees(cartographic.longitude).toFixed(3); latitudeString = bmgl.Math.toDegrees(cartographic.latitude).toFixed(3); //獲取相機高度 height = Math.ceil(viewer.camera.positionCartographic.height); mouse_state.innerText = 'LEFT_DOUBLE_CLICK:(' + longitudeString + ', ' + latitudeString + "," + height + ')'; }else { mouse_state.innerText = ''; } }, bmgl.ScreenSpaceEventType.LEFT_DOUBLE_CLICK ); //四 LEFT_DOWN handler.setInputAction(function(movement) { cartesian = viewer.camera.pickEllipsoid(movement.position, ellipsoid);//movement.endPosition if (cartesian) { //將笛卡爾坐標轉換為地理坐標 var cartographic = bmgl.Cartographic.fromCartesian(cartesian); longitudeString = bmgl.Math.toDegrees(cartographic.longitude).toFixed(3); latitudeString = bmgl.Math.toDegrees(cartographic.latitude).toFixed(3); //獲取相機高度 height = Math.ceil(viewer.camera.positionCartographic.height); mouse_state.innerText = 'LEFT_DOWN :(' + longitudeString + ', ' + latitudeString + "," + height + ')'; }else { mouse_state.innerText = ''; } }, bmgl.ScreenSpaceEventType.LEFT_DOWN ); //五 LEFT_UP handler.setInputAction(function(movement) { cartesian = viewer.camera.pickEllipsoid(movement.position, ellipsoid);//movement.endPosition if (cartesian) { //將笛卡爾坐標轉換為地理坐標 var cartographic = bmgl.Cartographic.fromCartesian(cartesian); longitudeString = bmgl.Math.toDegrees(cartographic.longitude).toFixed(3); latitudeString = bmgl.Math.toDegrees(cartographic.latitude).toFixed(3); //獲取相機高度 height = Math.ceil(viewer.camera.positionCartographic.height); mouse_state.innerText = 'LEFT_UP :(' + longitudeString + ', ' + latitudeString + "," + height + ')'; }else { mouse_state.innerText = ''; } }, bmgl.ScreenSpaceEventType.LEFT_UP ); //六 鼠標WHEEL handler.setInputAction(function(wheelment) { height = Math.ceil(viewer.camera.positionCartographic.height); mouse_state.innerText = '遠近(' + "," + height + ')';// longitudeString + ', ' + latitudeString + }, bmgl.ScreenSpaceEventType.WHEEL); </script> </body> </html>