पत्रक के साथ बड़े डेटासेट की कल्पना करना


35

किसी बड़े डेटासेट (10,000 पॉइंट फीचर्स वाले जियोजन्स) की कल्पना करने के लिए USC का उपयोग करते समय, आश्चर्यजनक रूप से ब्राउज़र क्रैश या हैंग नहीं होता है। समान डेटासेट से 1000 विशेषताओं का उप-नमूना त्रुटिपूर्ण रूप से काम करता है। दुर्भाग्य से मैं दूसरों को आज़माने के लिए डेटासेट साझा नहीं कर सकता।

क्या किसी के पास ऐसे बड़े डेटासेट को देखने के लिए बेहतर समाधान हैं? (अंतिम उद्देश्य यह 2 मिलियन सुविधाओं के पैमाने पर है) मैं भी मामले में ब्राउज़र आधारित विकल्पों जैसे कि पॉलिमैप्स या d3.js आदि में ऑफ़लाइन विज़ुअलाइज़ेशन फ्रेमवर्क पर विचार करने के लिए तैयार हूं, असमर्थ हैं।

संपादित करें: उल्लेख करना भूल गए, उपयोगकर्ता को विशेषताओं द्वारा डेटासेट को फ़िल्टर करने में सक्षम होना चाहिए। इसलिए एन फीचर्स में से, केवल मेलिंग एन <= एन फीचर्स को गतिशील रूप से प्रस्तुत करने की आवश्यकता हो सकती है।


3
इसी तरह की चर्चाएं: gis.stackexchange.com/questions/4096/ gis.stackexchange.com/questions/14882 gis.stackexchange.com/questions/6954
julien

जवाबों:


23

मैं CAT लेखक हूं। वहाँ, इस के लिए एक भयानक क्लस्टरिंग प्लगइन है Leaflet.markercluster । यह बहुत तेज़ और कुशल है (50k मार्कर उदाहरण पर एक नज़र डालें), अच्छा एनिमेशन के साथ बहुत आसानी से दिखता है और काम करता है, और आपकी आवश्यकताओं के अनुरूप बहुत सारे विकल्प हैं।


3
PruneClusterहोनहार भी दिखता है।
टीलामा

1
मैं मूल प्रश्न का विस्तार करना चाहूंगा। मुझे कुछ इस तरह से करने की आवश्यकता है: matall.in/posts/deep-insights-visualizing-1m-flight-routes मैं मार्करों को कैसे पथपाकर कर सकता हूं?
गिलहरमेक्स

16

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

जहां तक ​​मुझे पता है, बहुत तेजी से डब्ल्यूएफएस सर्वर के अलावा इसे करने के लिए कोई अन्य तेज़ तरीके नहीं हैं, जो कि कई दर्शकों को बनाए रखने के लिए / बल्कि मुश्किल है।

प्रकटीकरण: MapBox के लिए काम , कोड का एक सा लिखा था। लेकिन टाइलमिल स्वतंत्र / खुला स्रोत है, आदि।


1
मैं उल्लेख करना भूल गया कि उपयोगकर्ता विशेषताओं द्वारा डेटासेट को फ़िल्टर करने और केवल मिलान रिकॉर्ड प्रदर्शित करने में सक्षम होना चाहिए। तो आइए 10,000 रिकॉर्ड्स में से, केवल 500 को वास्तव में किसी दिए गए मामले के लिए प्रस्तुत करने की आवश्यकता हो सकती है। टाइलमिल के साथ मैं (या कैसे कर सकता हूं)?
इमाद

3
नहीं। आप CartoDB को आज़माना चाहते हैं , लेकिन आपको पता होना चाहिए कि चीजों को गतिशील बनाना और चीजों को प्रदर्शन करने वाला बनाना लक्ष्यों का विरोध कर रहा है।
tmcw

1
जनगणना मानचित्र लिंक मृत है!
15:22 बजे dr

सभी लिंक डेड हैं।
लीजी

9

क्या आपने लीफलेट क्लस्टर में देखा है? लेखक द्वारा एक ब्लॉग पोस्ट यहाँ इसका वर्णन करता है

देखने के लायक एक अन्य विकल्प जीआईएस क्लाउड के साथ संयोजन में लीफलेट का उपयोग करना हो सकता है । पर एक नजर डालें इस डेमो यह बहुत जल्दी ज्यामिति का एक बहुत संभाल देखने के लिए। बहुत प्रभावशाली। मैं किसी भी तरह से GISCloud से संबद्ध नहीं हूं।


