Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cesium-frame
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jlc
cesium-frame
Commits
96625002
Commit
96625002
authored
Jul 29, 2024
by
jlc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update:地表测站案例的添加
parent
4ef955bc
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
209 additions
and
2 deletions
+209
-2
Station.png
src/assets/Station.png
+0
-0
AsideMenuBar.vue
src/components/AsideMenuBar.vue
+16
-1
CodeMap.js
src/examples/CodeMap.js
+4
-0
FunctionMap.js
src/examples/FunctionMap.js
+4
-0
addStation-function.js
...examples/measureStation/addStation/addStation-function.js
+124
-0
addStation.vue
src/examples/measureStation/addStation/addStation.vue
+36
-0
ElementMap.js
src/views/ElementMap.js
+11
-0
indexView.vue
src/views/indexView.vue
+14
-1
No files found.
src/assets/Station.png
0 → 100644
View file @
96625002
299 KB
src/components/AsideMenuBar.vue
View file @
96625002
...
...
@@ -31,6 +31,17 @@
<el-sub-menu
index=
"3"
>
<
template
#
title
>
<el-icon><Grid
/></el-icon>
<span>
测站
</span>
</
template
>
<el-menu-item
v-for=
"item in elementStation"
:key=
"item.id"
:index=
"item.title"
@
click=
"goAnchor(item.title)"
>
<el-icon><View
/></el-icon>
<span>
{{item.title}}
</span>
</el-menu-item>
</el-sub-menu>
<el-sub-menu
index=
"4"
>
<
template
#
title
>
<el-icon><Grid
/></el-icon>
<span>
动目标
</span>
</
template
>
<el-menu-item
v-for=
"item in elementMoving"
:key=
"item.id"
:index=
"item.title"
@
click=
"goAnchor(item.title)"
>
...
...
@@ -38,6 +49,7 @@
<span>
{{item.title}}
</span>
</el-menu-item>
</el-sub-menu>
</el-menu>
</el-scrollbar>
</el-aside>
...
...
@@ -46,16 +58,19 @@
<
script
setup
>
import
{
ref
}
from
'vue'
;
import
{
MapLocation
,
SemiSelect
,
Grid
,
View
}
from
"@element-plus/icons-vue"
;
import
{
elementGraphicMap
,
elementWeatherMap
,
elementMovingMap
}
from
'@/views/ElementMap'
;
import
{
elementGraphicMap
,
elementWeatherMap
,
element
StationMap
,
element
MovingMap
}
from
'@/views/ElementMap'
;
const
elementGraphic
=
ref
()
const
elementWeather
=
ref
()
const
elementStation
=
ref
()
const
elementMoving
=
ref
()
elementGraphic
.
value
=
elementGraphicMap
;
elementWeather
.
value
=
elementWeatherMap
;
elementStation
.
value
=
elementStationMap
;
elementMoving
.
value
=
elementMovingMap
;
const
props
=
defineProps
({
isCollapse
:
{
type
:
Boolean
,
...
...
src/examples/CodeMap.js
View file @
96625002
...
...
@@ -12,6 +12,8 @@ import vueCodeSnow from '@/examples/weather/snow/snow.vue?raw'
import
vueCodeFog
from
'@/examples/weather/fog/fog.vue?raw'
import
vueCodeWaterSurface
from
'@/examples/weather/waterSurface/waterSurface.vue?raw'
import
vueCodeAddStation
from
'@/examples/measureStation/addStation/addStation.vue?raw'
import
vueCodeAircraft
from
'@/examples/movingTarget/aircraft/aircraft.vue?raw'
import
vueCodeRocket
from
'@/examples/movingTarget/rocket/rocket.vue?raw'
...
...
@@ -29,6 +31,8 @@ const vueCodeMap = {
雾
:
vueCodeFog
,
水面
:
vueCodeWaterSurface
,
添加测站
:
vueCodeAddStation
,
飞机
:
vueCodeAircraft
,
火箭发射
:
vueCodeRocket
}
...
...
src/examples/FunctionMap.js
View file @
96625002
...
...
@@ -12,6 +12,8 @@ import functionCodeSnow from '@/examples/weather/snow/snow-function.js?raw'
import
functionCodeFog
from
'@/examples/weather/fog/fog-function.js?raw'
import
functionCodeWaterSurface
from
'@/examples/weather/waterSurface/waterSurface-function.js?raw'
import
functionCodeAddStation
from
'@/examples/measureStation/addStation/addStation-function.js?raw'
import
functionCodeAircraft
from
'@/examples/movingTarget/aircraft/aircraft-function.js?raw'
import
functionCodeRocket
from
'@/examples/movingTarget/rocket/rocket-function.js?raw'
...
...
@@ -29,6 +31,8 @@ const functionCodeMap = {
雾
:
functionCodeFog
,
水面
:
functionCodeWaterSurface
,
添加测站
:
functionCodeAddStation
,
飞机
:
functionCodeAircraft
,
火箭发射
:
functionCodeRocket
}
...
...
src/examples/measureStation/addStation/addStation-function.js
0 → 100644
View file @
96625002
export
function
addStation
(
info
)
{
const
script
=
document
.
createElement
(
'script'
);
script
.
src
=
'https://cesium.com/downloads/cesiumjs/releases/1.99/Build/Cesium/Cesium.js'
;
script
.
onload
=
()
=>
{
window
.
Cesium
.
Ion
.
defaultAccessToken
=
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3Njg4ZWU5Yi1iZDhiLTRhYmUtOTRiYS04YjM5NmUwNjVmMDMiLCJpZCI6MjI3MzQ3LCJpYXQiOjE3MjA1MjA4Mjh9.E5XW4LnwgfVAaBC-znaYr61m4yK0-j2qEQhi9qwFFPE'
const
viewer
=
new
window
.
Cesium
.
Viewer
(
'cesiumContainer'
,
{
infoBox
:
false
,
});
const
SITE
=
{
id
:
null
,
show
:
true
,
ellipsoid
:
{
show
:
true
,
heightReference
:
undefined
,
radii
:
null
,
innerRadii
:
null
,
minimumClock
:
0.0
,
maximumClock
:
2
*
Cesium
.
Math
.
PI
,
minimumCone
:
0.0
,
maximumCone
:
Cesium
.
Math
.
PI
,
fill
:
true
,
material
:
Cesium
.
Color
.
RED
.
withAlpha
(
0.3
),
outline
:
false
,
outlineColor
:
Cesium
.
Color
.
BLACK
,
outlineWidth
:
1.0
,
stackPartitions
:
8
,
slicePartitions
:
8
,
subdivisions
:
128
,
shadows
:
undefined
,
distanceDisplayCondition
:
new
Cesium
.
DistanceDisplayCondition
(
0.0
,
200000.0
),
},
model
:
{
show
:
true
,
uri
:
'https://webgishome-file.oss-cn-chengdu.aliyuncs.com/common/Cesium_Air.glb'
,
scale
:
1
,
minimumPixelSize
:
30
,
maximumScale
:
500
,
incrementallyLoadTextures
:
true
,
runAnimations
:
true
,
clampAnimations
:
true
,
shadows
:
Cesium
.
ShadowMode
.
ENABLED
,
heightReference
:
Cesium
.
HeightReference
.
CLAMP_TO_GROUND
,
silhouetteColor
:
Cesium
.
Color
.
RED
,
silhouetteSize
:
0.0
,
color
:
Cesium
.
Color
.
WHITE
,
colorBlendMode
:
Cesium
.
ColorBlendMode
.
HIGHLIGHT
,
colorBlendAmount
:
0.5
,
imageBasedLightingFactor
:
new
Cesium
.
Cartesian2
(
1.0
,
1.0
),
lightColor
:
undefined
,
distanceDisplayCondition
:
new
Cesium
.
DistanceDisplayCondition
(
0.0
,
250000.0
),
nodeTransformations
:
undefined
,
articulations
:
undefined
,
clippingPlanes
:
undefined
,
},
label
:
{
show
:
true
,
text
:
null
,
font
:
'30px sans-serif'
,
style
:
Cesium
.
LabelStyle
.
FILL
,
scale
:
0.5
,
showBackground
:
false
,
backgroundColor
:
new
Cesium
.
Color
(
0.165
,
0.165
,
0.165
,
0.8
),
backgroundPadding
:
new
Cesium
.
Cartesian2
(
7
,
5
),
pixelOffset
:
new
Cesium
.
Cartesian2
(
15
,
0
),
eyeOffset
:
Cesium
.
Cartesian3
.
ZERO
,
horizontalOrigin
:
Cesium
.
HorizontalOrigin
.
LEFT
,
verticalOrigin
:
Cesium
.
VerticalOrigin
.
TOP
,
heightReference
:
Cesium
.
HeightReference
.
NONE
,
fillColor
:
Cesium
.
Color
.
WHITE
,
outlineColor
:
Cesium
.
Color
.
BLACK
,
outlineWidth
:
1.0
,
translucencyByDistance
:
null
,
pixelOffsetScaleByDistance
:
null
,
scaleByDistance
:
null
,
distanceDisplayCondition
:
new
Cesium
.
DistanceDisplayCondition
(
0.0
,
250000.0
),
disableDepthTestDistance
:
null
,
},
point
:
{
id
:
null
,
show
:
true
,
pixelSize
:
10
,
heightReference
:
Cesium
.
HeightReference
.
NONE
,
color
:
Cesium
.
Color
.
RED
,
outlineColor
:
Cesium
.
Color
.
BLACK
,
outlineWidth
:
0
,
scaleByDistance
:
undefined
,
translucencyByDistance
:
undefined
,
distanceDisplayCondition
:
new
Cesium
.
DistanceDisplayCondition
(
250000.0
,
99999999999999
),
disableDepthTestDistance
:
undefined
,
}
}
let
{
id
,
position
}
=
{
...
SITE
,
...
info
}
let
{
...
label
}
=
{
...
SITE
.
label
,
...
info
.
label
}
let
{
...
ellipsoid
}
=
{
...
SITE
.
ellipsoid
,
...
info
.
ellipsoid
}
let
{
...
model
}
=
{
...
SITE
.
model
,
...
info
.
model
}
let
{...
point
}
=
{...
SITE
.
point
,...
info
.
point
}
ellipsoid
.
radii
=
new
Cesium
.
Cartesian3
(...
ellipsoid
.
radii
)
ellipsoid
.
innerRadii
=
new
Cesium
.
Cartesian3
(...
ellipsoid
.
innerRadii
)
ellipsoid
.
minimumClock
=
Cesium
.
Math
.
toRadians
(
ellipsoid
.
minimumClock
)
ellipsoid
.
maximumClock
=
Cesium
.
Math
.
toRadians
(
ellipsoid
.
maximumClock
)
ellipsoid
.
minimumCone
=
Cesium
.
Math
.
toRadians
(
ellipsoid
.
minimumCone
)
ellipsoid
.
maximumCone
=
Cesium
.
Math
.
toRadians
(
ellipsoid
.
maximumCone
)
label
.
text
=
`
${
id
}
`
let
site
=
viewer
.
entities
.
add
({
id
:
id
,
position
:
Cesium
.
Cartesian3
.
fromDegrees
(...
position
),
label
:
label
,
ellipsoid
:
ellipsoid
,
model
:
model
,
point
:
point
,
})
viewer
.
zoomTo
(
site
)
};
document
.
head
.
appendChild
(
script
);
const
link
=
document
.
createElement
(
'link'
);
link
.
rel
=
'stylesheet'
;
link
.
href
=
'https://cesium.com/downloads/cesiumjs/releases/1.119/Build/Cesium/Widgets/widgets.css'
;
document
.
head
.
appendChild
(
link
);
}
src/examples/measureStation/addStation/addStation.vue
0 → 100644
View file @
96625002
<
template
>
<div
id=
"cesiumContainer"
class=
"cesium-container"
></div>
</
template
>
<
script
setup
>
import
{
onMounted
}
from
'vue'
;
import
{
addStation
}
from
'./function'
;
onMounted
(()
=>
{
let
siteInfo
=
{
id
:
'site'
,
position
:
[
20
,
20
,
1
],
ellipsoid
:
{
radii
:
[
50000
,
50000
,
50000
],
innerRadii
:[
1
,
1
,
1
],
minimumClock
:
45
,
maximumClock
:
90
,
minimumCone
:
45
,
maximumCone
:
75
,
outline
:
false
,
fill
:
true
,
},
label
:
{
text
:
''
},
}
addStation
(
siteInfo
)
});
</
script
>
<
style
>
.cesium-container
{
width
:
100%
;
height
:
100vh
;
}
</
style
>
\ No newline at end of file
src/views/ElementMap.js
View file @
96625002
...
...
@@ -48,6 +48,17 @@ export const elementWeatherMap = {
}
}
export
const
elementStationMap
=
{
添加测站
:
{
title
:
'添加测站'
,
pngUrl
:
'/src/assets/Station.png'
},
测站坐标系
:
{
title
:
'测站坐标系'
,
pngUrl
:
'/src/assets/Aircraft.png'
}
}
export
const
elementMovingMap
=
{
飞机
:
{
title
:
'飞机'
,
...
...
src/views/indexView.vue
View file @
96625002
...
...
@@ -19,6 +19,15 @@
</div>
</div>
<div
class=
"mt-10"
>
<span
class=
"text-base font-bold"
>
测站
</span>
<div
style=
"overflow-y: auto"
class=
"container"
>
<div
v-for=
"item in elementStation"
:key=
"item.id"
@
click=
"indexBtn(item.title)"
class=
"item-container"
>
<div
:id=
"item.title"
>
{{
item
.
title
}}
</div>
<img
:src=
"item.pngUrl"
width=
"250"
>
</div>
</div>
</div>
<div
class=
"mt-10"
>
<span
class=
"text-base font-bold"
>
动目标
</span>
<div
style=
"overflow-y: auto"
class=
"container"
>
<div
v-for=
"item in elementMoving"
:key=
"item.id"
@
click=
"indexBtn(item.title)"
class=
"item-container"
>
...
...
@@ -33,17 +42,21 @@
<
script
setup
>
import
{
ref
}
from
'vue'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
elementGraphicMap
,
elementWeatherMap
,
elementMovingMap
}
from
'./ElementMap'
;
import
{
elementGraphicMap
,
elementWeatherMap
,
element
StationMap
,
element
MovingMap
}
from
'./ElementMap'
;
const
router
=
useRouter
()
const
elementGraphic
=
ref
()
const
elementWeather
=
ref
()
const
elementStation
=
ref
()
const
elementMoving
=
ref
()
elementGraphic
.
value
=
elementGraphicMap
;
elementWeather
.
value
=
elementWeatherMap
;
elementStation
.
value
=
elementStationMap
;
elementMoving
.
value
=
elementMovingMap
;
// 跳转到对应的编码编辑内容
function
indexBtn
(
id
)
{
router
.
push
(
`/CodeAndCesium/?id=
${
id
}
`
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment