SQL Server:如何从已导入Shapefile的geometry列计算STArea?
计算数据库中geometry列的STArea
嘿,这事儿其实超容易,你已经掌握了手动构造几何对象计算面积的方法,现在只需要把这个逻辑直接套到数据库的geom列上就行啦!
基础用法
假设你的Shapefile数据已经导入到名为your_table的表中,geom是存储几何数据的列,直接对该列调用STArea()方法就能计算每一行的面积:
SELECT geom.STArea() AS polygon_area -- 给计算结果起个直观的别名 FROM your_table;
带过滤条件的用法
如果只需要计算特定行的面积,比如筛选某个区域的数据,加上WHERE条件就行:
SELECT id, geom.STArea() AS polygon_area, name -- 可以同时查询其他业务字段 FROM your_table WHERE name = '目标区域';
额外说明
- 不管你的几何数据是单多边形、带内环的多边形(就像你示例里的那种)还是多多边形,
STArea()都会自动计算所有部分的总面积,逻辑和你手动构造对象时完全一致。 - 记得确认
geom列的**空间参考ID(SRID)**是正确的,这决定了面积的单位(比如米²、英尺²等),如果SRID不对,计算出来的面积数值可能不符合预期。
内容的提问来源于stack exchange,提问作者Peter PitLock
相关产品推荐
相关产品推荐

