ggplot2和地图:geom_point和annotation_raster位置不匹配

2023-12-07

今天是个好日子,

使用下面的代码我可以使用以下命令成功地从 Google 检索栅格ggmap,绘制一个annotation_raster using ggplot2,并将站点位置绘制为栅格图层顶部的红点。在绘图上,位置不太匹配(它们应该沿着海岸线)。我知道我的网站的位置是正确的,因为当我将数据作为 KML 文件上传到 Google 地球时,它们会绘制出它们应该在的位置。

建议将不胜感激。

该代码将按原样运行...请注意,您需要一个开发版本ggplot2,可在 github 上找到。安装:

# install.packages("devtools")
library(devtools)
install_github("ggplot2")

对于代码:

library(ggplot2)
library(ggmap)
library(grDevices)
theme_set(theme_bw())

# Some coordinates of points to plot:
siteLat = c(-22.94414, -22.67119, -29.25241, -30.31181, -32.80670, -33.01054, -32.75833, -        33.36068, -31.81708, -32.09185, -32.31667, -34.13667, -34.05016, -33.91847, -34.13525, -34.12811, -34.10399, -34.16342, -34.41459, -34.58786, -34.83353, -34.37150, -34.40278, -34.17091, -34.08565, -34.04896, -33.98066, -34.02448, -34.20667, -34.05889, -33.97362, -33.99125, -33.28611, -33.02407, -33.01798, -32.99316, -31.09704, -31.05000, -30.91622, -30.70735, -30.28722, -30.27389, -29.86476, -29.54501, -29.49660, -29.28056, -28.80467, -27.42472)
siteLon = c(14.50175, 14.52134, 16.86710, 17.26951, 17.88522, 17.95063, 18.02778, 18.15731, 18.23065, 18.30262, 18.32222, 18.32674, 18.34971, 18.38217, 18.43592, 18.45077, 18.48364, 18.85908, 19.25493, 19.33971, 20.00439, 21.43518, 21.73972, 22.12749, 23.05532, 23.37925, 23.64567, 23.89933, 24.77944, 25.58889, 25.64724, 25.67788, 27.48889, 27.91626, 27.92182, 27.95036, 30.18395, 30.21666, 30.32982, 30.48474, 30.76026, 30.83556, 31.04479, 31.21662, 31.24665, 31.44403, 32.07567, 32.73333)
siteName = c(seq(1:length(siteLon)))
sites <- as.data.frame(cbind(siteLat, siteLon, siteName))

# specify raster's approximate coordinates:
lats = c(-35, -20)
lons = c(10, 35)

SAMap <- GetMap.bbox(lons, lats, maptype = "satellite")

# extract "real" coords of raster:
lonr <- c(SAMap$BBOX$ll[2], SAMap$BBOX$ur[2])
latr <- c(SAMap$BBOX$ll[1], SAMap$BBOX$ur[1])

# extract raster fill data:
h_raster <- as.raster(SAMap$myTile)

# plot using annotation_raster:
g <- ggplot(sites, aes(siteLon, siteLat))
g + annotation_raster(h_raster, lonr[1], lonr[2], latr[1], latr[2]) +
  geom_point(aes(x = siteLon, y = siteLat), colour = "red", data = sites) +
  scale_x_continuous(limits = lonr) +
  scale_y_continuous(limits = latr)

(抱歉,我无法发布图片,因为我是新来的)。


好的,多亏了 David Kahle,问题已经解决了。参见这篇文章:

