Intereting Posts
EXC_BAD_ACCESS जब CLBeacon को शून्य पर सेट करना मैं आईओएस एप्लीकेशंस पर एप्पल पुश अधिसूचना सेवा कैसे लागू कर सकता हूं? प्रारूप स्ट्रिंग को पार्स करने में असमर्थ NSPdericate SKErrorDomain कोड = "आईट्यून स्टोर से कनेक्ट नहीं किया जा सकता" IAP IOS उद्देश्य c में स्क्रॉल करते समय यूआईटीबलदृश्य में डेटा दोहराता है SKSpriteNode छूने के दौरान नहीं जाने देता है जब यूज़र इंटरएक्टिअन सक्षम झूठी है क्या यह एक फर्क पड़ता है जहां में डाल सकता है? एफ़टीपी डाउनलोड पर फ़ाइल का आकार प्राप्त करें डाउनलोड करने तक इंतजार करने के लिए मैं एक धागा कैसे सिग्नल कर सकता हूं और उसके बाद थ्रेड की प्रतीक्षा करने के लिए डेटा पास कर सकता हूं क्या हम सीनिक किट में एक पारदर्शी विमान पर छाया प्रस्तुत कर सकते हैं NSString stringWithFormat धीमा है फ़ाइल का नाम NSString अनावश्यक% 20 अंतरिक्ष में जोड़ता है दुर्घटना को ट्रैक नहीं किया जा सकता कॉपी करते समय का उपयोग कर एक फ़ोल्डर को कैसे अधिलेखित करें? कैसे आईओएस मूल शेयरिंग क्षमताओं से कुछ विकल्प को दूर करने के लिए?

मानचित्र बॉक्स एंड्रॉइड एसडीके का उपयोग कर ऑफ़लाइन टाइल कैशिंग

आईओएस टाइल-कैशिंग तकनीक का उपयोग करते हुए मेरे पास काम आईओएस प्रोटोटाइप है (जैसा कि नीचे दिखाया गया है- उद्देश्य-सी कोड):

RMTileCache * tileCache = [[RMTileCache alloc] initWithExpiryPeriod:0]; [tileCache setBackgroundCacheDelegate:self]; RMMapboxSource * tileSource = [[RMMapboxSource alloc] initWithMapID:mapID]; [tileCache beginBackgroundCacheForTileSource:tileSource southWest:southWest northEast:northEasth minZoom:minZoom maxZoom:maxZoom]; 

यह मूल रूप से क्या होता है, नक्शा डाउनलोड करें, टाइल को स्थायी रूप से कैश करें और भविष्य में ऐप को ऑफ़लाइन चलाने के लिए संभव बनाता है। चूंकि हम आधिकारिक पेड एपीआई के माध्यम से जा रहे हैं, यह निश्चित रूप से कानूनी प्रतिबंधों में से किसी का उल्लंघन नहीं है।

अब मैं एंड्रॉइड पर इसे हासिल करना चाहता हूं। मेरे पास एंड्रॉइड स्टूडियो में एसडीके चल रहा है और नक्शा आईडी का इस्तेमाल करते हुए एक दूरदराज के नक्शे के साथ काम कर रही एक परियोजना है, मूल रूप से यह (एंड्रॉइड एक्लिप्स लेआउट एक्सएमएल):

 <com.mapbox.mapboxsdk.views.MapView android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent" mapid=“my_map_id" /> 

यह ठीक काम करता है, लेकिन कैशिंग पूरा होने के बाद समाधान पूरी तरह से ऑफ़लाइन होना चाहिए। मेरा सवाल है: क्या मैपबॉक्स एसडीके में उपरोक्त आईओएस स्रोत कोड के एक जावा बराबर है? मैंने एपीआई को देखने का प्रयास किया, लेकिन टाइल कैशिंग प्रणाली का एक ठोस संदर्भ नहीं मिल सका। और कुछ दर्दनाक समय के बाद इसे विधि नाम और कोड प्रलेखन के आधार पर चलाने की कोशिश कर रहा था, मैंने छोड़ दिया।

मैं नवीनतम एंड्रॉइड स्टूडियो के साथ मैपबॉक्स का नवीनतम गिटहब वितरण चला रहा हूं, सब कुछ ठीक है और चल रहा है, लेकिन यह पूरा करने के लिए कोड नहीं मिल सकता है मुझे जरूरी नहीं कि एपीआई संदर्भ की ज़रूरत है, कुछ पंक्तियाँ दिखाती हैं कि यह कैसे किया जाता है यह पर्याप्त होगा।

Solutions Collecting From Web of "मानचित्र बॉक्स एंड्रॉइड एसडीके का उपयोग कर ऑफ़लाइन टाइल कैशिंग"

ऑफ़लाइन टाइल कैशिंग का समर्थन अब संस्करण 0.5.1 के अनुसार मैपबॉक्स एंड्रॉइड एसडीके में उपलब्ध है इसे 20-दिसंबर -2014 को जारी किया गया था आरंभ करने के तरीके का यह एक बुनियादी उदाहरण है:

 OfflineMapDownloader offlineMapDownloader = OfflineMapDownloader.getOfflineMapDownloader(getActivity()); BoundingBox boundingBox = mapView.getBoundingBox(); CoordinateSpan span = new CoordinateSpan(boundingBox.getLatitudeSpan(), boundingBox.getLongitudeSpan()); CoordinateRegion coordinateRegion = new CoordinateRegion(mapView.getCenter(), span); offlineMapDownloader.beginDownloadingMapID("MapboxMapID", coordinateRegion, (int) mapView.getZoomLevel(), (int) mapView.getZoomLevel()); 

पहले सहेजे गए मानचित्र को लोड करने के लिए:

 ArrayList<OfflineMapDatabase> offlineMapDatabases = offlineMapDownloader.getMutableOfflineMapDatabases(); OfflineMapDatabase db = offlineMapDatabases.get(0); OfflineMapTileProvider tp = new OfflineMapTileProvider(getActivity(), db); offlineMapOverlay = new TilesOverlay(tp); mapView.addOverlay(offlineMapOverlay); 

मैंने इस सवाल का समर्थन दल को पूछा, यहां जवाब दिया गया है:

"हमारे पास वर्तमान में एंड्रॉइड एसडीके या इस फीचर के लिए रिलीज की तारीख नहीं है, क्योंकि दोनों ही विकास के शुरुआती चरण में हैं

– टॉम मैकड्राइट समर्थन @ mapbox.com "

यह एक बहुत अच्छा उत्पाद है, मुझे आशा है कि हम इसे जल्द ही एंड्रॉइड में इस्तेमाल कर सकते हैं।

आपके लेआउट फ़ाइल में यहां होना चाहिए:

 <com.mapbox.mapboxsdk.views.MapView android:id="@+id/yourMapViewId" android:layout_width="match_parent" android:layout_height="match_parent" /> 

कोड में जहां आप MapView को प्रारंभ करना चाहते हैं:

 File file = new File("your full path to tiles db"); MBTilesLayer mbTilesLayer = new MBTilesLayer(file); MapView mapView = (MapView) findViewById(R.id.yourMapViewId); mapView.setTileSource(mbTilesLayer);