4

3 つの SpatialPointDataFrame を視覚化するベースマップをプロットに追加したいと考えています。私はすでに maptools と RgoogleMaps パッケージを試しましたが、どちらもうまくいきません。
私の問題: SpatialPointDataFrames が GoogleMaps Background マップに描画されません。

最小限の例:

次のサンプル コンテンツを含む city.csv:

FID,city,POINT_X,POINT_Y
0,New York,-73.996786,40.720813
1,Newark,-74.172237, 40.732196

R コード:

# Load packages
library(RgoogleMaps)
library(sp)

# load .csv file 
city= read.csv("city.csv", header = TRUE)

# convert to SpatialPointDataFrame
coordinates(city) <- c("POINT_X", "POINT_Y")
proj4string(city) <- CRS("+proj=longlat +datum=WGS84")

# use RgoogleMaps
gc <- geocode('new york, usa')
center <- as.numeric(gc)
ggmap(get_googlemap(center = center, color = 'bw', scale = 4), fullpage = T)
# Plot the city dataset
plot(city, pch = 22, col="black", bg= "yellow", cex = 1.5, add = TRUE)

結果は、背景マップと 2 つのポイントを含むプロットになるはずですが、ポイントはマップ上に描画されません。ジオコーディングの問題はありますか、それとも何か見落としがありますか? ggmap と plt 関数を組み合わせることは可能ですか?

どんな助けでも大歓迎です!

4

3 に答える 3

4

この種の作業に ggplot2 を使用すると、はるかに簡単になります。ポイント、ポリゴン、2 密度などを ggmap レイヤーに追加できます。

library(RgoogleMaps)
library(sp)
library(ggplot2)
library(ggmap)

PSpatialPointsDataFrame オブジェクトです。

DB <- data.frame(FID=P$FID, city=P$city)
DB <- cbind(DB, P@coords)


DB <- data.frame(FID=c(0,1), city=c("New York", "Newark"),   POINT_X=c(-73.996786,-74.172237), POINT_Y=c(40.720813,40.732196 ))
gc <- geocode("new york, usa")
center <- as.numeric(gc)
G <- ggmap(get_googlemap(center = center, color = 'bw', scale = 4), extent = "device")
G1 <- G + geom_point(aes(x=POINT_X, y=POINT_Y ),data=DB, color="red", size=5)
plot(G1)

これは出力です:

ここに画像の説明を入力

于 2014-02-28T23:23:49.930 に答える
1

これらは 2 つの異なるフレームワーク (グリッドとベース グラフィックス) です。両方の組み合わせも可能かもしれませんが、ggplot を使い続けることをお勧めします。

を使用してポイントを簡単に追加できます。たとえば、こちらgeom_point()の回答を参照してください。

于 2014-02-28T23:20:17.883 に答える
0

最近では、ggplot2 以外にも、leafletmapviewなど、これを処理できるパッケージもあります。R の Leaflet の場合は、以下を参照してください。

于 2018-09-07T14:21:03.810 に答える