AJ

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ggplot2和地图:geom_point和annotation_raster位置不匹配 的相关文章

  • 用于清除工作空间和转储存储的 R 全局函数

    我希望创建一个全局函数来清除我的工作区并转储我的内存 我将我的函数称为 cleaner 并希望它执行以下代码 remove list ls gc 我尝试在全局环境中创建该函数 但是当我运行它时 控制台仅打印该函数的文本 在我要获取的函数文件
  • 多个 MapFragment 的性能(Android Map API v2)

    我搜索了新的文档谷歌 Android 地图 API v2 https developers google com maps documentation android 但没有找到任何相关信息 在 v2 之前 我们 官方 无法正确显示每个应用
  • 分离并重新附加“tools:rstudio”

    又名玩火 以下不起作用 rstd obj lt as environment tools rstudio detach tools rstudio attach rstd obj name tools rstudio 好吧 它似乎有效 但随
  • 将 JSON URL 转换为 R 数据帧

    我在将 JSON 文件 从 API 转换为 R 中的数据帧时遇到问题 例如 URL 我尝试了 S O 的一些不同建议 包括将json数据转换为R中的数据框 https stackoverflow com questions 28683769
  • 从后台恢复后,Flutter GoogleMap 为空白

    我遇到以下问题 我的 Flutter 应用程序使用 GoogleMap 地图最初加载得很好 但是 如果我将应用程序置于后台并稍后恢复 地图将保持空白 Google 徽标仍然显示 就像未指定 API 密钥时发生的情况一样 我的多边形叠加层也不
  • 如何更新条件公式?

    让我直接进入示例 考虑以下等式 frml lt formula y a b x z 使用这样的公式规范 例如和AER ivreg 我想更新这个公式 使其显示为 frml2 lt y a b c x z w 但是 我不确定如何更新条件标志之前
  • 查找数据帧列表中同一列中的所有重复值并将其转换为 NULL

    我有一个清单BELGIAN COAST list包含数百个数据帧 df1 df2 15 列 X 1000 行 每个数据帧的最后一列称为Chemicals并包含一些字符 例如Sulfate or Ammonia 但是这一列有很多行Chemic
  • 使用 dplyr:group_by 将数据帧分成多个子集?

    有没有办法根据 group by 组使用 dplyr 将一个数据帧拆分为数据帧的子集 mtcars gt group by cyl gear gt codes 非常感谢 好吧 并不是你真的想要 但你可以这样做tidyr 即nearly一样的
  • 将其从 Google Maps API v2 转换为 v3

    这适用于 Google Maps API v2 现在如何将其转换为 API v3 谢谢 Radar 1 Overlay Tiles var radar layer new GTileLayer new GCopyrightCollectio
  • 限制数据框中所有单元格的字符串长度?

    您好 有没有一种方法可以限制 data frame 中所有列的字符串文本大小 而不必循环遍历每一列并一次使用 str trunc 之类的东西 例如下面的数据框 我可以将所有文本大小限制为仅 5 个字符 而不必一次只执行一列吗 如果有 50
  • 在 R 中绘制对数正态概率密度

    我正在尝试在 R 中生成对数正态概率密度图 其中包含 3 个不同的均值对数和标准差对数 我尝试了以下方法 但我的图表太丑了 看起来一点也不好看 x lt seq 0 10 length 100 a lt dlnorm x meanlog 0
  • 当每个记录都是一个段落并且某些记录有 4 个字段而其他记录有 6 个字段时,如何将文本文件读入 R

    如何读取文本文件 其中每条记录都是一个段落 每个换行符表示单独的字段 复杂的是 有些记录有 4 行 有些记录有 6 行 当字段数量的差异为 1 时 DWin 解决了我的问题 但当字段数量差异为 2 时 一切都崩溃了 你可以有一个在这里看看他
  • R 编程:如何计算数据框中两个单元格之间的差异并将它们保存在新列中

    尝试学习 R 并陷入自相关示例中 我想将 x 的差异与 y 的差异进行回归 我在数据框中有 x 和 y 并且希望将 x2 x1 的差值保存在新列 例如 dx 中 我不知道该怎么做 我拥有的 data1 x y 5 3 8 9 3 1 1 5
  • 仅保留百分比的尾随零

    给出以下示例 library pander tableAbs lt Titanic 1 1 tablePct lt round prop table tableAbs 100 2 table lt cbind tableAbs tableP
  • 如何在Android中读取谷歌地图的kmz文件

    我有 KMZ 文件 我想解析该 KMZ 文件 以便我可以读取我尝试使用的该文件的数据KmlLayer但没有从中得到任何帮助这是我的代码 InputStream inputStream new FileInputStream path Kml
  • 如何将此“for”循环转换为向量解

    这个问题与 将嵌入其他文本的长州名称转换为两个字母的州缩写 https stackoverflow com questions 25582518 convert long state names embedded with other te
  • 为什么这些数字不相等?

    下面的代码显然是错误的 有什么问题 i lt 0 1 i lt i 0 05 i 1 0 15 if i 0 15 cat i equals 0 15 else cat i does not equal 0 15 i does not eq
  • 表单提交时出现 rvest 错误

    我想从以下网页中抓取数据 https swgoh gg u zozo collection 180 emperor palpatine https swgoh gg u zozo collection 180 emperor palpati
  • R - 通过覆盖和递归合并列表

    假设我有两个带有名字的列表 a list a 1 b 2 c list d 1 e 2 d list a 1 b 2 b list a 2 c list e 1 f 2 d 3 e 2 我想递归地合并这些列表 如果第二个参数包含冲突的值 则
  • 具有 dplyr、tidyverse 和 broom 的相关矩阵 - P 值矩阵

    全部 我想使用以下方法从相关矩阵中获取 p 值dplyr 和 或扫帚包 并同时测试多个变量 我知道其他方法 但 dplyr 对我来说似乎更简单 更直观 此外 dplyr 需要关联每个变量以获得特定的 p 值 这使得该过程更容易 更快 我检查

