লিফলেট সহ বড় ডেটাসেটগুলি ভিজ্যুয়ালাইজ করা


35

লিফলেট ব্যবহার করার সময় একটি বড় ডেটাসেট (10,000 পয়েন্ট বৈশিষ্ট্যযুক্ত জিওজেএসন) দেখার জন্য, ব্রাউজারটি ক্র্যাশ হয়ে যায় বা স্তব্ধ হয়ে যায় তা অবাক হয় না। একই ডেটাসেটের 1000 টি বৈশিষ্ট্যের উপ-নমুনা নির্দ্বিধায় কাজ করে। দুর্ভাগ্যক্রমে আমি অন্যদের চেষ্টা করার জন্য ডেটাসেটটি ভাগ করতে পারি না।

এত বড় ডেটাসেট দেখার জন্য কারও কি আরও ভাল সমাধান আছে? (চূড়ান্ত লক্ষ্য এটি 2 মিলিয়ন বৈশিষ্ট্যগুলিতে স্কেল করা) আমি এমনকি পলিম্যাপস বা ডি 3 জে ইত্যাদির মতো ব্রাউজার ভিত্তিক বিকল্পগুলিতে অফলাইন ভিজ্যুয়ালাইজেশন ফ্রেমওয়ার্কগুলি বিবেচনা করতে রাজি আছি ।

সম্পাদনা: উল্লেখ করতে ভুলে গেছেন, ব্যবহারকারীর বৈশিষ্ট্য দ্বারা ডেটাসেট ফিল্টার করতে সক্ষম হওয়া দরকার। সুতরাং এন বৈশিষ্ট্যগুলির বাইরে , কেবলমাত্র মিলে যাওয়া এন <= N বৈশিষ্ট্যগুলিকে গতিশীলভাবে রেন্ডার করা দরকার।


3
একই আলোচনা: gis.stackexchange.com/questions/4096/ gis.stackexchange.com/questions/14882 gis.stackexchange.com/questions/6954
Julien

উত্তর:


23

আমি লিফলেট লেখক। এর জন্য একটি দুর্দান্ত ক্লাস্টারিং প্লাগইন রয়েছে, লিফলেট.মার্কক্র্লস্টার । এটি খুব দ্রুত এবং দক্ষ (50k চিহ্নিতকারীগুলির উদাহরণটি দেখুন), দুর্দান্ত অ্যানিমেশনগুলির সাথে দেখতে এবং খুব সহজেই কাজ করে এবং আপনার প্রয়োজন অনুসারে প্রচুর বিকল্প রয়েছে।


3
এছাড়াও PruneClusterপ্রতিশ্রুতি দেখায়।
টিএলমা

1
আমি মূল প্রশ্নটি প্রসারিত করতে চাই। আমাকে এর মতো কিছু করতে হবে: matall.in/posts/deep-insights-visualizing-1m-flight-routes আমি কীভাবে চিহ্নিতকারীদের আন্তঃপথ ক্লাস্টার করতে পারি?
guilhermecgs

16

আপনি টাইলমিল ব্যবহার করতে পারেন এবং ইউটিএফগ্রিড থেকে দ্রুত ইন্টারেক্টিভিটি সহ রাস্টার চিত্র হিসাবে পয়েন্টগুলি উপস্থাপন করতে পারেন । এটি লক্ষ লক্ষ পয়েন্ট এবং বহুভুজগুলিতে স্কেল করে, যেমন এই আদমশুমারি মানচিত্র , কারণ এটি বুদ্ধিমানের সাথে নির্দিষ্ট অঞ্চলের জন্য প্রয়োজনীয় ডেটা প্রেরণ করা হয়, ঠিক যখন এটি প্রয়োজন হয়।

যতদূর আমি জানি, খুব দ্রুত ডাব্লুএফএস সার্ভার থাকা ছাড়া এটি করার জন্য অন্য কোনও দ্রুত পদ্ধতি নেই, যা অনেক দর্শকের কাছে / স্কেল বজায় রাখা বরং কঠিন rather

প্রকাশ: ম্যাপবক্সের জন্য কাজ , কোডের বেশ কিছুটা লিখেছিল। তবে টাইলমিল বিনামূল্যে / উন্মুক্ত উত্স, ইত্যাদি is


1
আমি উল্লেখ করতে ভুলে গেছি ব্যবহারকারীর বৈশিষ্ট্য দ্বারা ডেটাসেট ফিল্টার করতে সক্ষম হওয়া উচিত এবং কেবল মিলে যাওয়া রেকর্ড প্রদর্শন করা উচিত। সুতরাং 10,000 টি রেকর্ডের মধ্যে বলা যাক, কেবলমাত্র 500 কে কোনও নির্দিষ্ট ক্ষেত্রে রেন্ডার করার প্রয়োজন হতে পারে। আমি (বা কীভাবে করব) টাইলমিল দিয়ে এটি করতে পারি?
ইমাদ

3
নাঃ। আপনি কার্টোডিবি চেষ্টা করতে চাইতে পারেন , তবে আপনার জানা উচিত যে জিনিসগুলিকে গতিশীল করা এবং জিনিসগুলি পারফরম্যান্ট করা লক্ষ্যগুলি বিরোধী।
tmcw

1
জনগণনা মানচিত্রের লিঙ্কটি মারা গেছে!
drho

