2013-01-14 11 views
7

मैं वर्तमान में एक ऐप पर काम कर रहा हूं जो Google मानचित्र पर डेटा प्रदर्शित करने के लिए कस्टम टाइल स्रोत का उपयोग करता है। मैं उन डेटा को * .png छवियों के रूप में प्राप्त करता हूं, और मैं URLTileProvider का उपयोग कर रहा हूं।टाइल ओवरलेज़ को पारदर्शी बनाना

सब कुछ ठीक से काम कर रहा है, लेकिन अब मैं टाइललेयर पारदर्शी, या कम से कम आंशिक रूप से बनाने की कोशिश कर रहा हूं। लक्ष्य यह है कि परत दिखाई दे रही है लेकिन अंतर्निहित Google मानचित्र अभी भी चमकता है। किसी भी तरह से मैं अटक गया हूं, क्योंकि मुझे नहीं पता कि इसे कैसे प्राप्त किया जाए।

  • मैं पूरी तरह से एक कस्टम TileProvider लागू करने के लिए एक तरह से नहीं मिला, ऐसा लगता है एक ही विस्तार कर सकते हैं URLTileProvider
  • serverside imagemanipulation के रूप में डेटा दिया जाता है
  • एक बनाने के लिए कोई विकल्प नहीं है, संभव नहीं है टाइल ओवरले पारदर्शी? (अल्फा, अस्पष्टता, पारदर्शिता)

अगर कोई मुझे सही दिशा में संकेत दे सकता है या मुझे बताएगा कि Android के लिए Google मानचित्र API V2 वास्तव में इस सुविधा का समर्थन नहीं करता है तो मुझे बहुत मददगार होगा।

उत्तर

4

इस समय एंड्रॉइड मानचित्र एसडीके v2 में टाइलओवरले के लिए पारदर्शिता निर्दिष्ट करना संभव नहीं है। दुर्भाग्यवश setTransparency(float) विधि केवल GroundOverlay के लिए उपलब्ध है .. ऐसा करने का एकमात्र तरीका - अपने स्वयं के टाइलप्रोवाइडर को लागू करना और अल्फा चैनल को बदलने के लिए पीएनजी 'ऑन-द-फ्लाई' को बदलना है।

+1

इस तरह से मैं अंत में यह किया है: मैं उस URL से एक InputStream के माध्यम से टाइल fetchted मेरे स्वयं के कस्टम TileProvider बनाया है, तो इस समारोह के साथ संशोधन के लिए 'BitmapFactory.decodeByteArray' के माध्यम से एक बिटमैप उत्पन्न: ' निजी बिटमैप एडजस्ट ओपेसिटी (बिटमैप बिटमैप) ' बिटमैप। कॉनफिग conf = बिटमैप.कोनफिग.एआरबीबी_8888; बिटमैप बीएमपी = बिटमैप.क्रेट बिटमैप (256, 256, conf); कैनवास कैनवास = नया कैनवास (बीएमपी); पेंट पेंट = नया पेंट(); paint.setAlpha (टाइल ओपेसिटी); canvas.drawBitmap (बिटमैप, 0, 0, पेंट); वापसी बीएमपी; } – Elysium

+0

मुझे एक समान समस्या है एलिसियम और मेरे पास मेरा खुद का टाइलप्रोवाइडर भी है। लेकिन मुझे लगता है कि इसे खींचा जाने के बाद टाइल की पारदर्शिता नहीं बदल सकती है। क्या आप इसे खींचने के बाद किसी भी समय अपनी "एडजस्ट ऑपेसिटी" का उपयोग करते हैं? – aez

+0

क्या आप अस्पष्टता को समायोजित करने के बाद बिटमैप को बाइट [] में परिवर्तित कर चुके थे? अन्यथा, आपने GetTile() द्वारा वापस आने के लिए बिटमैप से टाइल कैसे बनाई? धन्यवाद। – paul

1

क्या आप टाइल छवियों को पारदर्शी बना सकते हैं? URLTileProvider किसी भी छवियों को इंगित कर सकता है ताकि छवि में अल्फा हो, तो इसे काम करना चाहिए।

आप सीधे टाइलप्रोवाइडर को कार्यान्वित कर सकते हैं लेकिन आपको उस मामले में अपना स्वयं का छवि डेटा लोड करने का ख्याल रखना होगा। ऐसा लगता है कि यदि आप क्लाइंट पर गतिशील रूप से टाइल्स जेनरेट करना चाहते हैं तो यह अधिक वांछनीय होगा।

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