मेरे पास लगभग 250.000 सेगमेंट के साथ एक शेपफाइल (यूरोपीय प्रमुख सड़कों से मिलकर) है जो मुझे तीखा करने के लिए सरल करना है। लेकिन मुझे ठीक से ऐसा करने का कोई तरीका नहीं मिल रहा है।
यह है जो ऐसा लग रहा है:
और ऐसा ही होना चाहिए:
मुझे किसी तरह लाइनों के हर बिंदु को हटाना है जो शेष बिंदुओं के बीच सामयिक कनेक्शनों को संरक्षित करते हुए 3 लाइनों (एक चौराहा नहीं) से कम से जुड़ा हुआ है। अगर किसी के पास एक विचार है, तो इसकी बहुत सराहना की जाएगी!
सादर
EDIT: मैंने @dkastl के विचार को लागू करने का प्रयास किया और केवल अपने कोड से नीचे दिए गए कोड के साथ अपने नेटवर्क से केवल अप्राकृतिक नोड्स (केवल 2 आसन्न linestrings) नोड्स प्राप्त करने में कामयाब रहा (नेटवर्क पीढ़ी अंडरडार्क के ब्लॉग http://underdark.wordpress.com से लिया गया) / २०११ / ०२ / ० 2011 / ए-बिगिनर्स-गाइड-टू-पीग्राउटिंग / ):
SELECT * FROM
(SELECT tmp.id as gid, node.the_geom FROM
(SELECT id, count(*) FROM network
JOIN node
ON (start_id = id OR end_id = id) AND (end_id = id OR start_id = id)
GROUP BY id ORDER BY id) as tmp
JOIN node ON (tmp.id = node.id)
WHERE tmp.count = 2) as unn_node;
इसलिए, मुझे अब केवल लाइनों का विलय करना है। हालांकि, मेरे पास कोई सुराग नहीं है कि कैसे। मुझे लगता है कि यह एक लूप होना चाहिए जो उपरोक्त क्वेरी के परिणाम की प्रत्येक पंक्ति के लिए आसन्न रेखाएं प्राप्त करता है और उन्हें विलय करता है। तब यह पूरी तरह से नेटवर्क का पुनर्निर्माण करेगा और प्रक्रिया को तब तक दोहराएगा जब तक कि ऊपर वाला रिक्त परिणाम नहीं देता।