如何判断一个区域内是否有模型?

Cesium源码 · CreateFree · 于 1年前 发布 · 2024 次阅读

如何判断一个区域内是否有模型,我最开始的思路是将所有的模型投影到一个平面上,然后再用面与面相交法则进行判断,但是实现起来发现模型的面我没法获取,最多能够获取到模型的包围盒;但是模型的包围盒不一定就是模型刚好和模型重合,有些模型的包围盒是比较大的,有可能模型只是在包围盒的一个小角落。所以还是很头痛,不知社区的网友们有其他思路或类似解决方案没有?

本文由 CreateFree 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。

共收到 3 条回复

看到这个问题我想顺带提个问= =

如何判断一个区域里有通过geojson加载出来的实体?
本来想通过position方法去获取坐标然后判断,但是这些实体的position是undefined。
那么我应该如何去获取这些通过加载geojson拿到的dataSource循环出来的实体的坐标呢?

CreateFree#21年前 0 个赞

@undefined233 #1楼 你看看viewer.entities里面的enity对象是否有position坐标,一般来说viewer.entities对象里应当会有这些东西,希望对你有用哈。

magicyang#31年前 1 个赞

1.在dataSource里虽然position没有值,但可以在polygon中找到一连串笛卡尔坐标,求所有这些坐标的平均值,得到一个position

2.判断整个position在不在你的区域里即可

3.进一步,可以建立dataSource中单个实体id和计算中心坐标position的映射,实现选中区域内实体的属性改变。

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics