2016-01-02 8 views
7

मैंने सही समाधान के लिए सख्ती से खोज की है जो 50 000 मार्कर तक संभाल सकता है (और यदि सर्वर इसे संभाल सकता है तो और भी क्यों नहीं) मेरे सर्वर पर आसान होने पर और मैं इसे दिनों के लिए कर रहा हूं ।सर्वर साइड क्लस्टरिंग?

enter image description here


  • क्या क्लस्टरिंग सर्वर पक्ष के लिए सबसे अच्छा समाधान/भाषा होगा:


    संकल्पना कुछ इस तरह है? मैं एक बड़ा कामकाजी कोड नहीं ढूंढ रहा हूं लेकिन मुझे सही दिशा में धकेलने की जरूरत है।

  • कैसे करें "कैश" या "निशान" पहले से ही भरी हुई समूहों/मार्कर ताकि आप मार्कर को फिर से लोड नहीं होता/समूहों कि पहले से ही जब नक्शा/में ज़ूम आउट किया गया या आलोचना beeing है लोड किया गया है?

थ्योरी:

जाना

सही तरह से इस के समान लगता है:

  • तो नक्शा ज़ूम आउट किया गया है और मार्कर का एक बहुत देखते हैं, सर्वर में क्लस्टरिंग संभाल
  • यदि मानचित्र किसी बिंदु पर ज़ूम किया गया है कि सभी मार्कर अब व्यूपोर्ट के लिए उपयुक्त नहीं हैं, क्लस्टर केवल मी arkers कि व्यूपोर्ट में कर रहे हैं - भी सर्वर
  • ज़ूम व्यूपोर्ट में मार्करों के इतना बड़ा है कि संख्या में हो जाता है हो जाता है छोटे (उदाहरण के लिए < 500), cluster in browser via JS

डाटा मैं सर्वर पक्ष में उपयोग कर सकते हैं और जिसे मैं JSON के माध्यम से ब्राउज़र पर भी भेज सकता हूं:

  • मानचित्र सीमा सर्वर से ajax के माध्यम से भेजा जब अनुरोध डेटाबेस क्वेरी डेटाबेस क्वेरी से मार्करों के
  • निर्देशांक से
  • मार्कर की कुल गिनती किया जाता है
  • शायद कुछ और महत्वपूर्ण/उपयोगी है कि मैं वर्तमान में साकार नहीं

उत्तर

2

मैं 50,000 100,000 बहुभुज के साथ Google मानचित्र अनुप्रयोगों के साथ काम कर रहा हूं यह बहुभुज को क्षेत्रों की श्रृंखला, (चादर तर्क, क्षेत्रों या इसी तरह) में व्यवस्थित करने की संभावना बहुत उपयोगी साबित हुआ है। पहले से प्रदर्शित किए गए क्षेत्रों की एक सरणी का उपयोग करके जो एजेक्स के माध्यम से सर्वर पर भेजा गया है, साथ ही समन्वय के साथ ही मुझे केवल उन क्षेत्रों का चयन करने की इजाजत दी गई है जिन्हें आपने अभी तक प्रदर्शित नहीं किया है और इस प्रकार बैंडविड्थ आवंटन दोनों को कम करने के लिए बहुभुज प्रतिपादन करने का समय है,

बाकी रणनीति सही है।एक अधिक गहन मूल्यांकन के लिए सोशल में सामाजिक रूप से बहुत कम व्यावहारिक होना चाहिए।

सर्वर साइड भाषा के लिए वे ठीक हैं, मैं व्यक्तिगत रूप से अभी मैं PHP और फ्रेमवर्क Yii2 का उपयोग पीडीओ ड्राइवर के साथ MySQL के लिए कर रहा हूं। महत्वपूर्ण बात यह है कि पर्यावरण का उपयोग करना डेटाबेस को बहुत आसान और कुशल पहुंच प्रदान करता है।

इन परिस्थितियों में

, क्लस्टर का एक अच्छा संगठन और क्षेत्रों के लिए बहुभुज की प्रदर्शन जब ज़ूम स्तर यह अनुप्रयोगों नक्शे बहुत

प्रदर्शन गूगल बनाता है की अनुमति देता है के उपयोग के लिए कृपया ध्यान दें कि लेने के मार्कर की उपस्थिति तेजी से होता है बहुभुज की तुलना में यह कम समन्वय की संख्या और उनकी ग्राफिक विशेषताओं की संख्या कम है।

आपके जैसे सामान्य प्रश्न के लिए ऑनलाइन एक अच्छा जवाब मुश्किल है। क्षेत्रों के लिए आपके द्वारा प्रबंधित क्षेत्र के आयाम और मार्करों की औसत घनत्व पर निर्भर करता है। क्षेत्र के लिए ध्रुव के पास नहीं है, आप समन्वय के एक अंश का उपयोग कर सकते हैं .. या यदि आपके भू बिंदु में क्षेत्र से संबंधित कुछ विशेषता है तो आप उनका उपयोग कर सकते हैं। क्षेत्र के अनुमानित आयाम के साथ ज़ूम को लिंक करने के लिए आप फ़ॉर्मूला ऑनलाइन देख सकते हैं। यह भी निर्भर करता है कि मार्करों का संग्रह कैसे किया जाता है। संग्रह के दौरान मेरे मामले में मैं इस जरूरत के लिए कुछ विशेषता eval।

चेक के लिए एक मार्कर या मार्कर का समूह पहले से ही नक्शे में हैं, मैं बस वेक्टर का उपयोग करता हूं और सर्वर के साथ डायनामिक एक्सचेंज के लिए इसका उपयोग करता हूं (AJAX के माध्यम से)। फ़र्ट्स समय वेक्टर खाली होता है और प्रगतिशील रूप से वेक्टर में "पता" के लिए तत्व होता है जो पहले से प्रदर्शित होता है।

+0

आप उस _region/region_ तर्क को कैसे प्रबंधित करते हैं ताकि उस विशेष ज़ूम स्तर पर पहले ही लोड किए गए मार्कर लोड न हों? यह वर्तमान में मेरी सबसे बड़ी समस्या है। मार्कर _bounds/viewport_ में मार्कर है या नहीं, प्रभावी रूप से जांचने के लिए कैसे? इतने सारे अनुत्तरित प्रश्न और ऑनलाइन शून्य प्रभावी समाधान हैं। – Solo

+0

मैंने उत्तर अपडेट किया है .. मुझे उम्मीद है कि यह उपयोगी है अन्यथा आपको कई और विशिष्ट प्रश्न पोस्ट करना होगा। – scaisEdge

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