原文链接及内容

效果如下图所示:点击各个地点查看即可。

注:PAMAP 的全称是 Pennsylvania Mapping and Assessment Program。这个程序是宾夕法尼亚州负责生成详细地图数据的项目,包括数字高程模型,旨在为该州提供高分辨率的地理信息。

示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
const viewer = new Cesium.Viewer("cesiumContainer", {
geocoder: false,
homeButton: false,
sceneModePicker: false,
navigationHelpButton: false,
navigationInstructionsInitiallyVisible: false,
animation: false,
timeline: false,
fullscreenButton: false,
skyBox: false,
shouldAnimate: true,
baseLayerPicker: false,
shadows: true,
});
viewer.cesiumWidget.creditContainer.style.display = "none";

try {
/**
* 宾夕法尼亚州高分辨率地形数据,
* 由宾夕法尼亚空间数据访问中心(PASDA)整理提供 http://www.pasda.psu.edu/
*/
viewer.terrainProvider =
await Cesium.CesiumTerrainProvider.fromIonAssetId(3957);
} catch (error) {
window.alert(`地形数据加载失败. ${error}`);
}

// Add PA locations-添加宾夕法尼亚州几个位置,这里使用PA表示该州标识符
Sandcastle.addDefaultToolbarMenu(
[
{
text: "(阿巴拉契亚山脉)顶峰",
onselect: function () {
viewer.scene.camera.flyTo({
destination: Cesium.Cartesian3.fromRadians(
-1.3324415110874286,
0.6954224325279967,
236.6770689945084,
),
orientation: {
heading: Cesium.Math.toRadians(310),
pitch: Cesium.Math.toRadians(-15),
roll: 0.0,
},
});
},
},
{
text: "尼塔尼山",
onselect: function () {
viewer.scene.camera.flyTo({
destination: Cesium.Cartesian3.fromRadians(
-1.358985133937573,
0.7123252393978314,
451.05748252867375,
),
orientation: {
heading: Cesium.Math.toRadians(85),
pitch: Cesium.Math.toRadians(0),
roll: 0.0,
},
});
},
},
{
text: "蹄铁曲线(铁轨路段)",
onselect: function () {
viewer.scene.camera.flyTo({
destination: Cesium.Cartesian3.fromRadians(
-1.3700147546199826,
0.706808606166025,
993.7916313325215,
),
orientation: {
heading: Cesium.Math.toRadians(90),
pitch: Cesium.Math.toRadians(-15),
roll: 0.0,
},
});
},
},
{
text: "吉姆索普(小镇)",
onselect: function () {
viewer.scene.camera.flyTo({
destination: Cesium.Cartesian3.fromRadians(
-1.3218297501066052,
0.713358272291525,
240.87968743408845,
),
orientation: {
heading: Cesium.Math.toRadians(200),
pitch: Cesium.Math.toRadians(-5),
roll: 0.0,
},
});
},
},
{
text: "派恩溪峽谷",
onselect: function () {
viewer.scene.camera.flyTo({
destination: Cesium.Cartesian3.fromRadians(
-1.349379633251472,
0.720297672225785,
656.268309953562,
),
orientation: {
heading: Cesium.Math.toRadians(200),
pitch: Cesium.Math.toRadians(-5),
roll: 0.0,
},
});
},
},
],
"toolbar",
);

viewer.scene.camera.flyTo({
destination: Cesium.Cartesian3.fromRadians(
-1.3324415110874286,
0.6954224325279967,
236.6770689945084,
),
orientation: {
heading: Cesium.Math.toRadians(310),
pitch: Cesium.Math.toRadians(-15),
roll: 0.0,
},
duration: 0.0,
});