2017-08-16 70 views
0

我想繪製一些使用ggmap和geom_point的緯度/經度點。我以前做過,沒有任何問題,但這次它不會顯示。我已經嘗試了unlisting的數據,修補aes()等,沒有任何工作。 point_map的輸出僅爲Area_Map,沒有積分。我在這裏錯過了什麼?geom_point不顯示在ggmap圖上

# Read in data from csv files. 
bearingDat <- read.csv('bearing_Data.csv', sep = ',') 

lonlatDat <- read.csv('lonlat_Data.csv', sep = ',') 

# Create vectors for data. 
bearing <- c(bearingDat[1]) 
longitude <- c(lonlatDat[2]) 
latitude <- c(lonlatDat[1]) 

# Install necessary packages. 
#install.packages("ggmap", "rworldmap") 
#library(ggmap) 
#library(rworldmap) 


# Acquire map of area. 
Area_Map <- ggmap(get_map(location = c(175.733095424,-39.278361404), 
           zoom = 18, 
           maptype = "satellite", 
           color = "color" 
) 
) 


point_map <- Area_Map + geom_point(data = lonlatDat, 
             aes(x=longitude, y=latitude), 
             col = "red", 
             size = 1, 
             alpha = 0.5, 
             na.rm = TRUE 
) 

point_map 

這裏分別是經度和緯度的前10個值。

1 175.4404 39.15582 
2 175.4404 39.22650 
3 175.4404 39.22650 
4 175.4404 39.22650 
5 175.4404 39.22650 
6 175.4404 39.22650 
7 175.4404 39.22650 
8 175.4404 39.22650 
9 175.4403 39.42777 
10 175.4403 39.42777 
+0

除了你的符號錯誤,你的代碼「創建數據向量」是不好的(不是你在你的情節中使用這些)。如果'bearingDat'是一個數據幀,那麼'bearingDat [1]'是一個一列數據幀,就像'c(bearingDat [1])'一樣。如果你想要一個* vector *,使用'bearingDat [[1]]'。 (在這兩種情況下'c()'都是毫無意義的)。 – Gregor

+0

@Gregor謝謝你指出。最近還沒有花太多時間和R在一起,所以我一定會得到一些混亂的東西。 – wastelander

回答

2

你的地圖是在-39.278361404和你點39.15582,他們對世界的兩側。

如果你修復了其中一個,那麼你可能會看到一些東西。我的直覺告訴我他們可能仍然超出縮放級別的範圍。使用

嘗試:

calc_zoom(lon, lat, data, adjust = 0, f = 0.05)

得到縮放級別,顯示從原始地圖的最遠點,你應該是好去。

+0

啊,我想知道當我從NZTM - > UTM轉換時,我的經緯度數據是否混亂了。謝謝。 – wastelander

+0

這很容易發生。我的第一張Leaflet地圖遭遇類似的轉換問題! – sconfluentus

+0

我試過了calc_zoom,我得到錯誤「Error:is.integer(adjust)is not TRUE」。 – wastelander