<!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>Google Map Streets</title> </head> <body> <div id='container'></div> <script> bmgl.Config.HTTP_URL = 'http://bigemap.com:9000'; var viewer = new bmgl.Viewer('container', { mapId: 'bigemap.zhongkexingtu' }); //取消默認的點擊事件 viewer.screenSpaceEventHandler.removeInputAction(bmgl.ScreenSpaceEventType.LEFT_CLICK); //禁止默認的地形遮擋 viewer.scene.globe.depthTestAgainstTerrain = false; var options = { lng: 117.1423291616, lat: 39.0645831633, height: 15.8, heading: 0.0, pitch: 0.0, roll: 0.0 }; var pinBuilder = new bmgl.PinBuilder(); viewer.entities.add({ id: 1,//設置一個id,方便進行點擊判斷 position: bmgl.Cartesian3.fromDegrees(options.lng, options.lat), billboard: { image: pinBuilder.fromText('自定義標題', bmgl.Color.RED, 50), heightReference: bmgl.HeightReference.CLAMP_TO_GROUND, }, }) var position = bmgl.Cartesian3.fromDegrees(options.lng, options.lat, options.height); // 相機看點的角度,如果大于0那么則是從地底往上看,所以要為負值,這里取-30度 var pitch = bmgl.Math.toRadians(-30); // 給定飛行一周所需時間,比如10s, 那么每秒轉動度數 var angle = 360 / 30; // 給定相機距離點多少距離飛行,這里取值為5000m var distance = 5000; var startTime = bmgl.JulianDate.fromDate(new Date()); viewer.clock.startTime = startTime.clone(); // 開始時間 // viewer.clock.stopTime = stopTime.clone(); // 結速時間 viewer.clock.currentTime = startTime.clone(); // 當前時間 viewer.clock.clockRange = bmgl.ClockRange.CLAMPED; // 行為方式 viewer.clock.clockStep = bmgl.ClockStep.SYSTEM_CLOCK; // 時鐘設置為當前系統時間; 忽略所有其他設置。 // 相機的當前heading var initialHeading = viewer.camera.heading; var Exection = function TimeExecution() { // 當前已經過去的時間,單位s var delTime = bmgl.JulianDate.secondsDifference(viewer.clock.currentTime, viewer.clock.startTime); var heading = bmgl.Math.toRadians(delTime * angle) + initialHeading; viewer.scene.camera.setView({ destination: position, // 點的坐標 orientation: { heading: heading, pitch: pitch, } }); viewer.scene.camera.moveBackward(distance); }; viewer.clock.onTick.addEventListener(Exection); </script> </body> </html>