7

आपको मानचित्र पर कभी भी लाखों बिंदुओं को प्रदर्शित नहीं करना चाहिए। न केवल प्रमुख प्रदर्शन समस्याओं के कारण, बल्कि एक उपयोगकर्ता के दृष्टिकोण से भी क्योंकि उनके लिए यह निश्चित रूप से इस डेटा की व्याख्या करना मुश्किल होगा। डेटा को एकत्र करने के कुछ साधनों का उपयोग करें (क्लस्टरिंग, बहुभुज क्षेत्रों को एकत्र करना आदि) अलग-अलग ज़ूम स्तरों पर विभिन्न प्रदर्शन प्रकारों के साथ संयुक्त (जैसे "कच्चे" बिंदु डेटा केवल बहुत उच्च ज़ूम स्तरों पर और हर जगह एकत्र डेटा का उपयोग करें)। एक उदाहरण एक अचल संपत्ति साइट होगी जैसे कि zillow.com


8
आपको कभी भी "आपको कभी नहीं" कहना चाहिए। लोकल और टूरिस्ट उस अंतर्दृष्टि का एक शानदार उदाहरण है जो अंकों के लाखों (या इस मामले में अरबों) दृश्य दे सकता है।
जोसेफ शीडी

1
सहमत w / @velotron, उदाहरण के लिए छह मिलियन अंक खूबसूरती से और जल्दी से प्रदान किए गए: mapbox.com/blog/supercluster
मैक्स वॉन हिप्पेल

1
हाँ, लेकिन इस मामले में उन बिंदुओं को भी (ज़ूम स्तर के आधार पर) क्लस्टर किया जाता है, जिससे डेटा की व्याख्या करना और समझना बहुत आसान हो जाता है।
क्रिसरिक

2
@chriserik सही है, इसलिए सही उत्तर होगा "आपको क्लस्टरिंग या हीट मैप्स का उपयोग करना चाहिए यदि आपके पास कई बिंदु हैं, और यहां बताया गया है कि कैसे करना है ..."
मैक्स वॉन हिप्पेल

3
मेरा कहना यह था कि लाखों बिंदुओं के अस्पष्ट भूखंड अंतर्दृष्टि प्रदान कर सकते हैं।
जोसेफ शीडी

0

मेरा सुझाव है कि आप बिंदु सुविधाओं की प्रदान की गई राशि को कम करें: मानव आँख 10,000 अंक नहीं देख पाएगी, 2,000,000 की बात नहीं करेगी।

आप जो कोशिश कर सकते हैं वह गतिशील रूप से एक कस्टम सर्वर से डेटासेट का अनुरोध कर रहा है (जो आपको सेट करना होगा), उदाहरण के लिए

    map = ...
    map.on('moveend', function(e) {
        getGeoJson(e);
    });
    map.on('zoomend', function(e) {
        getGeoJson(e);
    });
    map.setView([2,3], 2);

    function getGeoJson(event) {
        // todo determine current viewport
        $http.get('someGeoJsonDataProvider.someLanguage?currentView=[lat0,lon0,lat1,lon1]').then(function (resp) {
            // todo clear layers
            // new layer
            map.addLayer(
                L.geoJson(resp.data)
            );
        });
    }

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

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


-5

मेरे पास ५० से १०० मिलियन रिकॉर्ड दर्ज करने के लिए समाधान थे, आपको ग्रिड और डायनामिक आधारित करने के लिए सर्वर-साइड समाधान का उपयोग करने की आवश्यकता है। क्लाइंट-साइड के रेंडरिंग करने के लिए आप वेब मैप APIs (Google, या अन्य) पर जवाब नहीं दे सकते ...।

[http://96.231.36.9:8080/rbgis/google_map.htmldesing11] उपरोक्त लिंक आज़माएं और देखें कि कैसे


2
कृपया अपने उत्तर का विस्तार करें, इसलिए यह तब भी मददगार होगा जब आपका सर्वर अप्राप्य हो।
lynxlynxlynx

हाँ, यह विडंबना है। चूंकि आपका सर्वर-साइड लिंक काम नहीं करता है।
मैक्स वॉन हिप्पेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.