【问题标题】:plotGoogleMaps help: plotting latitude longitude valuesplotGoogleMaps 帮助:绘制纬度经度值
【发布时间】:2013-03-09 14:43:16
【问题描述】:

我正在尝试使用 plotGoogleMaps 绘制纬度和经度值

代码是:

streetCrime = read.csv("C:/Users/DAKSHA/Google Drive/BE Project/Daksha/Datasets/BaltimoreHomicide.csv")

coordinates(streetCrime) = ~Longitude + Latitude
proj4string(streetCrime) = CRS("+proj=longlat +datum=WGS84")
m<-plotGoogleMaps(streetCrime,filename='myMap1.jpg')

我收到此错误:

Error in plotGoogleMaps(streetCrime, filename = "myMap1.jpg") :
   no slot of name "data" for this object of class "SpatialPoints"

请帮忙!

我正在使用 plotGoogleMaps 1.3 版

【问题讨论】:

  • 请发布names(streetCrime)的输出
  • > names(streetCrime) [1] "Latitude" "Longitude" > streetCrime names(streetCrime ) [1] “身份证”
  • 是的,看起来就像我在回答中所怀疑的那样。那么 plotGoogleMaps(streetCrime) 对你有用吗?!
  • 使用 SpatialPointsDataFrame 后,names(streetCrime) 只返回 ID。当我尝试设置坐标时,我得到这个错误:“设置坐标不能在空间对象上完成,它们已经被设置了”
  • 你为什么要在已经设置了坐标的东西上设置坐标?!请仔细阅读我的回答!所有正确的步骤都在那里。请按照下列步骤操作: 1) 读入您的 streetCrime 数据。 2) 设置坐标和投影信息。 3) 使用下面的命令变成 SpatialPointsDataFrame。 4) 运行 plto 命令。为什么要再次设置坐标?

标签: r google-maps geolocation gis


【解决方案1】:

您的问题是您的.csv 仅包含LatitudeLongitude 的列,在这种情况下coordinates() 函数将返回SpatialPoints 对象而不是SpatialPointsDataFrame,这似乎是@ 所必需的987654327@。

您可以通过为数据帧创建一个虚拟变量来将其强制转换为 spdf。每个点的 ID 号似乎是个好主意。按此顺序尝试这些步骤(请注意,plotGoogleMaps 将结果图保存为html 而不是jpg):

streetCrime = read.csv("C:/Users/DAKSHA/Google Drive/BE Project/Daksha/Datasets/BaltimoreHomicide.csv")
coordinates(streetCrime) = ~ Longitude + Latitude
proj4string(streetCrime) = CRS("+proj=longlat +datum=WGS84")
streetCrime <- SpatialPointsDataFrame( streetCrime , data = data.frame( ID = row.names( streetCrime ) ) )
m <- plotGoogleMaps(streetCrime , filename='myMap1.html')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 2015-06-18
    • 2012-04-19
    相关资源
    最近更新 更多