我无法使用TypeScript运行Cesium,由于出现“铯”无法以一种或另一种错误形式出现的错误,它经常失败。
我有这个项目树:
在tsconfig.json中:
{
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "ES6",
"allowJs": true,
"noEmit": true,
"types": [],
"strict": true
},
"exclude": [
"node_modules",
"Build"
],
"include": [
"Build/CesiumUnminified/Cesium.js"
]
}
在index.html中:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>CesiumTest</title>
<base href="/" />
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="css/app.css" rel="stylesheet" />
<link href="manifest.json" rel="manifest" />
<link href="css/syncfusion-blazor-icons.css" rel="stylesheet" />
<link href="Build//Cesium/Widgets/widgets.css" rel="stylesheet" />
<link rel="stylesheet" href="_content/Syncfusion.Blazor/styles/bootstrap4.css" />
</head>
<body>
<app>Loading...</app>
<div id="blazor-error-ui">
An unhandled error has occurred.
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>
<script src="_framework/blazor.webassembly.js"></script>
<script>navigator.serviceWorker.register( 'service-worker.js' );</script>
<script src="Source/Cesium.js"></script>
<script src="Main.js" ></script>
</body>
</html>
在Main.ts中:
import * as Cesium from "cesium";
let map: Cesium.Viewer = undefined;
function createTheMap()
{
if (map === undefined) {
map = new Cesium.Viewer("mapViewDiv",
{
timeline: false,
animation: false,
infoBox: false,
navigationHelpButton: false,
fullscreenButton: false,
geocoder: false,
shadows: false
});
console.log( map );
}
map.zoomTo(map.entities);
};
PS。该项目完全是客户端-因此未使用Node.js。
通常,您需要将@typings for cesium添加到项目中。但是,如果您在本地安装它,则可以选择
import * as Cesium from "../Build/Cesium/Cesium.js";
导入(但由于它在您的rootDir之外,因此将失败)将其添加到paths
in your tsconfig inside the compilerOptions
;
compilerOptions:{ ... “路径”:{ “铯”:[“ ../ Build / Cesium / cesium.js”] }}