← 返回 Skill 列表
extension
分类: 开发与工程API Key 暂未确认

三维地球示例

用最新稳定版 Cesium API 编写原生三维地球示例,覆盖异步地形、瓦片加载与常见可视化场景的推荐写法。Use when writing native CesiumJS demos against the latest stable API covering async terrain. Triggers include Cesium、三维地球、GIS、地形渲染。如需三维可视化包,淘宝搜索「AI灵匣」店铺获取完整版。

person作者: nuhabvtyhubOpenAPI

Cesium Skills (native, latest API)

Generate native CesiumJS code aligned with the official ref-doc.

This skill ships ~185 modernized demo scripts (.js only, no HTML) under examples/, converted from Cesium-Examples examples/cesiumEx with async terrain/tileset, baseLayer, and WebGL2-oriented rewrites.

Hard rules

  1. Native only — call Cesium.* directly. No mars3d / SuperMap / custom SDK wrappers.
  2. Latest stable Cesium — Ion CDN or npm cesium. Do not default to Cesium 1.98 paths.
  3. Modern async API — prefer fromUrl / fromGltfAsync / createWorldTerrainAsync / Terrain.fromWorldTerrain. Never recommend readyPromise or new Cesium3DTileset({ url }) / new CesiumTerrainProvider({ url }) as the primary path.
  4. WebGL2 default — never set requestWebgl1: true. Custom shaders follow webgl2.md.
  5. Container — div#map unless the host project already differs.
  6. No default Ion basemap noise — baseLayer: false + baseLayerPicker: false, then add imagery yourself. Do not use deprecated imageryProvider: false.
  7. Prefer Chinese section comments when writing demos for Chinese users.
  8. Prefer Tianditu XYZ as the sample imagery (placeholder tk=).
  9. Read examples/<demo>.js before inventing non-trivial demos. Auto-migrated files may need small cleanup; apply migration.md / webgl2.md if anything still looks legacy.

Workflow

- [ ] Identify feature (catalog.md / examples/README.md)
- [ ] READ examples/<matching>.js  (required for non-trivial features)
- [ ] Cross-check patterns.md / webgl2.md / scripts/ as needed
- [ ] Emit runnable HTML for the user (templates.md) using modern Cesium CDN
- [ ] Replace tokens/URLs; frame camera on the feature

Full index: examples.md → examples/README.md.

Regenerate from upstream HTML (maintainers): node _build-examples.mjs

Default Viewer bootstrap

const viewer = new Cesium.Viewer('map', {
  baseLayer: false,
  baseLayerPicker: false,
  animation: false,
  timeline: false,
  geocoder: false,
  homeButton: false,
  sceneModePicker: false,
  navigationHelpButton: false,
  fullscreenButton: false,
  infoBox: false,
  selectionIndicator: false,
});

viewer.imageryLayers.addImageryProvider(
  new Cesium.UrlTemplateImageryProvider({
    url: 'https://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=YOUR_TIANDITU_TOKEN',
  })
);

World terrain (Ion token required):

const viewer = new Cesium.Viewer('map', {
  baseLayer: false,
  baseLayerPicker: false,
  terrain: Cesium.Terrain.fromWorldTerrain(),
});

Helper: scripts/createViewer.js.

Feature routing

| User asks for… | Read first | | --- | --- | | Any concrete demo (水波纹 / 地形 / 3D Tiles…) | Matching file in examples/ | | Viewer / camera / events / coords | examples/1.*.js + patterns.md | | Imagery | examples/2.1.*.js | | Terrain | examples/2.2.*.js + migration.md | | Entity / GeoJSON | examples/2.3.*.js | | glTF / 3D Tiles / CustomShader | examples/2.4.*.js, examples/3.1.*.js | | Analysis / measure / video | examples/4.*.js | | Fog / particles / radar / fence | examples/5.*.js + webgl2.md | | Materials / wave / flow | examples/7.*.js + scripts/ | | Heatmap / wind / isosurface | examples/8.*.js | | Old demo broke after upgrade | migration.md |

Output expectations

  • Emit a complete runnable HTML for the user (skill package itself has no .html).
  • Load latest Cesium (see templates.md), not Cesium1.98.
  • Full-bleed #map; native APIs only; placeholder tokens.
  • Effects must be WebGL2-safe.

Quality checklist

  • [ ] Started from examples/*.js when a matching demo exists
  • [ ] No imageryProvider: false / readyPromise / requestWebgl1
  • [ ] Terrain / tileset / model use async factories
  • [ ] WebGL2-safe custom GLSL
  • [ ] Tokens/URLs placeholders; camera framed

Additional resources