2014-05-06 23 views
8

मैं वास्तव में ggmap और stamen watercolor के साथ होने वाली किसी समस्या के बारे में कुछ मदद/विचारों की सराहना करता हूं।ggmap stamen watercolor png त्रुटि

मैं एक ही त्रुटि संदेश हर बार मिलती रहती है मैं एक पुंकेसर पानी के रंग नक्शा बनाने के लिए प्रयास करें:

qmap("new-york", zoom=13, source="stamen", maptype="watercolor") 

या:

"Error in readPNG(destfile) : file is not in PNG format" 

यहाँ सरल कोड के कुछ उदाहरण हैं जो यह त्रुटि लौट रहा है

get_map(location='Auckland', source="stamen", maptype="watercolor", zoom=13) 

मैं आर संस्करण का उपयोग कर रहा हूं: [डिफ़ॉल्ट] [64-बिट] सी: \ प्रोग्राम फ़ाइलें \ R \ R-3.0.2 के तहत विंडोज 8

मुझे एहसास है कि कुछ लोगों ने इसी समस्या के बारे में पोस्ट किया है - लेकिन केवल कुछ - और मैंने कोई स्पष्टीकरण/सुझाव नहीं देखा है। मैं फंसे हुए और निराश हूं और वास्तव में उम्मीद कर रहा हूं कि मेरे सामने अधिक अनुभव वाला कोई व्यक्ति इस समस्या में भाग गया है (और हल हो गया है)। अग्रिम धन्यवाद या किसी भी मदद से आप

उत्तर

2

मुझे एक ही समस्या हो सकती है। ध्यान दें कि यदि आप

get_map(location='Auckland', source="stamen", maptype="watercolor", zoom=13) 

चलाने आप टाइल आप आर में लोड करने के लिए जब मैं दिया URL में से एक पर जाएँ कोशिश कर रहे हैं के लिए (के) URL मिल जाएगा, यह बजाय, एक .jpg पर रीडायरेक्ट एक .png। इसलिए त्रुटि सटीक है - सेवा की जा रही टाइलें पीएनजी प्रारूप में नहीं हैं - वे जेपीजी हैं।

ऐसा लगता है कि यह स्टैमेन एपीआई में बदलाव से जीजीएमएपी में एक बग है। ऐसा लगता है कि संस्करण 2.4 इसे संबोधित करेगा; गिटहब यहां देखें: https://github.com/dkahle/ggmap/commit/c7c48947360351f2e86ba13d0457aa3894b51d46

14

अस्थायी सुधार के रूप में आप स्वयं परिवर्तन कर सकते हैं। टाइप करें

get_stamenmap 

आर टर्मिनल पर टाइप करें। यह मानचित्र लोड करने के लिए कोड को डंप कर देगा। आपको इस कोड को संपादित करने और नामस्थान में फ़ंक्शन को प्रतिस्थापित करने की आवश्यकता होगी।

कॉपी करता है, तो एक समारोह फिर से एक पाठ संपादक के लिए कोड और बनाने के पहली पंक्ति को बदलने के द्वारा:

get_stamenmap <- function (bbox = 

तो फिर तुम लोड हो रहा है jpegs पर स्विच करने की जरूरत है। पीएनजी पर खोजें और पाठ को jpg में बदलें। मेरे पास दो उदाहरण थे जो आपको फ़ाइल एक्सटेंशन में आवश्यक पाठ की तरह दिखते थे, वे मेरे लिए 64 और 71 लाइन पर थे।

64: urls <- paste(urls, ".jpg", sep = "") 
71: destfile <- paste(filename, "jpg", sep = ".") 

लाइन 75 पर फ़ंक्शन readPNG है, जिसे आपको readJPEG में बदलने की आवश्यकता है।

tile <- readJPEG(destfile) 

तुम भी jpeg पैकेज है, यानी पुस्तकालय (JPEG) लोड करने के लिए के बाद से ggmap अन्यथा का एहसास नहीं है यह अब की जरूरत है सुनिश्चित करने के लिए की आवश्यकता होगी। मुझे लाइब्रेरी (प्लीयर) की भी आवश्यकता थी, लेकिन मुझे पता नहीं चला कि क्यों - मैंने ऐसा इसलिए किया क्योंकि मुझे उस पैकेज में मिली ldply() के बारे में बाद में त्रुटि संदेश मिला।

अब इस "सभी नए" फ़ंक्शन को टर्मिनल में पेस्ट करें।बाद में, आप समारोह पैकेज है, जो स्थानीय प्रतिलिपि तुम सिर्फ टर्मिनल में चिपकाया से अलग है में एम्बेडेड अधिलेखित करने के लिए की जरूरत है, तो आप इस लिखना होगा:

assignInNamespace("get_stamenmap",get_stamenmap,ns="ggmap") 

अब आप फिर से qmap उपयोग करने के लिए तैयार हो जाना चाहिए । यह प्रक्रिया मेरे लिए काम करती है और उसी बदलाव के साथ पैकेज को पुन: संकलित करने या नवीनतम स्रोत डाउनलोड करने से सरल थी जिसमें इन फिक्स और संकलन होते हैं।

+1

बेस्ट .... स्टैक ओवरफ्लो ... उत्तर .... कभी! (मुझे बहुत समय बचाया)। –

1

लाइब्रेरी में 2.4 प्रकाशित होने तक एक विकल्प भंडार में उपलब्ध कार्यों को लोड करना है और ggmap पैकेज (जैसा कि माइकल ने उत्तर दिया है) पर पहले से मौजूद लोगों को प्रतिस्थापित करना है। मैं सिर्फ get_stamenmap.R और filedrawer.R (url_lookup() के लिए आवश्यक) की सामग्री भरी हुई के रूप में अच्छा था पानी के रंग नक्शे के साथ जाने के लिए।