在计算多边形的面积时,使用shapely/pyproj的结果与谷歌地球引擎或 geojson.io 相比截然不同。 我认为这与投影有关,在研究它时,我发现了例如(如何使用 Python 获取 GeoJSON 多边形的面积(之类的示例,这些示例建议使用桤木等面积投影,但这些似乎不是 PyProj 版本 2.1.3 中的选项。 我也想知道谷歌地球引擎和 geojson.io 是否有一种自动方法来选择给定多边形区域的区域适当区域投影,但我不确定他们会如何选择这些投影。
例如:
coords = [(-97.59238135821987, 43.47456565304017),
(-97.59244690469288, 43.47962399877412),
(-97.59191951546768, 43.47962728271748),
(-97.59185396090983, 43.47456565304017),
(-97.59238135821987, 43.47456565304017)]
projection = partial(pyproj.transform, pyproj.Proj(init='epsg:4326'), pyproj.Proj(init='epsg:3857'))
shapely.ops.transform(projection, shapely.geometry.Polygon(sample_coords)).area
返回面积为 45573.993884405005
m^2。
谷歌地球引擎返回23944.14737277293
,Geojson.io 返回23997.77
我发现了这个问题,并用 shapely https://github.com/Toblerity/Shapely/issues/726 提出了相应的 github 问题
简而言之,shapely正在使用一种不同的方法,其来源尚不清楚,而其他人使用的是JPL论文中描述的方法。