查看: 3601|回复: 16

如何osgEarth计算地表面积

[复制链接]

该用户从未签到

发表于 2015-5-27 16:23:07 | 显示全部楼层 |阅读模式
使用osgEarth::Annotation::FeatureNode在地面绘制任意多边形,然后可以调用osgEarth::Features::GeometryUtils::getGeometryArea计算面积,但是看起来计算出来的面积没有考虑高程的影响,仅仅只计算了平面面积。现在如果想计算多边形内的曲面面积(考虑高程的影响),有什么方法吗?先谢谢了!

该用户从未签到

 楼主| 发表于 2015-6-1 11:46:58 | 显示全部楼层
看来只有先计算出多边形内的曲面三角形,然后再计算面积了

该用户从未签到

发表于 2015-11-23 14:53:39 | 显示全部楼层
你好,我最近也在做关于求地表面积的,但是不知如何做,需要两步:
1.通过鼠标的点击几个点,画出一个区域
2.计算区域的表面积,是凹凸不平的
请提供一点思路, 谢谢

该用户从未签到

发表于 2015-12-2 09:02:31 | 显示全部楼层
可以参考osgEarth编辑器:
下载地址:http://www.sxsim.com/h-col-106.html

SXEarth 2.0_二三维一体化web2.jpg

该用户从未签到

 楼主| 发表于 2016-1-4 14:52:22 | 显示全部楼层
最后调用
osgEarth::Features::GeometryUtils::getGeometryArea(geometry); // 单位:万平方公里
好像是对的

该用户从未签到

发表于 2016-1-5 08:57:19 | 显示全部楼层
anlingbin 发表于 2016-1-4 14:52
最后调用
osgEarth::Features::GeometryUtils::getGeometryArea(geometry); // 单位:万平方公里
好像是 ...

不对吧,计算的投影面积。lz,你有做测试吗?

该用户从未签到

 楼主| 发表于 2016-1-6 11:51:35 | 显示全部楼层
应该对吧,我大概测了一下中国面积,差不多是900多万平方公里

该用户从未签到

发表于 2016-1-6 15:34:26 | 显示全部楼层
anlingbin 发表于 2016-1-6 11:51
应该对吧,我大概测了一下中国面积,差不多是900多万平方公里

楼主,那我在地球表面画一个没有考虑高程的四边形和考虑高程的四边形,计算得出的结果确是一样的。
感觉好像,并不受高程的影响?能加个QQ聊聊吗?1140724849

该用户从未签到

 楼主| 发表于 2016-1-7 15:39:57 | 显示全部楼层
的确不受高程的影响,还是分解成三角形一个个累加吧

该用户从未签到

发表于 2016-1-8 08:43:41 | 显示全部楼层
那你是怎么把一块区域分解成三角形的?我找了好久,也没有找到方法。osgEarth内部有这样的函数吗?

该用户从未签到

发表于 2016-1-12 10:50:17 | 显示全部楼层
anlingbin 发表于 2016-1-6 11:51
应该对吧,我大概测了一下中国面积,差不多是900多万平方公里

如果测出来是900w那就是空间面积啦~~地表面积肯定是大于这个的 我计算是用三角面片算的~~

该用户从未签到

发表于 2016-1-12 10:55:15 | 显示全部楼层
buynowdays 发表于 2016-1-12 10:50
如果测出来是900w那就是空间面积啦~~地表面积肯定是大于这个的 我计算是用三角面片算的~~

请问你是怎么获取三角形面片的?

该用户从未签到

发表于 2016-1-12 10:57:03 | 显示全部楼层
goodman 发表于 2016-1-12 10:55
请问你是怎么获取三角形面片的?

我不知道osgearth是否有提供这方面的功能 当时是自己写算法算的

该用户从未签到

发表于 2016-1-12 11:00:44 | 显示全部楼层
buynowdays 发表于 2016-1-12 10:57
我不知道osgearth是否有提供这方面的功能 当时是自己写算法算的

自己写的算法?大神呀。我查看了osgearth的源码,目前还没有找到。可以给我一份源码,参考下吗?谢谢啦。

该用户从未签到

发表于 2016-1-12 11:16:28 | 显示全部楼层
goodman 发表于 2016-1-12 11:00
自己写的算法?大神呀。我查看了osgearth的源码,目前还没有找到。可以给我一份源码,参考下吗?谢谢啦。

算法其实应该给开源下 不过还没经过验证 不知道对否~ 我给你提供个思路吧 就是网格法计算:把画出的区域先从经纬度转成米,然后用小网格进行划分(我是分成两个,分四个更精确不过得多采样一个点)区域,进行面积叠加。就是这么简单。。。。

该用户从未签到

发表于 2016-1-12 16:38:20 | 显示全部楼层
好的,谢谢。不过我后来想了想,平面面积是投影面积,那么空间空间面积肯定要大于投影面积。所有如果你的计算的面积大于900W那么,很有可能是对的。
  • TA的每日心情
    开心
    2023-10-26 21:41
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2016-8-27 18:11:36 | 显示全部楼层
    为什么我用osgEarth::Features::GeometryUtils::getGeometryArea计算出来的面积始终是0呢???????
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    OSG中国官方论坛-有您OSG在中国才更好

    网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

    联系我们

    • 工作时间:09:00--18:00
    • 反馈邮箱:1315785073@qq.com
    快速回复 返回顶部 返回列表