2011-12-10 7 views
6

आर में, मानचित्र पैकेज का उपयोग करके, और जीसी इंटरमीडिएट फ़ंक्शन, मैं दो देशों के बीच लाइन कैसे आकर्षित करूं? इसे लैट-लम्बे समय की ज़रूरत है, लेकिन मुझे यकीन नहीं है कि मैं देशों के लिए मुझे कितने लैट-लांग देना चाहिए (कहना है कि मैं संयुक्त राज्य अमेरिका और स्वीडन के बीच एक रेखा खींचना चाहता हूं)आर मानचित्र पैकेज - देशों के बीच लाइनों को आकर्षित करने के लिए कैसे?

उत्तर

8

कई मानचित्र हैं जिनका उपयोग आप कर सकते हैं, किस जानकारी के आधार पर/विस्तार/आदि। आप की जरूरत है, लेकिन यह बहुत अच्छा wrld_simpl के लिए ठीक हो जाएगा:

library(maptools) 
library(geosphere) 

data(wrld_simpl) 

US_lat = wrld_simpl$LAT[wrld_simpl$NAME == 'United States'] 
US_lon = wrld_simpl$LON[wrld_simpl$NAME == 'United States'] 

SWE_lat = wrld_simpl$LAT[wrld_simpl$NAME == 'Sweden'] 
SWE_lon = wrld_simpl$LON[wrld_simpl$NAME == 'Sweden'] 

points = gcIntermediate(c(US_lon, US_lat), c(SWE_lon, SWE_lat), 100) 

dev.new(width=6, height=4) 
plot(wrld_simpl) 
lines(points, col='red') 

enter image description here

+0

अच्छा! मैं इसे कई देशों से ब्राजील में लाइनों के साथ कर रहा हूं। ~ 120 डिग्री पूर्व (जैसे ऑस्ट्रेलिया, न्यूजीलैंड, जापान ...) के बाद कुछ देशों के लिए लाइनें पूर्व में जाती हैं, स्ट्रेट बन जाती हैं, स्क्रीन के दूसरी तरफ 360 डिग्री तक जाती हैं, और फिर इसके राउंड पथ को जारी रखती हैं। इसे हल करने का कोई तरीका? – Rodrigo

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