2015-01-13 24 views
6

Mükemmel kare değil, dikdörtgen biçiminde ve dikte ettiğim bir harita oluşturmak istiyorum.ggmap harita boyutunu değiştiriyor

require(ggmap) 
tenmile <- get_map(location = c(lon = -122.486328, lat = 48.862813), 
    color = "color", 
    source = "google", 
    maptype = "roadmap", 
    zoom = 12) 
tenmile.map <- ggmap(tenmile, 
    extent = "device", 
    ylab = "Latitude", 
    xlab = "Longitude")+ggtitle("GEOMean for Data from Oct 2013-Nov 2014") 
tenmile.map + geom_point(data=pp, aes(x=lon, y=lat, size=geomean), color="red", alpha=0.5) +  
geom_text(data=pp, aes(x=lon, y=lat, label = site), size=3, vjust = 1.25, hjust = -0.1) 

ne olsun resimlerini ve ne istediğim göndermek ama Resim gönderebilir için yeterli itibar puanı yok. = - (

+0

Ggmap [kare olmayan haritalar yapmaz] gibi görünüyor (http://stackoverflow.com/questions/19438316/r-ggmap-why-can-i-create-rectangular-maps-using-the- dosya-öznitelik-ama-değil), ama belki daha büyük bir harita elde edebilirsiniz, [görüntü kırpma] (http://www.image.ucar.edu/~nychka/Fields/Help/image2lz.html) ve [kullanım Bir arka plan olarak] (http://stackoverflow.com/questions/12918367/in-r-how-to-plot-with-a-png-as-background). Sanırım koordinatları hizalamak acı verici olacak, belki de (https://github.com/hadley/ggplot2/wiki/Crime-in-Downtown-Houston,-Texas-%3a-Combining-ggplot2 -ve-Google-Maps). – andybega

cevap

2

Sınırlayıcı kutunun orijinal sınırlarını korumak, ancak şeklini değiştirmek istiyorsanız, en boy oranını ayarlayabilirsiniz. Sınırlama kutusunun sınırlarını değiştirmek isterseniz, haritayı aşağıdaki gibi alın. önce ama coord_fixed() (veya coord_cartesian()) kullanarak sınırlar belirleyin. Yoksa en boy oranı ve sınırlayıcı kutunun sınırlarını hem ayarlayabilirsiniz.

tenmile <- get_map(location = c(lon = -122.486328, lat = 48.862813), 
    color = "color", 
    source = "google", 
    maptype = "roadmap", 
    zoom = 12) 
tenmile.map <- ggmap(tenmile, 
    ylab = "Latitude", 
    xlab = "Longitude")+ggtitle("GEOMean for Data from Oct 2013-Nov 2014") + 
    coord_fixed(xlim = c(-122.55, -122.40), ratio = 2/1) 
+0

Code Sandy için teşekkürler ama işe yaramayacağım. –

+0

Üzgünüz, yorumunuzu kaçırdınız. Haritanın nasıl görüneceğini beklediğinizi açıklamanız gerekiyor. Kare olmayan bir harita alıyorum. –

0

Sandy Muspratt cevabı dikdörtgen harita üretir, ama bu gergin olur. alabilmek için Uzatılmamış bir harita, oran, haritadaki paralelliklerin ve meridyenlerin arasındaki orana göre ayarlanmalıdır, yani:

oranı = 1/cos (enlem) enlem derece olarak verilmiş ise

, bu gibi olur:

oranı = 1/cos (p * enlem/180)

Burada Barselona haritası kullanarak bir örnek vereyim (Barselona caddelerin çoğunun kare bir ızgara oluşturduğundan ve deformasyonun kolayca fark edilebildiğinden, gerginliği kontrol etmek için iyi bir örnek oluşturuyor).

Böylesi haritanın alanı hesabı Dünya'nın eğrilik almak için yeterli küçükse (örneğin haritaya noktalar eklemek için) Bütün harita için çalışmaya devam koordinatları belirtmek gerekir

library(ggmap) library(mapproj) mapbcn <- get_map(location = 
    'Barcelona, Catalonia', zoom = 13) 

# square map (default) ggmap(mapbcn) 

# map cropped by latitude 
ggmap(mapbcn) +     
    coord_fixed(ylim=c(41.36,41.41), 
       ratio=1/cos(pi*41.39/180)) 

# map cropped by longitude 
ggmap(mapbcn) +  
    coord_fixed(xlim=c(2.14, 2.18), 
       ratio=1/cos(pi*41.39/180)) 
- yani meridyenlerin harita ile gösterilen alanda paralel olduklarını varsaymak için. Kıta ölçekli bir haritada yüzlerce kilometre uzunluğunda ve çok yanlış bir haritada yanlış olabilir.

İlgili konular