সমস্ত লিঙ্ক ডেড হয়।
লিগি

9

আপনি কি লিফলেট ক্লাস্টারটি দেখেছেন? লেখকের একটি ব্লগ পোস্ট এটি এখানে বর্ণনা করে

জিআইএস ক্লাউডের সাথে মিশ্রিত লিফলেট ব্যবহার করা অন্য চেহারাটির অন্য একটি বিকল্প হতে পারে । এটি খুব দ্রুত জ্যামিতিগুলি হ্যান্ডেল করতে দেখতে এই ডেমোটি একবার দেখুন । খুব চিত্তাকর্ষক. আমি জিআইএসক্লাউডের সাথে কোনওভাবেই অনুমোদিত নয়।


7

আপনার কখনই কোনও মানচিত্রে লক্ষ লক্ষ পয়েন্ট প্রদর্শন করা উচিত নয়। কেবল বড় পারফরম্যান্স সমস্যার কারণে নয়, তবে ব্যবহারকারীর দৃষ্টিকোণ থেকেও কারণ তাদের পক্ষে এটি অবশ্যই এই ডেটাটির ব্যাখ্যা করা কঠিন হবে। বিভিন্ন জুম স্তরে বিভিন্ন প্রদর্শন ধরণের সাথে মিলিতভাবে ডেটা (ক্লাস্টারিং, বহুভুজ অঞ্চলে একত্রিত করা ইত্যাদি) কিছু উপায় ব্যবহার করুন (উদাহরণস্বরূপ "কাঁচা" পয়েন্টের ডেটা কেবল খুব উচ্চতর জুম স্তরে দেখান এবং অন্য কোথাও একত্রিত ডেটা ব্যবহার করুন)। একটি উদাহরণ যেমন zillow.com হিসাবে একটি রিয়েল এস্টেট সাইট হবে ।


8
আপনার কখনই "আপনার কখনও উচিত নয়" বলা উচিত নয়। স্থানীয় এবং পর্যটকরা লক্ষ লক্ষ (বা এক্ষেত্রে বিলিয়ন) পয়েন্ট দিতে পারে এমন অন্তর্দৃষ্টি একটি দুর্দান্ত উদাহরণ।
জোসেফ শেডি

1
ডাব্লু / @ ওয়েলোট্রন, যেমন ছয় মিলিয়ন পয়েন্টগুলি সুন্দর এবং দ্রুত উপস্থাপনের সাথে সম্মত হন: ম্যাপবক্সবক্স / ব্লগ / সুপারক্লাস্টার
ম্যাক্স ভন হিপ্পেল

1
হ্যাঁ, তবে এই ক্ষেত্রে এই পয়েন্টগুলি পাশাপাশি ক্লাস্টার করা হয়েছে (জুম স্তরের উপর নির্ভর করে), এটি ডেটাটি ব্যাখ্যা এবং বুঝতে খুব সহজ করে তোলে।
ক্রিসেরিক

2
@ ক্রিসেরিক ঠিক আছে, তাই সঠিক উত্তরটি হ'ল "যদি আপনার কাছে অনেকগুলি পয়েন্ট থাকে তবে আপনার ক্লাস্টারিং বা তাপের মানচিত্র ব্যবহার করা উচিত, এবং এটি কীভাবে করা যায় তা এখানে ..."
ম্যাক্স ভন হিপ্পেল

3
আমার বক্তব্যটি ছিল লক্ষ লক্ষ পয়েন্টের অবিকৃত প্লট অন্তর্দৃষ্টি দিতে পারে।
জোসেফ শেডি

0

আমি আপনাকে পয়েন্ট বৈশিষ্ট্যগুলির রেন্ডার পরিমাণকে হ্রাস করার পরামর্শ দিচ্ছি: মানব চোখ 10,000,000 পয়েন্ট দেখতে সক্ষম হবে না, 2,000,000 এর কথা বলতে পারবে না।

আপনি যা চেষ্টা করতে পারেন তা কাস্টম সার্ভারের (যা আপনাকে সেটআপ করতে হবে) থেকে ডেটাসেটটির জন্য ডায়নামিকভাবে অনুরোধ করছে eg

    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

আমার কাছে 50 থেকে 100 মিলিয়ন রেকর্ড ম্যাপ করার সমাধান ছিল, আপনার গ্রিড এবং গতিশীল ভিত্তিতে সার্ভার-সাইড সমাধানগুলি ব্যবহার করা দরকার। ক্লায়েন্ট-সাইডের রেন্ডারিং করতে আপনি ওয়েব ম্যাপ এপিআই (গুগল, বা অন্য) -এ জবাব দিতে পারবেন না ....

[http://96.231.36.9:8080/rbgis/google_map.html উত্সাহিত ১] উপরের লিঙ্কগুলি ব্যবহার করে দেখুন এবং দেখুন


2
দয়া করে আপনার উত্তরটি প্রসারিত করুন, সুতরাং আপনার সার্ভারটি অ্যাক্সেসযোগ্য থাকা সত্ত্বেও এটি সহায়ক হবে।
lynxlynxlynx

হ্যাঁ এটা বিদ্রূপ। যেহেতু আপনার সার্ভার-সাইড লিঙ্কটি কাজ করে না।
ম্যাক্স ভন হিপ্পেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.