2013-02-01 28 views
6

डॉक्स से MKRoadWidthAtZoomScale के लिए:आईओएस 6 में MKRoadWidthAtZoomScale 6?

आप iOS 6 और बाद में सड़क की चौड़ाई को पुनः प्राप्त करने के लिए इस समारोह का उपयोग नहीं करना चाहिए।

क्या कोई अन्य फ़ंक्शन जिसका उपयोग किया जा सकता है, या यह आईओएस 6 में बस गायब कार्यक्षमता है?

यह अजीब बात है कि फ़ंक्शन को बहिष्कृत नहीं किया गया था, अगर आपको इसका उपयोग नहीं करना चाहिए।

उत्तर

3

मैं अनुमान लगाता हूं कि इसे बहिष्कृत नहीं किया गया था क्योंकि कार्यक्षमता को किसी बिंदु पर वापस जोड़ा जाएगा। फ़ंक्शन अभी भी आईओएस 6 में काम करता है, क्योंकि इसमें कॉल होने पर क्रैश नहीं होता है, भले ही आउटपुट उपयोगी न हो।

यदि आप (ऐप्पल) मैप्स ऐप देखते हैं, तो आप देख सकते हैं कि जब आप दिशानिर्देश पथ में ज़ूम करते हैं, तो पथ की चौड़ाई उच्चतम ज़ूम स्तर पर बढ़ जाती है। उन उच्च ज़ूम स्तरों पर भी सड़क की चौड़ाई बढ़ जाती है। स्पष्ट रूप से ऐप्पल को यह जानने का एक आंतरिक तरीका है कि ज़ूमिंग करते समय सड़कों को कितना चौड़ा मिलता है। शायद इसे सामान्य रिलीज के लिए पूरी तरह से परीक्षण नहीं किया गया है।

बस अगर कोई सोचता है कि आप अभी भी इस फ़ंक्शन का उपयोग कर सकते हैं, तो यहां सुझाई गई सड़क चौड़ाई पूरी तरह से ज़ूम किए गए (MKZoomScale = 1) से शुरू हो रही है और ज़ूम आउट हो रही है।

कोड:

for (float zoomScale=1; zoomScale>0.00001; zoomScale /= 2) { 
    NSLog(@"zoomScale: %f Road Width: %f", zoomScale, MKRoadWidthAtZoomScale(zoomScale)); 
} 

परिणाम:

zoomScale: 1.000000 Road Width: 21.000000 
zoomScale: 0.500000 Road Width: 32.000000 
zoomScale: 0.250000 Road Width: 60.000000 
zoomScale: 0.125000 Road Width: 96.000000 
zoomScale: 0.062500 Road Width: 176.000000 
zoomScale: 0.031250 Road Width: 288.000000 
zoomScale: 0.015625 Road Width: 448.000000 
zoomScale: 0.007812 Road Width: 768.000000 
zoomScale: 0.003906 Road Width: 1536.000000 
zoomScale: 0.001953 Road Width: 2048.000000 
... 

एक स्थानापन्न के समारोह के रूप में, मैं सिर्फ कुछ मान कि उच्चतम 2 या 3 ज़ूम स्तर के लिए अच्छी तरह से काम बनाने और उपयोग करने का सुझाव था उसके नीचे निरंतर मूल्य।

यहां कम और उच्च ज़ूम पर ऐप्पल मानचित्र मार्ग ओवरले है। आप देख सकते हैं कि वैकल्पिक मार्ग बड़ी सड़क चौड़ाई को ध्यान में नहीं ले रहा है, लेकिन मुख्य मार्ग चौड़ाई जगह पर है। मार्ग बदलना वैकल्पिक मार्ग चौड़ाई को प्रभावित नहीं करता है।

enter image description here

+1

इसे लिखने में परेशानी लेने के लिए धन्यवाद। दुर्भाग्य से मुझे इसका पालन करना काफी मुश्किल लगता है। वर्जित फ़ंक्शन का उपयोग * करता है * आपको काफी उचित परिणाम देता है (मैंने इसे आजमाया है)। ज़ूम किए गए स्तरों पर निरंतर उपयोग करने से बहुत पतली रेखाएं मिलेंगी। दो अलग-अलग चौड़ाई पर लाइनों को दिखाने के लिए सेब की पसंद शायद इंगित करती है कि उन्हें क्यों लगता है कि एक समारोह जाने का तरीका नहीं है, लेकिन ऐसा लगता है कि 'MkRoadMapWidthAtZoomScale' के बारे में कुछ भी नहीं कहता है। – Bryan

+0

जब आप कहते हैं कि आपको उचित परिणाम मिलते हैं, तो आप 'MKRoadWidthAtZoomScale()' का उपयोग कैसे कर रहे थे और यह किस ओएस पर काम कर रहा था? जब मैं कहता हूं "निरंतर उपयोग करके" मेरा मतलब है कि किसी फ़ंक्शन से सड़क चौड़ाई प्राप्त करने के बजाय बिंदुओं में सड़क की चौड़ाई के लिए निरंतर उपयोग करें। ज़ूम आउट होने पर, पतली नहीं, यह आपको _fat_ लाइनें देगा। ज़ूम इन, अगर आप चौड़ाई नहीं बदलते हैं, तो लाइनें बहुत पतली होंगी। –

+1

मैं इसका उपयोग कैसे कर रहा था: मूल रूप से CGContextSetLineWidth (संदर्भ, MKRoadWidthAtZoomScale (ज़ूमस्केल)); आईओएस 6.1 पर। मैंने बस एक स्थिर - 5000 की कोशिश की - और मुझे लगता है कि आप इसके बारे में सोचने के विपरीत तरीके से 'ज़ूम इन' का उपयोग कर रहे हैं - मेरे लिए, ज़ूम इन होने पर मानचित्र सुविधाएं वास्तव में बड़ी होती हैं, और रेखा वसा होती है, और मैं पूरी तरह से देखता हूं ज़ूम आउट होने पर देश, और रेखा पतली है। – Bryan

0

आईओएस 7.1 के रूप में वहाँ के बारे में MKRoadWidthAtZoomScale अब और दस्तावेज में कोई चेतावनी है। इसे MKOverlayRenderer.h में परिभाषित किया गया है, जिसे आईओएस 7.0 में पेश किया गया था।

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

  • कोई संबंधित समस्या नहीं^_^