我已经开始学习地理信息系统开发与Geodjango,mapbox和开放层。我已经在Autodesk Forge Viewer中创建了我的应用程序,我已经能够创建这个桶并添加了一些3D模型。现在,我面临一个问题,即在Forge中的3D模型下添加一个mapbox Tile层。如有任何协助,将不胜感激。这是我的Javascript代码
class MyMapboxForgeExtension extends Autodesk.Viewing.Extension {
constructor(viewer, options) {
super(viewer, options);
}
quad(x,y) {
const mesh = new THREE.Mesh(
new THREE.PlaneBufferGeometry( 256, 256 ),
new THREE.MeshNormalMaterial({ color:0xa0a0a0, depthWrite:false,
map: (THREE.ImageUtils.loadTexture(`https://api.mapbox.com/styles/v1/snex-tech/cl9ie4t7h00kv15qrta7poy29.html?title=view&access_token=pk.eyJ1Ijoic25leC10ZWNoIiwiYSI6ImNsOWZqbnV6bzAyMDQzd29hNXk2cWgwOHAifQ.-qMPioM3OUUHLWgClmsthw&zoomwheel=true&fresh=true#2/37.75/-92.25`)) })
);
mesh.position.set (x*256,y*256, 1);
return mesh;
}
load() {
this.viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, ()=>{
if (!this.viewer.overlays.hasScene('map')) {
this.viewer.overlays.addScene('map');
}
const tiles = new THREE.Object3D();
tiles.position.set(-1140,-800, -10);
tiles.scale.set(2,2,1);
const tilex = [-1,0,1,2,3];
const tiley = [0,1,2];
tilex.map( x => {
tiley.map( y => {
tiles.add(this.quad(x,y));
})});
window.tiles=tiles;
this.viewer.overlays.addMesh(tiles, 'map');
});
return true;
}
unload() {
return true;
}
}
Autodesk.Viewing.theExtensionManager.registerExtension('MyMapboxForgeExtension', MyMapboxForgeExtension);我尝试在Mapbox中创建一个样式,并在我的Javascript代码中链接mapbox,但是地图并没有在Autodesk Forge Viewer中的3D模型下面反射。下面是我的ForgeViewer.js;
发布于 2022-11-11 01:54:49
尝试使用以下代码:
https://gist.github.com/wallabyway/4503609e84a2b612b27138abba8aa3b7
这是将地图瓷砖添加到观众场景中的最简单方法。它实际上为现场添加了一个小的瓷砖网格。
如果您想要更高级的东西,请使用geoThree.js。我在这里写了一篇博文:
博客:https://forge.autodesk.com/blog/add-mapbox-google-maps-forge-viewer

这能回答你的问题吗?
https://stackoverflow.com/questions/74208225
复制相似问题