• cesium api放大缩小地图


    方法缩小地图封装api
     

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <title>Cesium Zoom APItitle>
    7. <style>
    8. #cesiumContainer {
    9. height: 100vh;
    10. margin: 0;
    11. overflow: hidden;
    12. }
    13. #buttonCss {
    14. position: absolute;
    15. top: 10px;
    16. left: 10px;
    17. padding: 10px;
    18. cursor: pointer;
    19. background-color: #fff;
    20. border: 1px solid #ccc;
    21. border-radius: 4px;
    22. font-size: 14px;
    23. }
    24. style>
    25. head>
    26. <body>
    27. <div id="cesiumContainer">div>
    28. <div id="buttonCss">
    29. <button id="zoomInButton">Zoom Inbutton>
    30. <button id="zoomOutButton">Zoom Outbutton>
    31. div>
    32. <script src="https://cesium.com/downloads/cesiumjs/releases/1.80/Build/Cesium/Cesium.js">script>
    33. <link rel="stylesheet"
    34. href="https://cesium.com/downloads/cesiumjs/releases/1.80/Build/Cesium/Widgets/widgets.css" />
    35. <script>
    36. const viewer = new Cesium.Viewer('cesiumContainer');
    37. document.getElementById('zoomInButton').addEventListener('click', () => {
    38. zoomMap(-0.5);
    39. });
    40. document.getElementById('zoomOutButton').addEventListener('click', () => {
    41. zoomMap(0.5);
    42. });
    43. function zoomMap(direction) {
    44. const camera = viewer.camera;
    45. const position = camera.positionWC.clone();
    46. const directionVector = camera.directionWC.clone();
    47. const height = viewer.scene.globe.ellipsoid.cartesianToCartographic(position).height;
    48. // 根据相机高度调整缩放的比例
    49. // const scale = Math.ceil(height / 1000.0);
    50. // console.log(scale,'scale');
    51. // let dire = scale>1?scale*direction * 100:direction * 100
    52. // console.log(dire,'dire');
    53. const scale = Math.ceil(height / 1.0);
    54. let dire = scale * direction
    55. // 方向矢量与缩放量的乘积
    56. const zoomVector = Cesium.Cartesian3.multiplyByScalar(directionVector, dire, new Cesium.Cartesian3());
    57. // 新位置为当前位置加上缩放后的矢量
    58. const newPosition = Cesium.Cartesian3.add(position, zoomVector, new Cesium.Cartesian3());
    59. const heading = camera.heading;
    60. const pitch = camera.pitch;
    61. camera.flyTo({
    62. destination: newPosition,
    63. orientation: {
    64. heading: heading,
    65. pitch: pitch,
    66. },
    67. duration: 0.5, // 调整飞行动画的持续时间
    68. });
    69. }
    70. script>
    71. body>
    72. html>

  • 相关阅读:
    2.6 PE结构:导出表详细解析
    【博客472】k8s中如何使用shared memory
    Util应用框架快速入门(5) - 权限入门
    编译工具:CMake(七) | cmake 常用变量和常用环境变量
    如何实现一个React全家桶项目(附完整教程及代码)
    opengl播放3d pose 原地舞蹈脚来回飘动
    Spirng Cloud Gateway详解
    线性空间的定义与性质
    树莓派安装OpenCV2教程 (详细教程)
    无惧面试,2023最新最全Java面试手册全网首次开放下载
  • 原文地址:https://blog.csdn.net/songJunFeng1/article/details/134418740