
import * as Geo3D from "../src";
import InitHelper from "./InitHelper";
//3D场景初始化
const sceneControl = InitHelper.init3D();
const container = document.querySelector("#map") as HTMLElement;
container && sceneControl.render(container);
const { scene, camera, renderer } = sceneControl;
const control = InitHelper._createControls(camera, container);
InitHelper.loadGltf(scene, 1);
renderer.shadowMap.type = PCFSoftShadowMap;
const light = InitHelper.addLight(scene, new Vector3(5000, 2000, 5000));
light.visible = true
//插件初始化
const centerGeo = new Vector3(116.185600, 39.896326, 0);
const imageryLayers = new Geo3D.ImageryLayers()
const tdtImageryLayer = new Geo3D.TDTImageryLayer({
token: 'b832b97649334239ascbb0919148c548b669ba',
})
const tdtImageryLayer2 = new Geo3D.TDTImageryLayer({
token: 'b832b9764939cbfeeb0919148c548b669ba',
style: 'cva_w',
})
imageryLayers.add(tdtImageryLayer);
imageryLayers.add(tdtImageryLayer2);
const map = new Geo3D.Map({
threeModule: {
scene, camera, renderer, control
},
center: centerGeo,
useEarth: false,
imageryLayers: imageryLayers,
// terrainLayer: new Geo3D.TerrainLayer({
// maxLevel: 14,
// url: globalConfig.terrain_beijing
// })
})
map.addEventListener(Geo3D.MapEventType.ready, () => {
const mask = document.getElementById('mask');
mask!.style.display = 'none';
});
function getFormatExtent(coords) {
const results: Geo3D.Point[] = [];
for (let index = 0; index < coords.length; index++) {
const pointCoord = coords[index];
const coord3DXYZ = Geo3D.CoordUtil.LonLatTo3DXYZ(pointCoord[0], pointCoord[1], 0);
results.push([coord3DXYZ.x, coord3DXYZ.z]);
}
return results;
}
const minlon1 = 116.182892;
const minlat1 = 39.894874;
const maxlon1 = 116.188174;
const maxlat1 = 39.897445;
const excludeCoords = [
[minlon1, minlat1],
[maxlon1, minlat1],
[maxlon1, maxlat1],
[minlon1, maxlat1],
[minlon1, minlat1]
]
const excludeExtent = getFormatExtent(excludeCoords);
// 116.182944, 39.901406
const minlon = 116.162944;
const minlat = 39.881406;
const maxlon = 116.202944;
const maxlat = 39.921406;
const extentCoords = [
[minlon, minlat],
[maxlon, minlat],
[maxlon, maxlat],
[minlon, maxlat],
[minlon, minlat]
]
const exttent = getFormatExtent(extentCoords);
const treePipline = new Geo3D.TreeManager.TreePipeline({
imageryLayer: tdtImageryLayer,
extent: exttent,
exclude: excludeExtent,
scene: scene,
camera: camera
})
treePipline.add();
//
const buildingPipline = new Geo3D.BuildingPipline({
pbfUrl: './static/shijingshan.bpf',
scene: scene
})
buildingPipline.loadBuilding();