ड्राइंग मैं एक नक्शे पर लंबे पोलीलाइंस के बहुत सारे है अनुकूलित। मैं अपनी ड्राइंग को अनुकूलित करना चाहता हूं, क्योंकि कुछ हज़ार अंक पर पॉलीलाइनों को अविश्वसनीय रूप से धीमा कर दिया जाता है।पॉलीलाइन drawMapRect
मेरे drawMapRect
दिखता है इस तरह:
- for each polyline segment
- verify if it's bounding box intersects the currently drawn MKMapRect
- if id does, draw it
अगर वहाँ भी कई अंक नहीं हैं कौन सा महान है। लेकिन जब 8-16 मैप्रेक्ट दिखाई देते हैं और 2-3000 अंक होते हैं, तो वे for
के माध्यम से अविश्वसनीय रूप से धीमी गति से चल रहे हैं।
यदि वे केवल स्थान होंगे, तो समाधान किसी प्रकार की क्वाड्री/आर-पेड़ संरचना को लागू करना होगा और वर्तमान में MKMapRect
में उन स्थानों के लिए फ़िल्टर करना होगा, लेकिन मुझे यकीन नहीं है कि यह अपरिवर्तनीय होगा या नहीं polylines खुद के लिए।
अगर मैं वर्तमान maprect अंदर खंड अंतिम बिंदुओं के लिए केवल फ़िल्टर करते हैं, तो कुछ रेखा खंड तैयार नहीं किया जा सकता है। उदाहरण के लिए, 1-2 अंक के बीच दो लाल maprects उन में कोई खंड अंतिमबिंदुओं है, लेकिन अभी भी आकर्षित करने की आवश्यकता ...
वहाँ quadtrees के समान या के लिए दृष्टिकोण किसी तरह एल्गोरिथ्म के कुछ प्रकार है यह समस्या ?
इस एक कोशिश और कुछ भी नहीं मिल सकता है दे देंगे। वर्तमान में प्रत्येक सेगमेंट के लिए मैं अपने बाध्यकारी मानचित्र की गणना करता हूं और वर्तमान में खींचे गए मानचित्र के साथ बस mkmparect चौराहे/रोकथाम की जांच करता हूं। – Templar