/** * Mars3D三维可视化平台 mars3d * * 版本信息:v3.8.15 * 编译日期:2025-04-10 11:41 * 版权所有:Copyright by 火星科技 http://mars3d.cn * 使用单位:北京华星北斗智控技术有限公司 ,2024-12-05 */ /** 地球容器div */ .mars3d-container { position: relative; width: 100%; height: 100%; padding: 0; margin: 0; overflow: hidden; } .mars3d-container .cesium-widget-credits { display: none; } .mars3d-container .mars3d-vrButton { right: auto !important; } /** 隐藏的div对象,如 DivBillboardEntity、HeatLayer 等 */ .mars3d-hideDiv { top: 0; left: 0; z-index: -99; padding: 0; margin: 0; pointer-events: none; } /** 右键菜单 */ .mars3d-contextmenu { position: absolute; z-index: 20170825; display: none; padding: 0; } .mars3d-contextmenu-ul { position: relative; min-width: 80px; padding: 0; margin: 0; list-style: none; background: rgb(43 44 47 / 80%); border: 1px solid #2b2c2f; border-width: 1px; border-radius: 2px; } .mars3d-contextmenu-ul .mars3d-contextmenu-icon { position: absolute; left: 5px; width: 20px; height: 20px; overflow: hidden; text-align: center; } .mars3d-contextmenu-ul .mars3d-contextmenu-arrow { position: absolute; right: 0; width: 20px; height: 20px; text-align: center; } .mars3d-contextmenu-ul li + li { position: relative; padding: 0; margin: 0; } .mars3d-contextmenu-ul li + li::before { position: absolute; top: 0; left: 0; display: block; width: 100%; height: 1px; content: ""; background: -webkit-linear-gradient(to left, transparent, rgb(255 255 255 / 20%), transparent); background: linear-gradient(to left, transparent, rgb(255 255 255 / 20%), transparent); } .mars3d-contextmenu-ul .mars3d-contextmenu-line { position: absolute; left: 2%; width: 96%; height: 1px; background: #597086; border-width: 1px; border-radius: 2px; } .mars3d-contextmenu-ul > li > a { display: block; padding: 6px 10px 6px 30px; clear: both; line-height: 22px; color: #edffff; text-decoration: none; white-space: nowrap; transition: background-color 0.25s; } .mars3d-contextmenu-ul > li > a:hover, .mars3d-contextmenu-ul > li > a:focus, .mars3d-contextmenu-ul > li > .active { color: #ffffff; text-decoration: none; background-color: #444d59; } .mars3d-contextmenu-ul > .active > a, .mars3d-contextmenu-ul > .active > a:hover, .mars3d-contextmenu-ul > .active > a:focus { color: #ffffff; text-decoration: none; background-color: #444d59; } .mars3d-sub-menu { position: absolute; display: none; min-width: 100px; background: rgb(43 44 47 / 80%); } .mars3d-sub-menu li { box-sizing: border-box; width: 100%; padding: 0; margin: 0; font-size: 14px; color: #ffffff; } .mars3d-sub-menu li:hover { background-color: #444d59; } .mars3d-smallTooltip { position: absolute; z-index: 1000; display: block; min-width: 100px; max-width: 200px; padding: 2px 5px; font-size: 11px; pointer-events: none; filter: alpha(opacity=80); -khtml-opacity: 0.8; -moz-opacity: 0.8; opacity: 0.8; } .mars3d-smallTooltip-inner { max-width: 200px; padding: 3px 5px; color: white; text-align: left; text-decoration: none; background-color: rgb(0 0 0 / 80%); border-radius: 4px; } .mars3d-smallTooltip-inner p { margin: 0; } .mars3d-smallTooltip-arrow { position: absolute; top: 50%; width: 0; height: 0; } .mars3d-smallTooltip-leftArrow { right: 0; margin-top: -5px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 5px solid #000000; }mars3d-clockanimate-btn .mars3d-smallTooltip-rightArrow { left: 0; margin-top: -5px; border-top: 5px solid transparent; border-right: 5px solid #000000; border-bottom: 5px solid transparent; } .mars3d-clockAnimate { position: relative; bottom: 48px; left: 300px; z-index: 999; height: 27px; } .mars3d-clockAnimate .time { margin: 0 4px; font-size: 13px; user-select: none; } .mars3d-clockAnimate .mars3d-clockAnimate-btn { display: inline-block; width: 24px; padding: 1px 8px; color: #ffffff; vertical-align: middle; cursor: pointer; background-color: rgb(63 72 84 / 0%); border: solid 1px #888888; border: none; } .mars3d-clockAnimate .mars3d-clockAnimate-btn svg { margin-top: 1px; } .mars3d-clockAnimate .mars3d-clockAnimate-speed { width: 80px; height: 24px; padding: 0 3px; margin: 0; color: #ffffff; background-color: rgb(63 72 84 / 70%); border: solid 1px rgb(136 136 136 / 60%); } .mars3d-clockAnimate .mars3d-clockAnimate-speed ::-webkit-outer-spin-button, .mars3d-clockAnimate .mars3d-clockAnimate-speed input::-webkit-inner-spin-button { margin: 0; appearance: none !important; } .mars3d-compass { position: absolute; width: 55px; height: 55px; pointer-events: auto; cursor: pointer; user-select: none; } .mars3d-compass:hover .mars3d-compass-outer svg { transition: transform 0.3s; transform: scale(1.1); } .mars3d-compass .mars3d-compass-outer { position: absolute; top: 0; left: 0; width: 55px; height: 55px; background-repeat: no-repeat; background-size: contain; border-radius: 50%; fill: #3f4854; } .mars3d-compass .mars3d-compass-outer svg { width: 55px; height: 55px; } .mars3d-compass .mars3d-compass-inner { position: relative; top: 50%; box-sizing: border-box; display: block; width: 25px; height: 25px; padding: 4px; margin: 0 auto; background: #ffffff; border-radius: 50%; fill: #68adfe; transform: translateY(-50%); } .mars3d-compass .mars3d-compass-rotation-arc { position: absolute; top: 2px; left: 2px; width: 51px; height: 51px; background-repeat: no-repeat; background-size: contain; border-radius: 50%; } .mars3d-cubeview { position: absolute; width: 100px; height: 100px; } .mars3d-cubeview-cube { position: relative; top: 25%; width: 50%; height: 50%; margin: auto; font-family: monospace; font-weight: bold; will-change: transform; transform-style: preserve-3d; } .mars3d-cubeview-cube > div { position: absolute; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: rgb(0 0 0 / 60%); cursor: pointer; user-select: none; background-color: #e0e1e2; border: 1px solid rgb(0 0 0 / 60%); } .mars3d-cubeview-side-t { transform: rotateX(90deg) translateZ(25px); } .mars3d-cubeview-side-w { border-right: 2px solid blue !important; border-bottom: 2px solid green !important; transform: rotateY(-90deg) translateZ(25px); } .mars3d-cubeview-side-s { border-bottom: 2px solid red !important; border-left: 2px solid blue !important; transform: translateZ(25px); } .mars3d-cubeview-side-e { transform: rotateY(90deg) translateZ(25px); } .mars3d-cubeview-side-n { transform: rotateY(180deg) translateZ(25px); } .mars3d-cubeview-side-b { border-top: 2px solid red !important; border-left: 2px solid green !important; transform: rotateX(-90deg) translateZ(25px); } .mars3d-distance-legend { position: absolute; z-index: 11; width: 125px; height: 25px; pointer-events: none; user-select: none; } .mars3d-distance-legend .legend-label { width: 100%; font-size: 13px; color: #ffffff; text-align: center; } .mars3d-distance-legend .legend-scale-bar { position: absolute; top: 10px; height: 10px; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; border-left: 1px solid #ffffff; } /** 左下角,鼠标经纬度提示 */ .mars3d-locationbar { position: absolute; z-index: 10; min-height: 26px; padding: 3px 10px; font-size: 13px; color: #e9e9e9; pointer-events: none; background-color: rgb(0 0 0 / 40%); } .mars3d-locationbar-content { float: right; } .mars3d-locationbar-content > div { float: left; margin-right: 20px; } .cesium-performanceDisplay-ms, .cesium-performanceDisplay-fps { min-width: 65px; } /* 兼容屏幕大小 美观显示不同信息 */ @media screen and (width <= 1200px) { .mars3d-locationbar-content > div { margin-right: 15px; } } @media screen and (width <= 1000px) { .cesium-performanceDisplay-ms, .cesium-performanceDisplay-fps, .mars3d-locationbar-content > .hide1000 { display: none; } .mars3d-locationbar-content > div { margin-right: 10px; } } @media screen and (width <= 700px) { .mars3d-locationbar-content > .hide700 { display: none; } } @media screen and (width <= 600px) { .mars3d-locationbar { display: none; } } .mars3d-slider { position: absolute; top: 0; left: 50%; z-index: 9999; width: 3px; height: 100%; background-color: #d3d3d3; } .mars3d-slider .slider-splitter { position: absolute; top: calc(50% - 15px); left: -15px; z-index: 99999; width: 30px; height: 30px; padding: 2px; line-height: 40px; text-align: center; background: #f0eeee; border: 1px solid lightgrey; border-radius: 50%; } .mars3d-slider .slider-splitter:hover { cursor: ew-resize; } .mars3d-mapCompare { position: absolute; top: 0; right: 0; bottom: 0; width: 50%; height: 100%; padding: 0; margin: 0; } /** 滚轮样式 */ .mars3d-mousedownview { position: absolute; top: 0; left: 0; width: 40px; height: 40px; margin-top: -23px; /* 图片高度的一半 */ margin-left: -23px; pointer-events: none; visibility: hidden; opacity: 0; transition: visibility 0s 0.2s, opacity 0.2s ease-in; } .mars3d-mousedownview-img { width: 36px; height: 36px; background-image: url("./img/cursor.png"); background-size: 100% 100%; } .mars3d-mousedownview-show { visibility: visible; opacity: 1; transition: opacity 0.2s ease-out; } .mars3d-overviewMap { position: absolute; width: 200px; height: 150px; overflow: hidden; user-select: none; border: 1px solid orange; box-shadow: 2px 2px 3px #2b2b2b; } .mar3d-toolButton { display: grid; place-items: center; padding: 0; margin: 0 3px; cursor: pointer; } .mar3d-toolButton img, .mar3d-toolButton svg, .mar3d-toolButton div { height: 100%; text-align: center; } .mars3d-subtitles { position: absolute; z-index: 999; padding: 10px; overflow: hidden; font-size: 30px; font-weight: bold; text-align: center; letter-spacing: 2px; user-select: none; } .mars3d-divGraphic { position: absolute; top: -80px; left: 0; } .mars3d-divGraphic:hover { z-index: 9999 !important; } .mars3d-divGraphic-edit { box-sizing: content-box; margin: -2px; background-color: rgb(254 87 161 / 10%); border: 2px dashed rgb(172 85 59 / 76.8%); border-radius: 2px; } /** 内置的DivGraphic通用样式【文本动态边框】 */ .mars3d-divBoderLabel { position: absolute; bottom: 0; left: 0; cursor: pointer; --animation-name: mars3d-divBoderLabel-animation; --text-left-position: -75px; } @keyframes mars3d-divBoderLabel-animation { 0%, 100% { clip: rect(0, var(--clip-width-1), 2px, 0); } 25% { clip: rect(0, 2px, var(--clip-height-1), 0); } 50% { clip: rect(var(--clip-height-2), var(--clip-width-1), var(--clip-width-1), 0); } 75% { clip: rect(0, var(--clip-width-1), var(--clip-height-1), var(--clip-width-2)); } } .mars3d-divBoderLabel-boder { width: var(--boder-width); height: var(--boder-height); margin: auto; color: var(--border-color); box-shadow: inset 0 0 0 1px var(--box-shadow-color); } .mars3d-divBoderLabel-text { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-size: var(--text-font-size); font-weight: bolder; color: var(--text-color); cursor: pointer; user-select: none; } .mars3d-divBoderLabel-boder, .mars3d-divBoderLabel-boder::before, .mars3d-divBoderLabel-boder::after { position: absolute; inset: 0; } .mars3d-divBoderLabel-boder::before, .mars3d-divBoderLabel-boder::after { margin: -5%; content: ""; box-shadow: inset 0 0 0 2px; animation: var(--animation-name) 8s linear infinite; } .mars3d-divBoderLabel-boder::before { animation-delay: -4s; } .mars3d-animation-point, .mars3d-animation-point::after, .mars3d-animation-point::before, .mars3d-animation-point p, .mars3d-animation-point p::after, .mars3d-animation-point p::before { box-sizing: border-box; padding: 0; margin: 0; } .mars3d-animation-point { position: absolute; top: 50%; left: 50%; z-index: 3; width: 10px; height: 10px; color: #00ffff; cursor: pointer; background: currentColor; border: 1px solid hsl(0deg 0% 100% / 50%); border-radius: 50%; box-shadow: 0 0 2em currentColor, 0 0 0.5em currentColor; transform: translate(-50%, -50%); } .mars3d-animation-point .mars3d-animation-point-lbl { position: absolute; left: 50%; width: fit-content; font-size: 16px; white-space: nowrap; transform: translate(-50%, -120%); } .mars3d-animation-point p { position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-radius: 50%; transform: translate(-50%, -50%); animation: mars3d-animation-point-mapAni 2s ease infinite; } .mars3d-animation-point .mapError { color: red; } .mars3d-animation-point .mapWarn { color: #b5a603; } .mars3d-animation-point .mapSuccess { color: #239233; } .mars3d-animation-point .mapOrange { color: #8c4d34; } .mars3d-animation-point::after, .mars3d-animation-point::before, .mars3d-animation-point p::after, .mars3d-animation-point p::before { position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; content: ""; border-radius: 50%; transform: translate(-50%, -50%); } .mars3d-animation-point::after, .mars3d-animation-point::before { border: 1px solid; animation: mars3d-animation-point-mapAni 1s ease infinite; } .mars3d-animation-point p::before { border: 1px solid; } @keyframes mars3d-animation-point-mapAni { 0% { width: 0; height: 0; filter: alpha(opacity=1); opacity: 1; } 25% { width: 120%; height: 120%; filter: alpha(opacity=70); opacity: 0.7; } 50% { width: 200%; height: 200%; filter: alpha(opacity=50); opacity: 0.5; } 75% { width: 300%; height: 300%; filter: alpha(opacity=20); opacity: 0.2; } 100% { width: 400%; height: 400%; filter: alpha(opacity=0); opacity: 0; } } @keyframes mars3d-animation-point-mapAni { 0% { width: 0; height: 0; filter: alpha(opacity=1); opacity: 1; } 25% { width: 120%; height: 120%; filter: alpha(opacity=70); opacity: 0.7; } 50% { width: 200%; height: 200%; filter: alpha(opacity=50); opacity: 0.5; } 75% { width: 300%; height: 300%; filter: alpha(opacity=20); opacity: 0.2; } 100% { width: 400%; height: 400%; filter: alpha(opacity=0); opacity: 0; } } @keyframes mars3d-animation-point-mapAni { 0% { width: 0; height: 0; filter: alpha(opacity=1); opacity: 1; } 25% { width: 120%; height: 120%; filter: alpha(opacity=70); opacity: 0.7; } 50% { width: 200%; height: 200%; filter: alpha(opacity=50); opacity: 0.5; } 75% { width: 300%; height: 300%; filter: alpha(opacity=20); opacity: 0.2; } 100% { width: 400%; height: 400%; filter: alpha(opacity=0); opacity: 0; } } @keyframes mars3d-animation-point-mapAni { 0% { width: 0; height: 0; filter: alpha(opacity=1); opacity: 1; } 25% { width: 120%; height: 120%; filter: alpha(opacity=70); opacity: 0.7; } 50% { width: 200%; height: 200%; filter: alpha(opacity=50); opacity: 0.5; } 75% { width: 300%; height: 300%; filter: alpha(opacity=20); opacity: 0.2; } 100% { width: 400%; height: 400%; filter: alpha(opacity=0); opacity: 0; } } @keyframes mars3d-animation-point-mapAni { 0% { width: 0; height: 0; filter: alpha(opacity=1); opacity: 1; } 25% { width: 120%; height: 120%; filter: alpha(opacity=70); opacity: 0.7; } 50% { width: 200%; height: 200%; filter: alpha(opacity=50); opacity: 0.5; } 75% { width: 300%; height: 300%; filter: alpha(opacity=20); opacity: 0.2; } 100% { width: 400%; height: 400%; filter: alpha(opacity=0); opacity: 0; } } .mars3d-divUpLabel { box-sizing: border-box; display: block; color: white; text-align: center; background: transparent; animation-name: mars3d-divUpLabel-tinUpIn; animation-duration: 1s; animation-fill-mode: both; } .mars3d-divUpLabel-text { font-size: 16px; letter-spacing: 4px; writing-mode: vertical-lr; } .mars3d-divUpLabel-line { display: block; width: 1.5px; height: 100px; margin-top: 3px; margin-left: calc(50% - 1px); background-color: white; } @keyframes mars3d-divUpLabel-tinUpIn { 0% { opacity: 0; transform: scale(1, 1) translateY(-900%); } 50%, 70%, 90% { opacity: 1; transform: scale(1.1, 1.1) translateY(0); } 100%, 60%, 80% { opacity: 1; transform: scale(1, 1) translateY(0); } } /***** popup弹出框样式 ******/ .mars3d-popup { user-select: auto; } .mars3d-popup-close-button { position: absolute; top: 0; right: 0; z-index: 20170825; width: 20px; height: 20px; padding: 4px 4px 0 0; font: 16px/14px Tahoma, Verdana, sans-serif; font-weight: bold; text-align: center; text-decoration: none; cursor: pointer; background: transparent; } .mars3d-popup-content-wrapper { padding: 1px; text-align: center; text-align: left; border-radius: 3px; box-shadow: 0 3px 14px rgb(0 0 0 / 40%); } .mars3d-popup-content { min-width: 50px; max-width: 700px; max-height: 550px; margin: 10px; overflow-y: auto; font-size: 13px; line-height: 1.4; } .mars3d-popup-tip-container { position: relative; width: 40px; height: 17px; margin: 0 auto; overflow: hidden; } .mars3d-popup-tip { width: 17px; height: 17px; padding: 1px; margin: -10px auto 0; box-shadow: 0 3px 14px rgb(0 0 0 / 40%); transform: rotate(45deg); } .mars3d-popup-scrolled { overflow: auto; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; } .mars3d-popup-color { color: var(--mars-text-color, #ffffff); } .mars3d-popup-background { background: var(--mars-base-bg, rgb(7 7 7 / 90%)); } .mars3d-popup-animation { animation-name: mars3d-popup-swashIn; animation-duration: 0.3s; animation-fill-mode: both; } @keyframes mars3d-popup-swashIn { 0% { opacity: 0; transform: scale(0, 0); transform-origin: 50% 50%; } 90% { opacity: 1; transform: scale(0.9, 0.9); transform-origin: 50% 50%; } 100% { opacity: 1; transform: scale(1, 1); transform-origin: 50% 50%; } } .mars3d-popup-btn { padding: 3px 10px; background: #209ffd1c; border: 1px solid #209ffd; } /* all 中的html样式 */ .mars3d-template-title { height: 33px; padding: 0 10px; overflow: hidden; font-size: 16px; line-height: 33px; color: var(--mars-text-color, #ffffff); border-bottom: 1px solid var(--mars-hover-color, #3ea6ff); } .mars3d-template-title a { color: var(--mars-msg-title-color, #479be0); text-decoration: none; } .mars3d-template-content { min-width: 150px; max-height: 490px; padding: 10px; margin-top: 0; overflow-y: auto; font-size: 14px; color: var(--mars-text-color, #ffffff); } .mars3d-template-content > div { margin-top: 5px; } .mars3d-template-content label { float: left; min-width: 55px; padding-right: 6px; margin: 0 10px; } .mars3d-template-content input { padding: 4px 5px; color: var(--mars-text-color, #ffffff); background-color: transparent; border-style: solid; border-width: 1px; } .mars3d-template-content input::placeholder { color: #cdcdcd; } .mars3d-template-content textarea { height: 60px; padding: 4px 5px; color: var(--mars-text-color, #ffffff); resize: none; background-color: transparent; border-style: solid; border-width: 1px; } .mars3d-template-content textarea::placeholder { color: #cdcdcd; } /***** tooltip弹出框样式 ******/ .mars3d-tooltip { min-width: 50px; max-width: 700px; max-height: 550px; padding: 6px; color: var(--mars-text-color, #ffffff); white-space: nowrap; user-select: none; background: var(--mars-base-bg, rgb(63 72 84 / 90%)); border: 1px solid var(--mars-base-bg, rgb(63 72 84 / 90%)); box-shadow: 0 1px 3px rgb(0 0 0 / 40%); } .mars3d-tooltip-top::before, .mars3d-tooltip-bottom::before, .mars3d-tooltip-left::before, .mars3d-tooltip-right::before { position: absolute; pointer-events: none; content: ""; background: transparent; border: 6px solid transparent; } .mars3d-tooltip-top::before { border-top-color: var(--mars-base-bg, rgb(23 49 71 / 80%)); } .mars3d-tooltip-bottom::before { border-bottom-color: var(--mars-base-bg, rgb(23 49 71 / 80%)); } .mars3d-tooltip-left::before { border-left-color: var(--mars-base-bg, rgb(23 49 71 / 80%)); } .mars3d-tooltip-right::before { border-right-color: var(--mars-base-bg, rgb(23 49 71 / 80%)); } /* Directions */ .mars3d-tooltip-bottom { margin-top: 6px; } .mars3d-tooltip-top { margin-top: -6px; } .mars3d-tooltip-bottom::before, .mars3d-tooltip-top::before { left: 50%; margin-left: -6px; } .mars3d-tooltip-top::before { bottom: 0; margin-bottom: -12px; border-top-color: var(--mars-base-bg, rgb(63 72 84 / 90%)); } .mars3d-tooltip-bottom::before { top: 0; margin-top: -6px; margin-left: -6px; border-bottom-color: var(--mars-base-bg, rgb(63 72 84 / 90%)); } .mars3d-tooltip-left { margin-left: -6px; } .mars3d-tooltip-right { margin-left: 6px; } .mars3d-tooltip-left::before, .mars3d-tooltip-right::before { top: 50%; margin-top: -6px; } .mars3d-tooltip-left::before { right: 0; margin-right: -12px; border-left-color: var(--mars-base-bg, rgb(63 72 84 / 90%)); } .mars3d-tooltip-right::before { left: 0; margin-left: -6px; border-right-color: var(--mars-base-bg, rgb(63 72 84 / 90%)); } .mars3d-divlayer-camera { backface-visibility: hidden; }