|
@@ -0,0 +1,278 @@
|
|
|
|
+<script setup>
|
|
|
|
+
|
|
|
|
+ import jt3dNavigation from 'cesium-navigation-es6';
|
|
|
|
+
|
|
|
|
+ import {
|
|
|
|
+ inject
|
|
|
|
+ } from "vue";
|
|
|
|
+ const getMapInstance = inject("getMapInstance");
|
|
|
|
+ jt3d = getMapInstance();
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<template>
|
|
|
|
+
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+ let jt3d = undefined;
|
|
|
|
+ export default {
|
|
|
|
+ props: {
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 数据
|
|
|
|
+ */
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 方法
|
|
|
|
+ */
|
|
|
|
+ methods: {
|
|
|
|
+ /**
|
|
|
|
+ * 比例尺、指南针
|
|
|
|
+ */
|
|
|
|
+ initNavigation(jt3d) {
|
|
|
|
+ let options = {};
|
|
|
|
+ // 用于在使用重置导航重置地图视图时设置默认视图控制。接受的值是Cesium.Cartographic 和 Cesium.Rectangle.
|
|
|
|
+ options.defaultResetView = Cesium.Rectangle.fromDegrees(121.13766, 36.99670, 121.94984, 37.55286);
|
|
|
|
+ // options.defaultResetView = Cesium.Cartographic.fromDegrees(103.84,31.15,24000);
|
|
|
|
+ // options.defaultResetView = Cesium.Cartographic.fromDegrees(Cesium.Math.toRadians(103.84),Cesium.Math.toRadians(31.15),Cesium.Math.toRadians(24000));
|
|
|
|
+ options.orientation = {
|
|
|
|
+ heading: Cesium.Math.toRadians(0),
|
|
|
|
+ pitch: Cesium.Math.toRadians(-90),
|
|
|
|
+ roll: 0
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ //相机延时
|
|
|
|
+ options.duration = 4; //默认为3s
|
|
|
|
+
|
|
|
|
+ // 用于启用或禁用罗盘。
|
|
|
|
+ options.enableCompass = true;
|
|
|
|
+ // 用于启用或禁用指南针外环。
|
|
|
|
+ options.enableCompassOuterRing = true;
|
|
|
|
+ // 用于启用或禁用缩放控件。
|
|
|
|
+ options.enableZoomControls = true;
|
|
|
|
+ // 用于启用或禁用距离图例。
|
|
|
|
+ options.enableDistanceLegend = false;
|
|
|
|
+
|
|
|
|
+ //修改重置视图的tooltip
|
|
|
|
+ options.resetTooltip = "重置视图";
|
|
|
|
+ //修改放大按钮的tooltip
|
|
|
|
+ options.zoomInTooltip = "放大";
|
|
|
|
+ //修改缩小按钮的tooltip
|
|
|
|
+ options.zoomOutTooltip = "缩小";
|
|
|
|
+
|
|
|
|
+ //如需自定义罗盘控件,请看下面的自定义罗盘控件
|
|
|
|
+ new jt3dNavigation(jt3d._viewer, options);
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ mounted() {
|
|
|
|
+ //比例尺、指南针
|
|
|
|
+ this.initNavigation(jt3d);
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
+ $jt3d-text-color:#fff;
|
|
|
|
+ $jt3d-content-color:#fff;
|
|
|
|
+
|
|
|
|
+ $jt3d-select-bg:red;
|
|
|
|
+
|
|
|
|
+ .query-keyword {
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 80rem;
|
|
|
|
+ width: 200rem;
|
|
|
|
+ left: 10rem;
|
|
|
|
+ border: 1rem solid rgb(0 44 126 / 100%);
|
|
|
|
+
|
|
|
|
+ .el-input {
|
|
|
|
+ --el-input-bg-color: rgb(0 44 126 / 50%);
|
|
|
|
+ --el-input-border-color: rgb(0 44 126 / 50%);
|
|
|
|
+ --el-input-placeholder-color: #fff;
|
|
|
|
+
|
|
|
|
+ --el-fill-color-blank: rgb(0 44 126 / 80%);
|
|
|
|
+ --el-text-color-regular: #fff;
|
|
|
|
+ --el-color-primary: #fff --el-border-radius-base:0rem;
|
|
|
|
+ --el-border-radius-base: 0rem;
|
|
|
|
+
|
|
|
|
+ .el-button {
|
|
|
|
+ background-color: rgb(0 44 126 / 100%);
|
|
|
|
+ color: #fff;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .autocomplete {
|
|
|
|
+ --el-fill-color-blank: rgb(0 44 126 / 0%);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .autocomplete ul {
|
|
|
|
+ font-family: sans-serif;
|
|
|
|
+ position: absolute;
|
|
|
|
+ list-style: none;
|
|
|
|
+ background: rgb(0 44 126 / 30%);
|
|
|
|
+ margin: 0;
|
|
|
|
+ width: 80%;
|
|
|
|
+ margin-top: 1rem;
|
|
|
|
+ margin-left: -1rem;
|
|
|
|
+ border: 1rem solid rgb(0 44 126 / 100%);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .autocomplete ul li {
|
|
|
|
+ text-decoration: none;
|
|
|
|
+ display: block;
|
|
|
|
+ background: rgb(0 44 126 / 30%);
|
|
|
|
+ color: #fff;
|
|
|
|
+ padding: 5rem;
|
|
|
|
+ margin-left: -40rem;
|
|
|
|
+ text-align: left;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .autocomplete ul li:hover,
|
|
|
|
+ .autocomplete ul li.focus-list {
|
|
|
|
+ color: white;
|
|
|
|
+ background: #2F9AF7;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .query-result {
|
|
|
|
+ position: absolute;
|
|
|
|
+ border-top: none;
|
|
|
|
+ padding-bottom: 0rem;
|
|
|
|
+ width: 100%;
|
|
|
|
+ z-index: 100;
|
|
|
|
+ border: 1rem solid rgb(0 44 126 / 100%);
|
|
|
|
+ background: rgb(0 44 126 / 30%);
|
|
|
|
+ margin-left: -1rem;
|
|
|
|
+
|
|
|
|
+ --el-fill-color-blank: rgb(0 44 126 / 0%);
|
|
|
|
+ --color: #fff;
|
|
|
|
+ --el-color-primary: #fff;
|
|
|
|
+
|
|
|
|
+ .query-result__item {
|
|
|
|
+ height: 80rem;
|
|
|
|
+ padding: 0 10rem;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: flex-start;
|
|
|
|
+ align-items: center;
|
|
|
|
+ margin-left: -40rem;
|
|
|
|
+ text-align: left;
|
|
|
|
+
|
|
|
|
+ &:hover {
|
|
|
|
+ // background-color: var(--mars-select-bg);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .query-result__context {
|
|
|
|
+ flex-grow: 1;
|
|
|
|
+ width: 90%;
|
|
|
|
+
|
|
|
|
+ .query-result-text {
|
|
|
|
+ font-size: 16rem;
|
|
|
|
+ width: 200rem;
|
|
|
|
+ font-family: Source Han Sans CN;
|
|
|
|
+ font-weight: 400;
|
|
|
|
+ // color: var($jt3d-text-color);
|
|
|
|
+ color: $jt3d-text-color;
|
|
|
|
+
|
|
|
|
+ .query-result-text_num {
|
|
|
|
+ width: 20rem;
|
|
|
|
+ height: 20rem;
|
|
|
|
+ margin-right: 5rem;
|
|
|
|
+ display: inline-block;
|
|
|
|
+ text-align: center;
|
|
|
|
+ background: rgb(0 44 126 / 100%);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .query-result-sub {
|
|
|
|
+ font-size: 14rem;
|
|
|
|
+ width: 200rem;
|
|
|
|
+ margin-left: 19rem;
|
|
|
|
+ font-family: Source Han Sans CN;
|
|
|
|
+ font-weight: 400;
|
|
|
|
+ // color: var($jt3d-content-color);
|
|
|
|
+ color: $jt3d-content-color;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .query-result__more {
|
|
|
|
+ font-size: 14rem;
|
|
|
|
+ font-family: Source Han Sans CN;
|
|
|
|
+ font-weight: 400;
|
|
|
|
+ // color: var($jt3d-content-color);
|
|
|
|
+ color: $jt3d-content-color;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .query-result__page {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ padding: 5rem;
|
|
|
|
+
|
|
|
|
+ .query-result-allcount {
|
|
|
|
+ font-size: 14rem;
|
|
|
|
+ // color: var($jt3d-text-color);
|
|
|
|
+ color: $jt3d-text-color;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* 四个边角样式 */
|
|
|
|
+ // .borderstyle {
|
|
|
|
+ // position: relative;
|
|
|
|
+ // width: 100%;
|
|
|
|
+ // height: 490rem;
|
|
|
|
+ // padding: 10rem;
|
|
|
|
+ // border: 1rem solid #008aff70 !important;
|
|
|
|
+ // background-color: rgba(5, 45, 115, 0.7) !important;
|
|
|
|
+ // box-shadow: 0 4rem 15rem 1rem #02213bb3;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ .angle-border {
|
|
|
|
+ position: absolute;
|
|
|
|
+ width: 12rem;
|
|
|
|
+ height: 12rem;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .angle-border-blue {
|
|
|
|
+ position: absolute;
|
|
|
|
+ width: 70rem;
|
|
|
|
+ height: 30rem;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .left-top-border {
|
|
|
|
+ top: -2rem;
|
|
|
|
+ left: -2rem;
|
|
|
|
+ border-left: 2rem solid #008affdd;
|
|
|
|
+ border-top: 2rem solid #008affdd;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .right-top-border {
|
|
|
|
+ top: -2rem;
|
|
|
|
+ right: -2rem;
|
|
|
|
+ border-right: 2rem solid #008affdd;
|
|
|
|
+ border-top: 2rem solid #008affdd;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .left-bottom-border {
|
|
|
|
+ bottom: -2rem;
|
|
|
|
+ left: -2rem;
|
|
|
|
+ border-bottom: 2rem solid #FFFFFF;
|
|
|
|
+ border-left: 2rem solid #FFFFFF;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .right-bottom-border {
|
|
|
|
+ bottom: -2rem;
|
|
|
|
+ right: -2rem;
|
|
|
|
+ border-right: 2rem solid #FFFFFF;
|
|
|
|
+ border-bottom: 2rem solid #FFFFFF;
|
|
|
|
+ }
|
|
|
|
+ // }
|
|
|
|
+</style>
|