不使用gpclib工具将空间多边形转换为常规数据框

9
我在商业应用中使用R处理空间数据,并想使用ggplot2进行数据可视化。如果您在https://github.com/hadley/ggplot2/wiki/plotting-polygon-shapefiles上运行Hadley的示例,则会发现为了运行fortify命令,您需要使用gpclibPermit()启用gpclib工具。
我正在寻找一种高效的方法(不涉及手动攻击S4对象),以执行与此处fortify相同的操作,即将空间多边形对象转换为常规数据帧,其中行条目包含纬度和经度坐标以及多边形ID。
有其他人解决了这个问题吗?

我可能没有理解你的问题,但我经常使用 fortify(...),从未使用过 gpclibPermot(...) - jlhoward
你有看过我发布的例子吗?当我运行它时,会出现错误 Error: isTRUE(gpclibPermitStatus()) is not TRUE。可能是因为 fortify 对某些空间对象有效,而对其他对象无效... - aaron
1个回答

16

您还需要安装 rgeos 包。当加载了 maptools 但未安装 rgeos 时,会显示以下消息:

> require("maptools")
Loading required package: maptools
Checking rgeos availability: FALSE
    Note: when rgeos is not available, polygon geometry
    computations in maptools depend on gpclib,
    which has a restricted licence. It is disabled by default;
    to enable gpclib, type gpclibPermit()

当使用fortify函数并传入一个region参数时(就像你链接的那个例子),需要进行一些“多边形几何计算”。如果rgeos不可用且gpclib没有被允许,它将会失败。


当我第一次尝试使用maptools时,我看到了相同的消息。我理解正确吗,我需要(1)rgeos或(2)启用gpclib?后者是否带有非商业许可证之类的东西?在rgeos和gpclib之间,哪个更好(更快,结果更好等)? - stackoverflowuser2010
@stackoverflowuser2010 正确;你需要其中一个,而且由于 gpclib 具有不允许商业使用的许可证,因此需要额外的安全步骤来要求显式函数调用以启用它。 - Brian Diggs
@BrianDiggs:它们在结果或性能方面有什么区别吗? - stackoverflowuser2010
@stackoverflowuser2010 我对结果或性能方面没有任何信息。 - Brian Diggs
同样的问题在2016年也出现过..如果没有使用商业软件,那么这两个软件包中哪一个得到了更好的支持/更常用? - Antonello

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接