2015-02-27 14 views
11

Tôi đang sử dụng gói ggmap R.ggmap :: get_map không cho phép đặc tả chính xác các góc của bản đồ của tôi?

?get_map nói:

vị trí: một địa chỉ, kinh độ/cặp vĩ độ (theo thứ tự đó), hoặc trái/dưới/phải/top box bounding

Mã của tôi:

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) 

Tại sao cảnh báo cho tôi cảnh báo:

Cảnh báo: hộp giới hạn được cấp cho google - khoảng cách không gian chỉ gần đúng. chuyển đổi giới hạn hộp để trung tâm/zoom đặc điểm kỹ thuật. (thử nghiệm)

Điều đó có nghĩa là không có cách nào để tôi tạo bản đồ với các góc chính xác này là ?

Dựa trên những lời khuyên dưới đây tôi đã cố gắng này:

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 

Nó có vẻ OK. Nhưng khi tôi lấy các tọa độ khác (những cái gần nhau hơn), ví dụ như những cái bên dưới - thì bản đồ trông kỳ lạ - nó chuyển sang trái trên nền màu xám ...

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

Bạn có thể nhận được một bản đồ với zoom số. Nếu bạn sử dụng 'ggplot2', bạn có thể cắt bản đồ bằng' scale_x_continous' và 'scale_y_continous'. Có một cái nhìn của [link] này (http://stackoverflow.com/questions/25636897/get-map-with-specified-boundary-coordinates/25639124#25639124). Đây có thể là những gì bạn đang sau. – jazzurro

+0

Chỉ cần làm rõ mục tiêu của tôi: Tôi đang cố gắng tránh sử dụng "thu phóng". Tôi không biết trước (khi tôi viết mã) vùng nào của bản đồ mà tôi muốn xem. Đôi khi nó lớn hơn, đôi khi nó nhỏ hơn. Đây là lý do tại sao tôi phải lấy 4 góc từ dữ liệu và sau đó cố gắng vẽ một bản đồ với những góc đó. – user2323534

Trả lời

11

Nếu bạn muốn để làm việc với các ranh giới, tốt hơn là sử dụng OpenStreetMap hơn GoogleMaps. Đặt ranh giới cho GoogleMaps trong ggmap không hoạt động. Thay vào đó, nó sẽ ước tính điểm trung tâm.

Bạn có thể chỉ định nguồn bằng cách bao gồm source = "osm" trong cuộc gọi get_map của mình.

Với:

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

ggmap(mymap) 

bạn nhận được:

enter image description here

Các vấn đề liên quan