首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JTS:如何将多边形转换为MultiLineString

JTS:如何将多边形转换为MultiLineString
EN

Stack Overflow用户
提问于 2015-09-27 14:47:30
回答 1查看 2.7K关注 0票数 3

我有多边形形状,我想把它转换成MultiLineString。注意,通常方向是不同的:从点,和弦,线等使用GeometryFactory构建多边形。我开始考虑GeometryTransformer,但是很难理解那里的文档.所以我有这个:

代码语言:javascript
复制
import com.vividsolutions.jts.geom.*;
...
GeometryFactory gFactory = new GeometryFactory();
GeometryTransformer gTransform = new GeometryTransformer();
Polygon polygon = gFactory.createPolygon(someLinearRing, null);
MultiLineString mlString = polygon.TODO?

如何在TODO中继续

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-28 07:58:51

方法Polygon.getBoundary()计算多边形的边界。如果多边形没有孔(也只有一个边界),则返回LinearRing类型的对象。如果多边形有洞(也有多个边界),则返回MultiLineString类型的对象。

使用methode Polygon.getNumInteriorRing()检查多边形是否有洞,而不是构建一个多行字符串是必要的:

代码语言:javascript
复制
GeometryFactory gFactory = new GeometryFactory();
if (polygon.getNumInteriorRing() == 0){
  // polygon has not holes, so extract the exterior ring
  // and build a multilinestring
  return gFactory.createMultiLineString(polygon.getExteriorRing());
}

else{
  // Polygon has holes, also several boundaries. 
  // Simply run getBoundary(), it will return a multilinestring
  return polygon.getBoundary();
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32809145

复制
相关文章

相似问题

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