首页 行业

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

发布时间:2023-04-07 12:26:36来源:商业新知网

最近一段时间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 AP I 密钥。

问题:

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

试验 4:

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

结果:

第四次试验结果

问题:

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

试验 5:

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

结果:

第五次试验结果

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

最终成果:

Cesium 3D Tileset Example

<script src="https://cesium.com/downloads/cesiumjs/releases/1.103/Build/Cesium/Cesium.js"></script>

<script>

Cesium.Ion.defaultAccessToken = "";

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>

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

ChatGPT写Python代码

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

Copyright   2015-2022 南方城建网 版权所有  备案号:粤ICP备18023326号-21   联系邮箱:855 729 8@qq.com