আমি যা করার চেষ্টা করছি সে সম্পর্কে এখানে একটি দ্রুত সংক্ষিপ্তসার রয়েছে: পোস্টগ্র্রেসে আমার কাছে 3 টি টেবিল রয়েছে, 'এ' এবং 'বি', প্রত্যেকের একটি পলিগন কলাম এবং 'সি' তে একটি পয়েন্ট কলাম রয়েছে। আমি এখানে যা করার চেষ্টা করছি তা হ'ল 'ক', 'বি' এবং 'সি' এর মধ্যে জ্যামিতি ছেদ করা এবং একটি ওপেনলায়ার ভেক্টর স্তরতে এ জাতীয় জ্যামিতিগুলি প্রদর্শন করা।
আমি ওপেনলায়ার্সের কোনও স্ট্রিং থেকে যে কোনও ধরণের জ্যামিতি প্রদর্শন করতে হবে তা আমি ইতিমধ্যে জানি, তবে পোস্টজিআইএস এর এস এস ইনটেকশন ফাংশন নিয়ে আমার সমস্যা হচ্ছে, আমি এটি করছি:
SELECT ST_Intersection(a.geom, b.geom) as inter from a, b;
যেখানে a.geom এবং b.geom উভয় জ্যামিতি কলাম এবং আমি এই ত্রুটি বার্তাটি পেয়েছি:
NOTICE: TopologyException: found non-noded intersection between 515172 2.14408e+06, 497067 2.13373e+06 and 501321 2.13546e+06, 471202 2.14843e+06 500621 2.13576e+06
ERROR: GEOS Intersection() threw an error!
এছাড়াও আমি এস.এসএএসটেক্সটটি এভাবে ব্যবহার করে ফলাফলের জ্যামিতিটিকে পাঠ্য হিসাবে প্রকাশ করার চেষ্টা করেছি:
SELECT ST_AsText(ST_Intersection(a.geom, b.geom)) as inter from a, b;
তবে এটি আমাকে এই ত্রুটি বার্তাটি প্রেরণ করে:
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
আমি জানি না আমি কী ভুল করছি, আমি পলিগনসের ডাব্লুকেটি ওপেনলায়ার্সে এটি প্রদর্শন করতে চাই, এখানে আমি ডাব্লুকেটি থেকে জ্যামিতিটি কীভাবে প্রদর্শন করব:
var in_options = {
'internalProjection': new OpenLayers.Projection("EPSG:4326"),
'externalProjection': new OpenLayers.Projection("EPSG:4326")
};
var fea= new OpenLayers.Format.WKT(in_options).read(data); //data is the string with the WKT
vectorLayer.addFeatures([fea]); //this piece of code works great
map.zoomToExtent(bounds);
আপডেট: আমি পরবর্তী চেষ্টা:
SELECT ST_Intersection(a.geom, b.geom) as intersect_ab FROM a INNER JOIN b ON
ST_Intersection(a,b) WHERE ST_Overlaps(a.geom, b.geom)
AND ST_isvalid(a.geom)='t' AND ST_isvalid(b.geom)='t';
তবে আমি পরবর্তী ত্রুটি বার্তাটি পেয়েছি:
ERROR: Function st_intersection(a,b) does not exist.
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
আমি যুক্ত করেছি যে বৈধ বহুভুজ যাচাই করা হচ্ছে তা বৈধতা যাচাই করা হচ্ছে, তবে এটি ত্রুটিটি বলছে এস এস ইনট্রেকশন (ক, খ), এ, বি এবং সি উভয়ই একই এসআরডি রয়েছে তাই আমি সত্যিই বিভ্রান্ত, দুঃখিত আমি যদি খুব বেশি জিজ্ঞাসা করছি, তবে পোস্টজিআইএসের সাথে আমি বেশ নতুন তাই আমি আশা করি আমি আপনাকে খুব বেশি বিরক্ত করছি না। ধন্যবাদ।
SELECT PostGIS_Full_Version();
ফিরে আসে?