2016-12-30 66 views
3

嗨我需要R的世界地图,并在我的Windows 10机器R版本2.15.2(2012-10-26)使用几行代码。 rgeos版本:0.3-4,(SVN修订版本438) GEOS运行时版本:3.4.2-CAPI-1.8.2 r3921 但是,在我们最近安装R(版本3.3)的unix服务器上,相同的代码不运行。 2),rgeos版本:0.3-21,(SVN修订540),运行时GEOS版本:3.4.2-CAPI-1.8.2 r3921使用rgeos库来合并国家多边形

执行命令gUnionCascaded(SPDF)给出UNIX机器上误差一个diff版本的rgeos包 TopologyFunc中的错误(groupID(spgeom [ids [[i]]],id [ids [[i]]]),名称(ids)[i],:IllegalArgumentException:LinearRing点不构成封闭线串

#sample code: 
library(rgeos) 
library(rworldmap) 
sPDF <- getMap() 
poly_globe <- gUnionCascaded(sPDF) 
plot(poly_globe) 
+0

不知道为什么发生这种情况,但它也不能在我的Windows机器继续工作时,运行64位R-3.3 .2并使用** rgeos **版本0.3.21。 –

+0

你能推荐任何其他方法吗? – Munish

+0

可以确认它是在macOS Sierra R 3.3.2,rgeos 0.3-20上被破坏的。我也可以用'gSimplify()'和'gBuffer()'来获得它。 – hrbrmstr

回答

4

最终,它看起来像跟踪由rworldmap提供的数据集的问题。这个问题似乎可以通过从cleangeo包快速应用clgeo_Clean()来解决。

试试这个一看就知道是这样的话:

library(rgeos) 
library(rworldmap) 
library(cleangeo) 
sPDF <- getMap() 
sPDF <- clgeo_Clean(sPDF) 
poly_globe <- gUnionCascaded(sPDF) 
plot(poly_globe) 

enter image description here

+0

它服务的目的,谢谢:) – Munish

相关问题