首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DotSpatial中定义多边形交叉180子午线

在DotSpatial中定义多边形交叉180子午线
EN

Stack Overflow用户
提问于 2017-05-03 17:11:41
回答 1查看 215关注 0票数 2

我是DotSpatial的新手,我试图通过以下方式定义一个多边形交叉180子午线:

代码语言:javascript
复制
FeatureSet fs = new FeatureSet(FeatureType.Polygon);
Coordinate[] coord = new Coordinate[5];
coord[0] = new Coordinate(30, 48);
coord[1] = new Coordinate(120, 45);
coord[2] = new Coordinate(-170, 64);
coord[3] = new Coordinate(30, 70);
coord[4] = new Coordinate(30, 48);
Polygon pg = new Polygon(coord);
 pg.Normalize();
fs.Features.Add(pg);
fs.Projection = DotSpatial.Projections.KnownCoordinateSystems.Geographic.World.WGS1984;
fs.SaveAs(HttpContext.Current.Server.MapPath("~/shp/test2.shp"), true);

但是,当我检查输出形状文件时,多边形边会彼此相交。

如果我在Server中绘制相同的多边形

代码语言:javascript
复制
DECLARE @Poly geography =   
  geography::STPolyFromText('POLYGON((30 48, 120 45, -170 64, 30 70, 30 48))', 4326)  
SELECT @Poly 

我可以在中的“空间结果”中看到正确的多边形显示。

有人能帮我在DotSpatial中解决这个问题吗?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-07-24 01:51:41

实际上,这不是一个问题,它只是遵循给出的基于顺序的坐标。如果你改变订单,那就没问题了。

代码语言:javascript
复制
FeatureSet fs = new FeatureSet(FeatureType.Polygon);

Coordinate[] coord = new Coordinate[]
{
    new Coordinate(30, 48),               
    new Coordinate(-170, 64),
    new Coordinate(30, 70),
    new Coordinate(120, 45),
    new Coordinate(30, 48)
};

fs.AddFeature(new Polygon(new LinearRing(coord)));
fs.SaveAs(@"C:\Users\xxxx\Desktop\polygontest.shp", false);

以及输出;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43766231

复制
相关文章

相似问题

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