আমি বর্তমানে আইসোক্রোনস এবং অন্তর্নিহিত অ্যালগরিদমের ক্ষেত্রে কাজ করছি। এখন যে সমস্যাগুলি সৃষ্টি করে তা হ'ল আইসোক্রোন নিজেই গণনা নয়, তবে ফলাফলগুলির দৃশ্যায়ন।
আমার আইসোক্রোন অ্যালগরিদমের ফলাফল পয়েন্ট এবং প্রান্তগুলি। আসলে আমার কাছে একটি কার্যক্ষম সমাধান রয়েছে তবে 3873 প্রান্তের জন্য এবং 1529 নোডের জন্য জিনিসগুলি চিরতরে নেবে বলে মনে হচ্ছে (আমার লেনোভো T440s ল্যাপটপে প্রায় ২.০ সেকেন্ডের মধ্যে একটি 2015 কোর আই 7 সিপিইউ এবং একটি দুর্দান্ত দ্রুত এসএসডি রয়েছে)। সেকেন্ডের পরিবর্তে আমি আরও কিছু এমসিকে :-) এর মতো চাই।
সম্ভবত কেউ আমাকে বহুভুজ তৈরির জন্য প্রয়োজনীয় গণনার সময় হ্রাস করতে সহায়তা করতে পারে যা পৌঁছনীয় অঞ্চলগুলিকে কল্পনা করতে পারে।
তবে অপেক্ষা করুন ... প্রথম জিনিস!
এখানে প্রান্তগুলির একটি দৃশ্যায়ন যা আমি আমার আইসোক্রোন গণনার ফলাফল:
এই প্রান্তগুলি একটি পোস্টজিআইএস ডাটাবেস সারণীতে সংরক্ষণ করা হয় এবং সাধারণ লিনস্ট্রিংগুলি।
আমি ব্যবহারকারীকে যা দেখতে চাই তা দেখতে এটির মতো: ছবির খুব দক্ষিণ এবং খুব পূর্বভাগে সংযোগ বিচ্ছিন্ন অঞ্চলগুলি নোট করুন। এগুলি পৃথক অঞ্চল হিসাবে আঁকা উচিত (সুতরাং এখানে কোনও মার্জ করার অনুমতি নেই :-))
বর্তমানে আমি এই ক্যোয়ারীটি ব্যবহার করছি:
SELECT ST_AsGeoJson(St_Transform(ST_Multi(ST_Collect(polygons)), 4326)) AS coverage FROM (
SELECT ST_MakePolygon(ST_ExteriorRing(ST_GeometryN(segments, generate_series(1, ST_NumGeometries(segments))))) AS polygons FROM (
SELECT ST_Union(ST_Buffer("GEOMETRY", 20, 'quad_segs=2')) AS segments FROM my_edges AS a
) AS b
) AS c
আমি ইতিমধ্যে কিছু পরীক্ষা-নিরীক্ষা করেছি এবং আমি প্রচুর ডকুমেন্টেশনও পড়েছি, তবে আমি এর থেকে ভাল সমাধান খুঁজে পাচ্ছি না।
আমার দৃষ্টিতে বড় সমস্যাটি হ'ল এস এস ইউনিয়ন (ডক্সে বলা হয়েছে যে এই ফাংশনটি ধীর হতে পারে)। খুব মজার বিষয় হ'ল এটির এস -২০ ক্লেক্টের সাথে এটি প্রতিস্থাপন করা এস-এস-বাফার গণনাটিকে ধীরে ধীরে কমবে বলে মনে হচ্ছে যাতে নীচের সমস্ত-কোয়েরি আরও বেশি সময় নেয়, যদিও এটি প্রান্তগুলির মধ্যবর্তী অঞ্চলগুলি পূরণ করে না (এটি কেবল রেখার চারপাশে একটি বাফার তৈরি করে) ):
SELECT ST_AsGeoJson(St_Transform(ST_Multi(ST_Collect(polygons)), 4326)) AS coverage FROM (
SELECT ST_Buffer(ST_Collect(ST_LineMerge("GEOMETRY")), 20, 'quad_segs=2') AS polygons FROM my_edges AS a
) AS b
এটি আমার সিস্টেমে প্রায় 3.8 সেকেন্ড সময় নেয় (প্রায় প্রায় দ্বিগুণ)। এই ছোট্ট মানদণ্ডের বাইরে আমার প্রথম উপসংহারটি হ'ল মাল্টিলাইনস্ট্রিংয়ের ক্ষেত্রে এসT_Buffer অপ্রত্যাশিতভাবে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে বেড়ে যায়)
আমি আলফা-আকারগুলিও ব্যবহার করার চেষ্টা করেছি (পিজারাউটিং থেকে বাস্তবায়নটি ব্যবহার করে), তবে যেহেতু সেট করার মতো কোনও আলফা মান নেই (এবং বাস্তবে আমি এখন কোন মানটি নির্ধারণ করতে চাই না) আমি কেবল একটি দুর্দান্ত বহুভুজ পেয়েছি ( সুতরাং আমি খুব দক্ষিণ ও পূর্বের অঞ্চলগুলি পৃথক অঞ্চল হিসাবে হারাতে চাই যা আমি চাই না)।
এছাড়াও এসT_ পলিগোনাইজ (যা আমার মনে প্রথম এসেছিল) কোনও ব্যবহারযোগ্য ফলাফল দেয় নি, তবে আমি এখানে কিছু মিস করেছি ...
পোস্টজিআইএস-এ দেখানো অঞ্চলটি তৈরি করার আরও ভাল কোনও উপায় আছে কি? সম্ভবত জাভা কোড (জেটস) বা ক্লায়েন্ট সাইড জাভাস্ক্রিপ্ট কোড (জাস্টস) ব্যবহার করে? আসলে আমি যতক্ষণ না আমার ফলাফলের দেখানো অঞ্চলগুলি পৃথক থাকবে এবং গণনাটি দ্রুততর হয় ততক্ষণ আমি কিছু বিশদ হারানোর সাথে বেঁচে থাকতে পারি।