繁体   English   中英

ggmap雄蕊水彩png错误

[英]ggmap stamen watercolor png error

我非常感谢有关ggmap和stamen水彩问题的一些帮助/想法。

每次我尝试创建一个雄蕊水彩地图时,我都会收到相同的错误消息:

"Error in readPNG(destfile) : file is not in PNG format"

以下是返回此错误的简单代码的一些示例:

qmap("new-york", zoom=13, source="stamen", maptype="watercolor")

要么

get_map(location='Auckland', source="stamen", maptype="watercolor", zoom=13)

我在Windows 8下使用r版本:[默认] [64位] C:\\ Program Files \\ R \\ R-3.0.2

我意识到有几个人发布了同样的问题 - 但只有少数 - 我没有看到任何解释/建议。 我很难过和沮丧,我真的希望有比我更多经验的人遇到(并解决)这个问题。 提前致谢或您可以提供任何帮助

作为临时修复,您可以自己进行更改。 类型

get_stamenmap 

在R终端。 这将转储加载地图的代码。 您需要编辑此代码并替换命名空间中的函数。

将代码复制到文本编辑器,并通过更改第一行再次创建函数:

get_stamenmap <- function (bbox = 

然后你需要切换到加载jpegs。 在png上搜索并将文本更改为jpg。 我有两个实例,看起来像你在文件扩展名中需要的文本,他们在我的第64和71行。

64: urls <- paste(urls, ".jpg", sep = "")
71: destfile <- paste(filename, "jpg", sep = ".")

在第75行,有函数readPNG,您需要将其更改为readJPEG。

tile <- readJPEG(destfile)

您还需要确保加载jpeg包,即库(jpeg),因为ggmap没有意识到现在需要它。 我还需要库(plyr),但我没弄清楚为什么 - 我这样做是因为我收到了一个关于ldply()的错误消息,我在该包中找到了它。

现在将这个“全新”功能粘贴回终端。 之后,您需要覆盖包中嵌入的功能,这与您刚粘贴到终端的本地副本不同,因此您需要输入以下内容:

assignInNamespace("get_stamenmap",get_stamenmap,ns="ggmap")

现在你应该准备再次使用qmap了。 这个过程对我有用,并且比使用相同更改重新编译包或下载具有这些修复和编译的最新源更简单。

我有同样的问题。 请注意,如果你跑

get_map(location='Auckland', source="stamen", maptype="watercolor", zoom=13)

您将获得您尝试在R中加载的图块的URL。当我访问其中一个URL时,它会重定向到.jpg,而不是.png。 因此错误是准确的 - 所服务的磁贴不是PNG格式 - 它们是JPG。

看起来这是由Stamen的API更改引入的ggmap中的错误。 看来版本2.4将解决这个问题; 请参阅GitHub提交: https//github.com/dkahle/ggmap/commit/c7c48947360351f2e86ba13d0457aa3894b51d46

在库中发布2.4之前的另一种方法是加载存储库中可用的函数并替换ggmap包中已存在的函数(如Michael所述)。 我刚刚加载了get_stamenmap.Rfiledrawer.Rurl_lookup()所需的内容, 与水彩地图一样好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM