2015-02-27 24 views
11

R paket ggmap kullanıyorum.ggmap :: get_map haritanızın köşelerinin tam olarak belirtilmesine izin vermiyor mu?

?get_map diyor ki:

yeri: (bu sırayla) bir adres, boylam/enlem çifti veya sol/alt/sağ/üst sınırlama kutusu

Kodum:

library(ggmap) 
library(mapproj) 

lat_bottom = 52.33 # bottom latitude of Berlin 
lat_top = 52.5 # top latitude of Berlin 
lon_left = 13.0 # left longitude of Berlin 
lon_rigth = 13.95 # right longitude of Berlin 

mymap <- get_map(location = c(lon_left,lat_bottom,lon_rigth,lat_top), 
source="google") 
ggmap(mymap) 

Neden bana bir uyarı veriyor:

Uyarı: google - uzaysal kapsam için verilen sınırlayıcı kutu yalnızca yaklaşıktır. sınırlayıcı kutuyu merkez/yakınlaştırma belirtimine dönüştürür. (deneysel)

bu kesin köşeli bir harita oluşturmak için beni yolu yoktur anlamına mı geliyor? Bunu denedim aşağıda

tavsiye göre:

lat_bottom = 52.33 # bottom latitude of Berlin 
lat_top = 52.68 # top latitude of Berlin 
lon_left = 13.08 # left longitude of Berlin 
lon_rigth = 13.77 # right longitude of Berlin 

mylon = c(lon_left,lon_rigth) 
mylat = c(lat_bottom,lat_top) 

mymap <- get_map(location = c(lon = mean(mylon), lat = mean(mylat)), 
       maptype = "roadmap", source = "google", zoom=11) # using zoom 
ggmap(mymap) 
foo<-ggmap(mymap)+ 
    scale_x_continuous(limits = c(lon_left,lon_right), expand = c(0, 0)) + 
    scale_y_continuous(limits = c(lat_bottom,lat_top), expand = c(0, 0)) 
foo 

Tamam görünüyor. Aşağıda olduğu gibi, örneğin (birbirine yakın olanlar) diğer koordinatları, alırken Ama - o zaman harita garip görünüyor - bu tür gri bir arka plan üzerinde sola kaydırır ...

lat_bottom = 52.35 # new bottom 
lat_top = 52.50 # new top 
lon_left = 13.2 # new left 
lon_rigth = 13.5 # new right 
+1

Belirli bir zum ile bir harita elde edebilirsiniz. Eğer 'ggplot2' kullanırsanız,' scale_x_continous' ve 'scale_y_continous' kullanarak haritayı kırpabilirsiniz. Bu [link] bir göz atın (http://stackoverflow.com/questions/25636897/get-map-with-specified-boundary-coordinates/25639124#25639124). Bu senin peşinde olduğun şey olabilir. – jazzurro

+0

Sadece amacımı açıklığa kavuşturmak için: "zoom" kullanmamaya çalışıyorum. Önceden bilmiyorum (kodu yazdığımda) haritanın hangi alanını görmek istiyorum. Bazen daha büyük, bazen daha küçüktür. İşte bu yüzden 4 köşeyi veriden almalı ve sonra bu köşelerle bir harita çizmeye çalışmalıyım. – user2323534

cevap

11

İsterseniz Sınırlarla çalışmak için, OpenStreetMap'i GoogleMaps'ten kullanmak daha iyidir. GoogleMaps’in ggmap’daki sınırlarının ayarlanması çalışmıyor. Bunun yerine merkez noktasını tahmin eder.

Aramanızı, get_map aramanızdan source = "osm" ekleyerek belirtebilirsiniz.

olarak:

mymap <- get_map(location = c(13.2,52.35,13.5,52.50), source = "osm") 

ggmap(mymap) 

elde edersiniz:

enter image description here

İlgili konular