掩膜的设计主要是参考了https://github.com/hofk/THREEi.js这个代码,我将代码改成es module的形式了。

其他在几何体添加孔洞的方法:

https://github.com/manthrax/THREE-CSGMesh 用于物体求交、减、加。

https://threejs.org/examples/#webgl_geometry_convex 和这个示例。

思路:通过境界经纬度构造ConvexGeometry几何体,然后再使用csg对球体和ConvexGeometry求减。

cesium也有相应的构造掩膜的方法,但我不知道他们怎么做的,哎!汗颜~~~!

如果有其他优雅的方式欢迎各位大佬讨论交流,或者提交pr。

境界服务的数据来自阿里的datav的中国新疆境界,如果境界有误请及时联系我进行修改删除,谢谢!