জেএসফিডাল উদাহরণ
আমি একটি জেএসফিটাল তৈরি করেছি যা জাভাস্ক্রিপ্ট টপোলজি স্যুট (জেএসটিএস) (জেএসটিএস) লাইব্রেরি ব্যবহার করে আপনার সমস্যার সমাধান সমাধান করে ।
Explaination
এই পদ্ধতির দুটি পদক্ষেপ রয়েছে। প্রথম পদক্ষেপটি আপনার গুগল জ্যামিতিগুলিকে ওয়েলকান্ট টেক্সট (ডাব্লুকেটি) জ্যামিতি এক্সপ্রেশনগুলিতে রূপান্তর করে, যা একটি বহুল সমর্থিত বিন্যাস। দ্বিতীয় পদক্ষেপটি geometry.intersects()
দুটি ডব্লিউকেটি জ্যামিতির জেএসটিএস তুলনা করতে জেএসটিএস ব্যবহার করে ।
এটি সত্যিই বুঝতে আপনার কাছে ডাব্লুকেটি-র একটি প্রাথমিক ধারণা থাকা দরকার। আপনার গুগল ম্যাপে বহুভুত জ্যামিতিগুলি বহুলভাবে সমর্থিত ফর্ম্যাট নয়, তাই আমি তাদের সাথে সাথে ডাব্লুকেটি জ্যামিতিতে রূপান্তর করি যাতে আমরা তাদের সাথে জেএসটিএসে কাজ করতে পারি।
এটি সহজেই করতে আমি উইকেট লাইব্রেরিটি ব্যবহার করেছি । অবশ্যই আপনি সর্বদা নিজের গুগল-বহুভুজ-থেকে-ডাব্লুকেটি পদ্ধতিতে হোম-রোল করতে পারেন, বা একবারে আমি একবার লিখেছিলাম সেটিকে ব্যবহার করতে আপনাকে স্বাগত জানানো হয় , বা আপনি খুঁজে পেতে পারেন এমন কিছু সমাধান ব্যবহার করতে পারেন। ব্যক্তিগতভাবে, আজকাল আমি কেবল উইকেট ব্যবহার করি, যা আপনি দেখতে পাচ্ছেন, দুষ্ট-সরল:
// Pass in two Google Polygon objects.
// It returns two WellKnownText (WKT) geometry expressions.
//
function UseWicketToGoFromGooglePolysToWKT( poly1, poly2 )
{
var wicket = new Wkt.Wkt();
wicket.fromObject(poly1);
var wkt1 = wicket.write();
wicket.fromObject(poly2);
var wkt2 = wicket.write();
return [wkt1, wkt2];
}
এরপরে মাংস এবং আলু রয়েছে - দুটি ডাব্লুকেটি জ্যামিতি নিতে জেএসটিএস ব্যবহার করে তারা ছেদ করেছে কিনা তা পরীক্ষা করে। আবার, গ্রন্থাগারের উপর নির্ভর করে, এটির খুব বেশি কিছু নেই:
// Pass in two WKT geometry expressions.
// It performs a JSTS intersects() comparison.
//
function UseJstsToTestForIntersection( wkt1, wkt2 )
{
// Instantiate JSTS WKTReader and get two JSTS geometry objects
var wktReader = new jsts.io.WKTReader();
var geom1 = wktReader.read(wkt1);
var geom2 = wktReader.read(wkt2);
if (geom2.intersects(geom1)) {
alert('intersection confirmed!');
} else {
alert('..no intersection.');
}
}
আমি কীভাবে লাইব্রেরিগুলিকে ফ্লিডে যুক্ত করেছি
উপরের লিঙ্কটি যুক্ত, এবং যে সমাধানটি আমি দেখিয়েছি তার জন্য আপনার প্রকল্পে দুটি তৃতীয় পক্ষের লাইব্রেরি - জেএসটিএস এবং উইকেট যুক্ত করা দরকার। তাদের নিজ নিজ গিথুবগুলি থেকে কোড পাওয়া এবং এটি আপনার প্রকল্পে অন্তর্ভুক্ত করা একটি ভিন্ন অনুশীলন। কিন্তু বেহালার জন্য, আমি তাদের মধ্যে উল্লেখ করে সেই লাইব্রেরি লিঙ্ক একটি বিদ্যমান JSTS উদাহরণ আমি পোস্ট করেছে পাওয়া ক্রিস্টোফার ম্যানিং , সেইসাথে উইকেট নিজস্ব ডেমো পৃষ্ঠা । মূলত আমি পৃষ্ঠাগুলি খুললাম, "উত্স দেখুন" নির্বাচন করেছি এবং দুটি গ্রন্থাগারের প্রাসঙ্গিক রেফারেন্স সংগ্রহ করেছি। এগুলি হ'ল লাইব্রেরির শেষ পয়েন্টগুলি আমি ব্যবহার করেছি:
http://arthur-e.github.io/Wicket/wicket.js
http://arthur-e.github.io/Wicket/wicket-gmap3.js
http://bl.ocks.org/christophermanning/raw/4450188/javascript.util.min.js
http://bl.ocks.org/christophermanning/raw/4450188/jsts.min.js