首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用RGeo和Geojson计算面积

用RGeo和Geojson计算面积
EN

Stack Overflow用户
提问于 2021-05-11 04:23:18
回答 1查看 73关注 0票数 0

我在geojson中定义了一个多多边形。我在试着计算它的面积。

当我遍历表面上的代码路径时,我得到了非常混乱的结果。我怀疑这是因为我错误地使用了某些元素。

代码语言:javascript
复制
boundaries = {...valid geojson...}
field_feature_collection = RGeo::GeoJSON.decode(boundaries, geo_factory: RGeo::Geographic.simple_mercator_factory)
first_feature = field_feature_collection[0]
first_feature.geometry.area
# => 1034773.6727743163 

我知道我的特色建筑面积约为602982平方米。我想不出如何将其与上面的结果相协调。

我怀疑我遗漏了一些明显的预测。

有谁知道出了什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-11 22:38:57

这很可能是因为在GeoJSON解码器中使用simple_mercator_factory作为geo_factorysimple_mercator_factory从经度/纬度坐标系解析几何图形,但执行所有计算(长度、面积等)。使用几何图形的墨卡托投影(EPSG:3857)。

墨卡托投影距离赤道越远,变形越大,这就是为什么你得到的面积大约是你预期的两倍。

根据您的项目范围,使用不同的投影可能更合适,特别是如果面积是您的关键指标。如果您选择不同的投影,rgeo-proj4 gem刚刚更新为与较新版本的PROJ一起工作,因此您可以在您的应用程序中创建适当的转换。

另一种选择是使用RGeo::Geographic.spherical_factory,它使用地球的球面近似,将提供比墨卡托投影更逼真的区域,但它比使用GEOS支持的笛卡尔工厂(这是simple_mercator_factory使用的)要慢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67477231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档