查看原文
其他

ChatGPT做三维!训练ChatGPT自动化3D WebGIS开发

小助手 GIS前沿 2023-04-08



最近一段时间ChatGPT可以说是风头无两,ChatGPT给人们新鲜感的同时,也引发了恐慌与焦虑。之前小助手也体验过ChatGPT,合理的使用确实有助于我们测绘地理信息从业者工作效率的提升。

这两天小助手在外网看到了一篇关于GIS与ChatGPT的文章,文章作者Joe T. Santhanavanich基于CesiumJS库和OpenStreetMap数据训练ChatGPT自动执行3D WebGIS开发。经训练,惊讶的发现如果你提前备好数据,ChatGPT可以在一分钟内创建世界上任何区域的3D WebGIS。


在这次实验中,作者只经过5次试验引导就让ChatGPT给出了他所要的结果,下面我们来看看作者是如何训练ChatGPT做3D WebGIS开发 。


试验 1:


使用CesiumJS构建基于Web的3D应用程序示例HTML代码。


结果:

ChatGPT 给出的回答(部分截图)


下面就试试ChatGPT写的这段代码。


只需复制结果并将其粘贴到VS Code上,然后使用Live Server扩展在虚拟服务器上运行就行。


运行失败


第一次试验:失败!


不过作者很快找到了失败的原因,因为ChatGPT是基于CesiumJS库,该库从2021年1.86版本已"过期",而且并未更正公众对其的引用。


所以现在,只需要引导ChatGPT到正确的路径和版本即可。



试验 2:


请将Cesium.js和Widgets的引用更新到此路径:https://cesium.com/downloads/cesiumjs/releases/1.103/Build/Cesium/


结果:


现在,在新的服务器上尝试后,底图现已加载。


第二次试验结果


问题:

第二次试验后又有了新的问题,使用ChatGPT自动生成的脚本,数据已经过时不再可用。所以,我们只需要引导他们进入新的Tileset。在这种情况下,需要改进ChatGPT,以便直接使用CesiumJS中的OSM数据集。

为了做到这一点,作者在CesiumIon上创建了一个免费帐户,然后复制了3D Cesium OSM建筑物的ID[96188],将使用它来引导ChatGPT了解它。


查找Cesium OSM建筑物ID



试验 3:


更新HTML代码以加载编号为96188的3D OSM数据集,并在加载数据集后缩放至伦敦金融城。


结果:

成功!3D建筑模型已正确加载。

第三次试验结果


注意*:需要在应用程序中手动输入Cesium API 密钥。


问题:

现在3D建筑已成功加载。不过,仔细观察会发现,底图与每个建筑物之间仍然存在间隙。为了缩小这个差距,还需要更新脚本以加载地形。



试验 4:


更新HTML代码以额外加载Cesium地形。


结果:

第四次试验结果


问题:

现在整体结果看起来好多了,不过这些建筑物颜色看起来比较阴暗,这些可以通过时间设置来解决此问题。



试验 5:


请更新HTML代码,将Cesium的时间设置为当地时间上午 8 点。


结果:

第五次试验结果


经过最后的训练,一切看起来都差不多了,第五次的结果是我们所需的最终成果。


最终成果:

<!DOCTYPE html><html lang="en"><head> <title>Cesium 3D Tileset Example</title> <script src="https://cesium.com/downloads/cesiumjs/releases/1.103/Build/Cesium/Cesium.js"></script> <link rel="stylesheet" href="https://cesium.com/downloads/cesiumjs/releases/1.103/Build/Cesium/Widgets/widgets.css"> <style> #cesiumContainer { width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden; }</style></head><body> <div id="cesiumContainer"></div> <script> Cesium.Ion.defaultAccessToken = '<Your Access Token Here>';
var viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider: Cesium.createWorldTerrain() });
var tileset = new Cesium.Cesium3DTileset({ url: Cesium.IonResource.fromAssetId(96188) });
viewer.scene.primitives.add(tileset);
tileset.readyPromise.then(function(tileset) { var date = new Date(); date.setHours(10); viewer.clock.currentTime = Cesium.JulianDate.fromDate(date);
viewer.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(-0.118092, 51.509865, 1000), orientation: { heading: Cesium.Math.toRadians(0), pitch: Cesium.Math.toRadians(-45), roll: 0.0 } }); });</script></body></html>

通过上面案例我们发现,虽然ChatGPT还不完美,但是只要给出一定的引导它会不断修复脚本直至给出正确的答案。


ChatGPT写Python代码

工作中,ChatGPT的使用可以为我们省去一些基础性的工作,提高我们的工作效率。目前AI还没有发展到可以完全替代人类工作的地步,但在AI逐步渗透的环境下,合理的使用AI你会体验到"科技的生产力"!


- END -



从实景三维到数字孪生——全社会数字化升级需求
李德仁院士做序!行业重磅力作《实景三维应用与发展》正式出版
重建效率提升、空三改进,新增地面提取!ContextCapture 2023来了
CC、Pix4D、PhotoScan、大疆智图、重建大师、M3D、瞰景Smart3D用户手册.PDF下载
30款国内外实景三维建模软件!从免费开源到专业建模软件汇总
添"GIS自主创新"之翼,提供实景三维全链解决方案!中地数码助力实景三维 赋能数字中国建设

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存