You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言ggmap包get_stamenmap函数时curl报错求助

解决ggmap中get_stamenmap无法解析tile.stamen.com的问题

问题详情

调用ggmap的get_stamenmap函数时触发DNS解析错误:

error in curl::curl_fetch_memory(url, handle = handle). Could not resolve host: tile.stamen.com

执行代码:

mapa_aysen <- get_stamenmap(bbox = bbox_aysen,maptype = "toner-background", zoom=8)

已排查过:网络连接正常、URL和地图类型无误、curl包已更新、代理配置正确,但问题仍存在。

可行解决思路

  • 切换Stamen瓦片的子域名
    默认的tile.stamen.com可能在部分地区解析异常,尝试切换到a/b/c子域名,手动指定url参数:

    mapa_aysen <- get_stamenmap(bbox = bbox_aysen, maptype = "toner-background", zoom=8,
                                url = "http://a.tile.stamen.com/{maptype}/{z}/{x}/{y}.png")
    

    可以轮流试a、b、c三个子域名,总有一个能正常解析。

  • 更换本地DNS服务器
    本地DNS无法解析域名是常见原因,把系统DNS改成公共DNS(比如Cloudflare的1.1.1.1或谷歌的8.8.8.8),重启R后再执行代码。

  • 用curl单独测试瓦片访问
    先排除R包层面的问题,直接用curl测试具体瓦片地址:

    library(curl)
    # 替换成对应你需求的瓦片地址,这里用一个示例地址
    test_url <- "http://tile.stamen.com/toner-background/8/100/100.png"
    resp <- curl_fetch_memory(test_url)
    print(resp$status_code)
    

    如果返回200,说明网络没问题,再检查ggmap的参数;如果还是报错,就得排查系统防火墙、网络路由这类底层问题。

  • 换用其他包获取Stamen地图
    如果ggmap的问题一直无法解决,试试maptiles包,它也支持Stamen地图,语法类似:

    library(maptiles)
    mapa_aysen <- get_tiles(bbox = bbox_aysen, provider = "Stamen.TonerBackground", zoom = 8)
    

内容的提问来源于stack exchange,提问作者Pablo Flores Oñat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 21:15:13