2015-02-27 11 views
11

मैं आर पैकेज ggmap का उपयोग कर रहा हूँ।ggmap :: get_map मेरे मानचित्र के कोनों के सटीक विनिर्देश की अनुमति नहीं देता है?

?get_map का कहना है:

स्थान: एक पते, देशांतर/अक्षांश जोड़ी (इसी क्रम में), या बाईं/नीचे/सही/शीर्ष सीमांकन बॉक्स

मेरे कोड:

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) 

यह मुझे चेतावनी क्यों दे रहा है:

चेतावनी: Google को दिए गए बाउंडिंग बॉक्स - स्थानिक सीमा केवल अनुमानित। बाउंडिंग बॉक्स को केंद्र/ज़ूम विनिर्देश में कनवर्ट करना। (प्रायोगिक)

यह मतलब यह है मेरे लिए कोई रास्ता नहीं इन सटीक कोनों के साथ एक नक्शा बनाने के लिए है कि वहाँ?

सलाह के आधार पर नीचे मैं इस कोशिश की:

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 

यह ठीक लग रहा है। लेकिन जब मैं नीचे दिए गए जैसे अन्य निर्देशांक (एक दूसरे से उन करीब), उदाहरण के लिए, - तो नक्शा अजीब लग रहा है - यह थोड़े धूसर पृष्ठभूमि पर छोड़ दिया करने के लिए बदलाव ...

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

आप एक निश्चित ज़ूम के साथ एक नक्शा प्राप्त कर सकते हैं। यदि आप 'ggplot2' का उपयोग करते हैं, तो आप' scale_x_continous' और 'scale_y_continous' का उपयोग करके मानचित्र को ट्रिम कर सकते हैं। इस [लिंक] का एक नज़र डालें (http://stackoverflow.com/questions/25636897/get-map-with- निर्दिष्ट-boundary-coordinates/25639124#25639124)। यह हो सकता है कि आप क्या कर रहे हैं। – jazzurro

+0

बस मेरे उद्देश्य को स्पष्ट करने के लिए: मैं "ज़ूम" का उपयोग करने से बचने की कोशिश कर रहा हूं। मुझे अग्रिम में पता नहीं है (जब मैं कोड लिखता हूं) मानचित्र का कौन सा क्षेत्र मैं देखना चाहता हूं। कभी-कभी यह बड़ा होता है, कभी-कभी यह छोटा होता है। यही कारण है कि मुझे डेटा से 4 कोनों को पकड़ना है और फिर उन कोनों के साथ एक नक्शा खींचने का प्रयास करें। – user2323534

उत्तर

11

अगर आप चाहते हैं सीमाओं के साथ काम करने के लिए, GoogleMaps की तुलना में OpenStreetMap का उपयोग करना बेहतर है। ggmap में GoogleMaps के लिए सीमाएं सेट करना काम नहीं करता है। इसके बजाय यह केंद्र बिंदु का अनुमान लगाएगा।

आप अपने get_map कॉल में source = "osm" सहित स्रोत निर्दिष्ट कर सकते हैं।

के साथ:

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

ggmap(mymap) 

आपको मिलेगा:

enter image description here

संबंधित मुद्दे