点击事件
let handler = new Cesium. ScreenSpaceEventHandler ( viewer. scene. canvas) ;
let leftclick = Cesium. ScreenSpaceEventType. LEFT_CLICK ;
viewer. screenSpaceEventHandler. removeInputAction ( leftclick) ;
handler. setInputAction ( ( e ) => {
let pickObj = viewer. scene. pick ( e. position) ;
if ( Cesium. defined ( pickObj) ) {
if ( pickObj. id && pickObj. id instanceof Cesium. Entity ) {
if ( pickObj. id. properties. _type. _value === 'point' ) {
let trafficObj = pickObj. id. properties. _details. _value;
}
}
if ( pickObj. primitive instanceof Cesium. Primitive ) {
}
if ( pickObj. primitive instanceof Cesium. Model ) {
}
if ( pickObj instanceof Cesium. Cesium3DTileFeature ) {
let propertyNames = pickObj. getPropertyNames ( ) ;
propertyNames. forEach ( item => {
console. log ( item) ;
console. log ( pickObj. getProperty ( item) ) ;
} )
}
if ( pickObj. getProperty && pickObj. getProperty ( "name" ) ) {
}
if ( e && e. stopPropagation) {
e. stopPropagation ( )
} else {
e. cancelBubble = true
}
return
}
} , leftclick)
let rightclick = Cesium. ScreenSpaceEventType. RIGHT_CLICK ;
handler. removeInputAction ( rightclick) ;
handler. setInputAction ( ( e ) => {
let position = viewer. scene. pickPosition ( e. position) ;
let cartographicNew = Cesium. Cartographic. fromCartesian ( position) ;
let longitude = Cesium. Math. toDegrees ( cartographicNew. longitude) ;
let latitude = Cesium. Math. toDegrees ( cartographicNew. latitude) ;
let height = cartographicNew. height;
console. log ( longitude, latitude, height) ;
let po = viewer. camera. positionWC;
let heading = viewer. camera. heading;
let roll = viewer. camera. roll;
let pitch = viewer. camera. pitch;
let data = JSON . stringify ( {
destination: po,
orientation: { pitch: pitch, heading: heading, roll: roll} ,
} ) ;
console. log ( data) ;
} , rightclick)
鼠标事件
let mouseMove = Cesium. ScreenSpaceEventType. MOUSE_MOVE ;
let viewer = getViewer ( ) ;
viewer. screenSpaceEventHandler. removeInputAction ( mouseMove) ;
let handler = new Cesium. ScreenSpaceEventHandler ( viewer. scene. canvas) ;
handler. setInputAction ( ( e ) => {
let fea = viewer. scene. pick ( e. endPosition) ;
if ( fea) {
if ( fea. id || fea. primitive) {
_self. $refs. map3d. style. cursor = "pointer" ;
}
if ( fea. getProperty && fea. getProperty ( "name" ) ) {
_self. $refs. map3d. style. cursor = "pointer" ;
}
} else {
_self. $refs. map3d. style. cursor = "default" ;
}
} , mouseMove) ;
相机移动事件
let viewer = getViewer ( ) ;
let flag = false ;
viewer. scene. camera. changed. addEventListener ( function ( ) {
let height = Math. ceil ( viewer. camera. positionCartographic. height) ;
if ( height > 100000 ) {
if ( flag) { return }
flag = true ;
} else {
if ( ! flag) { return }
flag = false ;
}
} )