从坐标计算矩形面积
Calculating the rectangle area from coordinates
如果我有两个点(51.9925734, 5.65038093), (51.99226769, 5.64991222)
我要获取矩形地球面积
我从其他资源试过这个方法:
from area import area
obj_field = {'type':'Polygon','coordinates':[[[51.9925734,5.65038093],
[51.9925734,5.64991222],
[51.99226769,5.64991222],
[51.99226769,5.65038093]]]}
field_area_2 = area(obj_field)
print(f'The total field area is: {field_area_2} square meters')
The total field area is: 1767.018812772391 square meters
但我不确定是否正确。
对于像您的示例这样的小区域,最简单的方法是将 lat/lon 坐标转换为 UTM。然后您可以使用基础数学,例如计算矩形的面积,如以下代码片段所示:
import utm
a_geo = 51.9925734, 5.65038093
b_geo = 51.99226769, 5.64991222
# Convert lat, lon to utm
a_easting, a_northing, zone, _ = utm.from_latlon(*a_geo)
b_easting, b_northing, _, _ = utm.from_latlon(*b_geo, force_zone_number=zone)
area = abs((a_easting - b_easting) * (a_northing - b_northing))
如果我有两个点(51.9925734, 5.65038093), (51.99226769, 5.64991222)
我要获取矩形地球面积
我从其他资源试过这个方法:
from area import area
obj_field = {'type':'Polygon','coordinates':[[[51.9925734,5.65038093],
[51.9925734,5.64991222],
[51.99226769,5.64991222],
[51.99226769,5.65038093]]]}
field_area_2 = area(obj_field)
print(f'The total field area is: {field_area_2} square meters')
The total field area is: 1767.018812772391 square meters
但我不确定是否正确。
对于像您的示例这样的小区域,最简单的方法是将 lat/lon 坐标转换为 UTM。然后您可以使用基础数学,例如计算矩形的面积,如以下代码片段所示:
import utm
a_geo = 51.9925734, 5.65038093
b_geo = 51.99226769, 5.64991222
# Convert lat, lon to utm
a_easting, a_northing, zone, _ = utm.from_latlon(*a_geo)
b_easting, b_northing, _, _ = utm.from_latlon(*b_geo, force_zone_number=zone)
area = abs((a_easting - b_easting) * (a_northing - b_northing))