Intereting Posts
एक पूर्ण स्क्रीन ओपनजीएल ईएसए एप पर आईफोन / आईपैड कीबोर्ड को कैसे प्रदर्शित किया जाए UILabel: कस्टम रेखांकित रंग? AFNetworking 2.0 असफलता ब्लॉक में कोड 400 से JSON प्राप्त करें IOS – UITableView प्रतिनिधि सेट नहीं किया जा रहा है? तेजी से चलने वाली पॉड इंस्टॉल करने में त्रुटि HTML की सामग्री प्राप्त करने की कोशिश करते समय अवरुद्ध आईओएस के लिए गूगल विश्लेषिकी- बनाएँ के रूप में शब्दकोशों का प्रयोग करके कस्टम इवेंट डेटा भेजनाऐवेंटविथ-कैरेन्ट केवल 4 पैरामीटर भेजे जाने की अनुमति देता है सीआईएन-नोड पर सीआईफ़िल्टर सिम्युलेटर में काम करता है IOS6 में Google मानचित्र मैं अपने स्टोरीबोर्ड के अंदर किसी दृश्य नियंत्रक को "पहचानकर्ता" कैसे दे सकता हूं? TabBarItems और उनके छवि आकार सेटिंग? आईओएस संस्करण पुस्तकालय का समर्थन करता है कि कैसे जांचने के लिए? आईओएस एप स्थानीय खोजों से गड़बड़ हो रहा है स्विफ्ट 2.0 वस्तु द्वारा ऑब्जेक्ट्स का सरणी छंटनी मेरे पास एक NSString में सूत्र है … इसका मूल्यांकन कैसे करें

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

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

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);