小编mar*_*rac的帖子

实体框架DbGeography无法正确计算Area?

如果我将WKT格式的多边形定义为此(经度/纬度):

string wkt = "POLYGON ((15.981800258159638 45.810693408924287, 15.983624160289764 45.810783148865241, 15.983688533306122 45.809844611497965, 15.981843173503876 45.8096838246252, 15.981800258159638 45.810693408924287))"
Run Code Online (Sandbox Code Playgroud)

然后创建DbGeography对象,如下所示:

var polygon = System.Data.Entity.Spatial.DbGeography.FromText(wkt);
Run Code Online (Sandbox Code Playgroud)

Area属性的值是510065621695499.69

如果我像这样使用Postgres和PostGis做同样的事情:

select ST_Area(ST_GeographyFromText(wkt))
Run Code Online (Sandbox Code Playgroud)

结果是15496.7483872527,它应该是正确的值。

如果我创建通过反转坐标(纬度/经度)的多边形,都DbGeographyST_Area返回相同的值(21247.6269483712)

谁能解释这是怎么回事?

PS:多边形位于克罗地亚的萨格勒布。

c# gis entity-framework postgis

3
推荐指数
1
解决办法
808
查看次数

标签 统计

c# ×1

entity-framework ×1

gis ×1

postgis ×1