随机推荐

  • Haskell - 在模式匹配中使用常量

    假设我有以下代码 文本在 lt gt 是简写 实际上不是代码的一部分 data A
  • matlab导入多张图像

    我有一组连续命名的 100 张 jpg 图像 我想将它们相加以获得单个图像 我已经看到答案了here 但它不跟我一起运行 发生了什么事 这是代码 im imread C Documents and Settings 1026175117 1
  • 如何从文件中读取位?

    我知道如何读取字节 x read number of bytes 但是如何读取 Python 中的位呢 我必须从二进制文件中仅读取 5 位 而不是 8 位 1 字节 有什么想法或方法吗 Python 一次只能读取一个字节 您需要读取一个完整
  • 无需按 Control 键即可选择多行

    我有一个网格视图 可以通过按控制键选择多行 是否可以在不按控制键的情况下实现相同的目的 由于 net 默认操作也会更新slectedrows你的datagridview你需要有一个数组来保留旧的选择 DataGridViewRow old
  • Fragment 和 FragmentActivity 有什么区别?

    我的问题是除了明显的继承差异之外 两者之间的主要区别是什么Fragment and FragmentActivity 每个类别最适合什么场景 我试图了解为什么这两个类别存在 A Fragment是一个的一部分Activity 其中有 它自己
  • 按图像路径在数据库中的 RDLC 报告上显示图像

    图像路径存储在SQL Server 2008数据库中 在我的 RDLC 报告上 我有一个图像字段 我已设置此字段以从数据库中的数据库列获取图像路径 我还在报告查看器中将 EnableExternalImages 属性设置为 true 我不知
  • UIScrollView 滚动时取消 UIPageViewController 手势

    我有一个UIPageViewController它负责翻我的 书 的页面 然而 每一本书的页面都是一个ViewController with a UIScrollView as a subview The UIScrollView只能垂直滚
  • 使用 PHP 克隆 + 重命名文件

    如何使用 php ini 克隆并重命名文件 我需要采取 拇指 123 jpg Copy it 将其重命名为thumb 456 jpg 我可以很好地进行重命名rename 这是我没有得到的复制 copy thumb 123 jpg thumb
  • JQuery Slider,如何更改“步长”大小

    是否可以使用 JQuery 滑块 范围滑块 双滑块 来获得非线性 不一致的 步长 大小 值 我想要水平滑块看起来像 0 500 750 1000 1250 1500 2000 2500 75000 100000 例如 我想要以下 JQuer
  • Flink 应用程序的检查点大小持续增长

    我有这样的管道 env addSource kafkaConsumer name source keyBy value gt value f0 window EventTimeSessionWindows withGap Time seco
  • 如何将 git 存储库的副本(存档,而不是克隆)连接到其远程?

    我想知道如何将 git 存储库的副本 存档 而不是克隆 与其远程存储库连接并同步 背景 我有一个本地和远程存储库 我使用 git archive 压缩本地存储库 然后将其复制到服务器 git archive format tar HEAD
  • 使用 python 请求下载 *.gz 压缩文件会损坏它

    我使用此代码 它只是一部分 来下载 gz 存档 with requests session as s s post login to site URL payload load s get scene stream True with op
  • Rails 如何将参数从控制器传递到模型内的 after_save

    我有一个 Rfq 控制器 我正在创建新的或更新现有的 Rfq 当我创建或更新保存对象时 我想要的是因为我有引号参数的数量 所以我想使用 params quotes 中的引号更新 line items 表 保存询价后在 quote price
  • LoadViewState 未在我的用户控件上触发

    我有一个嵌套在中继器中的用户控件 在我的用户控件中 我有另一个中继器 其中有一个面板 我试图重写用户控件的 LoadViewState 事件并将控件动态添加到面板 我想在 LoadViewState 中执行此操作 以便在加载视图状态之前添加
  • Wso2IS 跳过authenticationendpoint/login.do

    使用 java 客户端 我生成了 SAMLRequest 字符串有没有办法发布整个数据 并跳过 IdentityServer 登录页面 我传递的数据必须满足SSO的身份验证 然后生成Oauth2 Token 您可以使用请求路径认证并在同一请
  • Webhook 进程在另一个 goroutine 上运行

    我想在另一个 goroutine 中运行一些缓慢的例程 这样做安全吗 func someHandler w http ResponseWriter r http Request go someReallySlowFunction sendi
  • 如何用代码更改android中的锁屏壁纸? [复制]

    这个问题在这里已经有答案了 我可以更改主屏幕壁纸 但无法更改锁屏壁纸 DisplayMetrics metrics new DisplayMetrics getWindowManager getDefaultDisplay getMetri
  • 如何删除 Coding Fun 消息提示中的边框

    我按照这个示例在 Coding4Fun MessagePrompt 中显示我的用户控件 http windowsphonegeek com articles Creating a Windows Phone 7 Trial Applicat
  • 使用 pygame 生成并绘制正弦波

    我正在尝试生成并绘制正弦波 我正在使用我在网上找到的这个公式y Amp sin 2 PI frequency time shift import pygame import math import time window pygame di
  • ggplot2和地图:geom_point和annotation_raster位置不匹配

    今天是个好日子 使用下面的代码我可以使用以下命令成功地从 Google 检索栅格ggmap 绘制一个annotation raster using ggplot2 并将站点位置绘制为栅格图层顶部的红点 在绘图上 位置不太匹配 它们应该沿着海