<!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://ua.bigemap.com:30081/bmsdk/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://ua.bigemap.com:30081/bmsdk/';
var viewer = new bmgl.Viewer('container', {mapId: 'bigemap.dc-tian-w-satellite'});
//設(shè)置初始位置
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; //得到當(dāng)前三維場(chǎng)景的橢球體
var longitudeString = null;
var latitudeString = null;
var height = null;
var cartesian = null;
var mouse_state = document.getElementById("mouse_state");//顯示狀態(tài)信息
//一 鼠標(biāo)MOUSE_MOVE
handler.setInputAction(function(movement) {
//通過(guò)指定的橢球或者地圖對(duì)應(yīng)的坐標(biāo)系,將鼠標(biāo)的二維坐標(biāo)轉(zhuǎn)換為對(duì)應(yīng)橢球體三維坐標(biāo)
var ray=viewer.camera.getPickRay(movement.endPosition);
var cartesian=viewer.scene.globe.pick(ray,viewer.scene);
if (cartesian) {
//將笛卡爾坐標(biāo)轉(zhuǎn)換為地理坐標(biāo)
var cartographic = ellipsoid.cartesianToCartographic(cartesian);
//將弧度轉(zhuǎn)為度的十進(jìn)制度表示
longitudeString = bmgl.Math.toDegrees(cartographic.longitude).toFixed(7);
latitudeString = bmgl.Math.toDegrees(cartographic.latitude).toFixed(7);
//獲取相機(jī)高度
height = Math.ceil(viewer.camera.positionCartographic.height).toFixed(3);
mouse_state.innerText = '移動(dòng):(' + 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) {
// //將笛卡爾坐標(biāo)轉(zhuǎn)換為地理坐標(biāo)
// var cartographic = bmgl.Cartographic.fromCartesian(cartesian);
// longitudeString = bmgl.Math.toDegrees(cartographic.longitude).toFixed(3);
// latitudeString = bmgl.Math.toDegrees(cartographic.latitude).toFixed(3);
// //獲取相機(jī)高度
// 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) {
//將笛卡爾坐標(biāo)轉(zhuǎn)換為地理坐標(biāo)
var cartographic = bmgl.Cartographic.fromCartesian(cartesian);
longitudeString = bmgl.Math.toDegrees(cartographic.longitude).toFixed(3);
latitudeString = bmgl.Math.toDegrees(cartographic.latitude).toFixed(3);
//獲取相機(jī)高度
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) {
//將笛卡爾坐標(biāo)轉(zhuǎn)換為地理坐標(biāo)
var cartographic = bmgl.Cartographic.fromCartesian(cartesian);
longitudeString = bmgl.Math.toDegrees(cartographic.longitude).toFixed(3);
latitudeString = bmgl.Math.toDegrees(cartographic.latitude).toFixed(3);
//獲取相機(jī)高度
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) {
//將笛卡爾坐標(biāo)轉(zhuǎn)換為地理坐標(biāo)
var cartographic = bmgl.Cartographic.fromCartesian(cartesian);
longitudeString = bmgl.Math.toDegrees(cartographic.longitude).toFixed(3);
latitudeString = bmgl.Math.toDegrees(cartographic.latitude).toFixed(3);
//獲取相機(jī)高度
height = Math.ceil(viewer.camera.positionCartographic.height);
mouse_state.innerText = 'LEFT_UP :(' + longitudeString + ', ' + latitudeString + "," + height + ')';
}else {
mouse_state.innerText = '';
}
}, bmgl.ScreenSpaceEventType.LEFT_UP );
//六 鼠標(biāo)WHEEL
handler.setInputAction(function(wheelment) {
height = Math.ceil(viewer.camera.positionCartographic.height);
mouse_state.innerText = '遠(yuǎn)近(' + "," + height + ')';// longitudeString + ', ' + latitudeString +
}, bmgl.ScreenSpaceEventType.WHEEL);
</script>
</body>
</html>