全球和局部场景

使用不同投影的全球场景和局部场景,以显示相同的底图图层和要素图层

什么是全球场景和局部场景?

全球场景和局部场景是用于可视化 3D 数据的不同查看模式。当您使用场景时,可以选择是在全球上渲染数据,还是将数据投影到可在 3D 空间中导航的平面上。

全球场景通常用于显示跨越全球的数据,当查看地球曲率时,这非常重要。

局部场景是地表的投影视图,通常用于较小的范围。在可视化(如国家/地区或城市)数据时,它非常有用。要仅显示感兴趣的区域,可以将局部场景裁剪到某个范围。

在全球场景和局部场景中,您可以显示地下数据,并在地下和地上进行漫游。

如何创建场景

要创建全球场景或局部场景,请定义要显示的底图图层数据图层,然后设置照相机属性。

定义场景

第一步是创建具有底图图层和/或数据图层的场景。您还可以引用高程服务以显示带有地貌的场景。

展开
代码块使用深色复制
                                                                                                                                          
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
133
134
135
136
137
138
        geosceneConfig.apiKey = ;
        // In the GeoScene JS API, the Map class is used
        // to define both maps and scenes.
        const map = new Map({
          basemap: "tianditu-vector",
          ground: "world-elevation"
        });
 
展开

设置照相机

现在使用场景视图显示场景。可通过定义场景视图的照相机、指定相机的位置(包括高度)、方向和倾斜度(或俯仰)来设置场景视图的场景透视。

使用场景视图可以指定查看模式是 local 还是 global

展开
代码块使用深色复制
                                                                                                                                          
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
133
134
135
136
137
138
        const sceneView = new SceneView({
          map: map,
          camera: {
            position: [
              -41.18215285,
              -86.13467977,
              9321113.29449
            ],
            heading: 359.73,
            tilt: 68.57
          },
          viewingMode: "local",
 
展开

示例

创建全球场景

此示例显示了全球场景中的地震数据。该场景使用 Vintage Shaded Relief 图层作为底图。此外,地震数据图层作为 CSV 图层加载。在场景视图上设置场景以及相机位置和全球查看模式。

展开
代码块使用深色复制
                                                                                                                                         
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
133
134
135
136
137
        const map = new Map({
          basemap: new Basemap({
            baseLayers: [
              new TileLayer({
                url: "https://tiles.arcgis.com/tiles/nGt4QxSblgDfeJn9/geoscene/rest/services/VintageShadedRelief/MapServer"
              })
            ]
          }),
          layers: [csvLayer]
        });

        const view = new SceneView({
          container: "viewDiv",
          map: map,
          // Indicates to create a global scene
          viewingMode: "global",
          camera: {
            position: [
              -63.77153412,
              20.75790715,
              25512548.00000
            ],
            heading: 0.00,
            tilt: 0.10
          },
 
展开

创建局部场景

此示例在一个裁剪的局部场景中显示地震。场景视图显示底图和地震数据 (显示在地平面下方)。启用地下导航以探索地震。此外,该视图使用裁剪范围来仅显示感兴趣的区域。

GeoScene JS API
展开
代码块使用深色复制
                                                                                                                                                                                    
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
        const map = new Map({
          basemap: "tianditu-vector",
          layers: [
            quakesDepthLayer
          ],
          ground: {
            navigationConstraint: {
              type: "none"
            },
            opacity: 0.8
          }
        });

        const view = new SceneView({
          container: "viewDiv",
          map: map,
          // Indicates to create a local scene
          viewingMode: "local",
          // Use the exent defined in clippingArea to define the bounds of the scene
          clippingArea: {
            xmax: -10834217,
            xmin: -10932882,
            ymax: 4493918,
            ymin: 4432667,
            spatialReference: {
              wkid: 3857
            }
          },
          camera: {
            position: [
              -98.36408160,
              36.42115060,
              26124.42603
            ],
            heading: 32.37,
            tilt: 78.08
          },
 
展开

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。