PostGIS 1.5 এ পৃথক বিভাগগুলিতে MULTILINESTRING বিস্ফোরণ করুন


10

MULTILINESTRINGপোস্টজিআইএস-এ আমার একটি রয়েছে বেশ কয়েকটি'র সমন্বয়ে LINESTRING। প্রতিটি বিবেচনা করুন LINESTRINGএকটি সেট আছে POINT'র

পি 1 , পি 2 , ... পি এন

লাইন বিভাগগুলি গঠন

এল 1 , এল 2 , ... এল এন -1

যেখানে এল এক্স পি সংযোগ লাইন বিভাগটির হয় এক্স পি থেকে এক্স + 1 টি

PostGIS 1.5 ব্যবহার করে আমি কীভাবে MULTILINESTRINGপ্রতিটিটির পৃথক রেখাংশগুলিতে বিস্ফোরণ করতে পারি LINESTRING?

উত্তর:


11

দুটি বিকল্প মাথায় আসে। আপনি যদি কোনও নির্দিষ্ট চান LINESTRINGতবে আপনি ST_NumGeometries () এবং ST_GeometryN () ব্যবহার করতে পারেন । বিকল্পভাবে, আপনি যদি সমস্ত উপ-জ্যামিতিগুলি চান, তবে ST_Dump () যাওয়ার উপায়।

আসলে প্রশ্নটি পড়ার পরে, পোস্টগ্রিজ-ব্যবহারকারীদের তালিকা থেকে আপনার এই পোস্টের অনুরূপ কিছু করতে হবে :

SELECT ST_AsText( ST_MakeLine(sp,ep) )
FROM
-- extract the endpoints for every 2-point line segment for each linestring
(SELECT
  ST_PointN(geom, generate_series(1, ST_NPoints(geom)-1)) as sp,
  ST_PointN(geom, generate_series(2, ST_NPoints(geom)  )) as ep
FROM
   -- extract the individual linestrings
  (SELECT (ST_Dump(ST_Boundary(geom))).geom
   FROM mypolygontable
   -- eliminate 0 length linestring 
    where st_x(st_startpoint(geom))<> st_x(st_endpoint(geom))
   ) AS linestrings
) AS segments;

আমি কীভাবে আপনার LINESTRINGকাছ থেকে উত্তর পেতে পারি তা পড়লাম MULTILINESTRING। তবে আমি একটি স্তর আরও গভীরতর দিকে যেতে চাই, আমি পৃথক রেখার অংশগুলি চাই, যাগুলি মার্জ হওয়ার পরে LINESTRINGআবার মিশ্রিত হয়ে আসলটি গঠন করে MULTILINESTRING। যে জানার জন্য?
চৌ

1
আহ! হ্যাঁ, এখন আমার কাছে একটি কফি
খাওয়া হয়েছে

1
আমি কফি পান না করার পরে আমি বুঝতে পারি না;)
চৌ চৌ

আপনার সংযোজন যদিও ঠিক কাজ করে, তাই অনেক ধন্যবাদ!
চৌ চৌ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.