मैं एक ऐसी स्क्रिप्ट लिखना चाहता हूं जो OpenStreetMap (ओएसएम) एक्सएमएल फाइलों को पार करती है और एक पदानुक्रमित फैशन में कस्बों और शहरों का डेटाबेस बनाता है। मैं परिणामी डेटा सेट चाहते हैं एक पदानुक्रम है कि अमेरिका में ऐसा दिखाई दे सकता है: और हो सकता है ब्रिटेन में इस तरहमैं ओएसएम एक्सएमएल ग्रह फ़ाइलों से पदानुक्रमित शहर/राज्य/देश डेटा कैसे निकाल सकता हूं?
USA -> California -> San Francisco County -> San Francisco
:
United Kingdom -> England -> Middlesex -> London -> Soho
उत्पादन एक JSON दस्तावेज़ का वर्णन किया जाएगा ओएसएम फ़ाइल के सभी शहरों के लिए एक पदानुक्रम, उपरोक्त उदाहरणों की तरह एक संरचना के साथ।
मैं पाइथन और "imposm" पार्सर लाइब्रेरी का उपयोग कर रहा हूं और मैं बिना किसी समस्या के फ़ाइल लोड और पार्स कर सकता हूं; मेरी समस्या यह समझने की कमी है कि ओएसएम डेटा कैसे संरचित किया जाता है: मुझे नहीं पता कि ओएसएम के डेटा में नोड्स के बीच अभिभावक/बाल संबंध कैसे जानें। उदाहरण के लिए, यदि मैं "सोहो" के लिए नोड का पता लगाता हूं, तो मैं इसे "वेस्टमिंस्टर शहर", "ग्रेटर लंदन", "मिडिलसेक्स" और "इंग्लैंड" के लिए नोड्स पर कैसे बांध सकता हूं?
मुझे पता है कि कुछ नोड्स एक "is_in" टैग है कि इस जानकारी में से कुछ दे सकता है है, लेकिन
- ए) इस असंगत है और
- बी) यह एक मुक्त रूप पाठ हो रहा है फ़ील्ड, ओएसएम नोड का एक लिंक नहीं है (यानी is_in: "वेस्टमिंस्टर शहर" मुझे वेस्टमिंस्टर नोड से कोई लिंक नहीं देता है)।
कृपया मुझे बताएं कि क्या आपके पास इन नोड्स को श्रेणीबद्ध रूप से लिंक करने के लिए कोई सुझाव है।
आपकी प्रतिक्रिया के लिए धन्यवाद, इगोर। यह उपयोगी जानकारी है, और ऐसा लगता है कि मुझे आवश्यक डेटा प्राप्त करने के लिए ओएसएम डेटा की संरचना पर पर्याप्त भरोसा नहीं किया जा सकता है। मुझे लगता है कि मैं geonames.org जैसे कहीं से अपना डेटा प्राप्त करने से बेहतर हूं। – luke
क्या वह उन सभी नोड्स की खोज नहीं कर सकता है जिनमें रुचि के बिंदु के आस-पास की सीमाएं हैं? जैसे यदि आपके पास सड़क है, तो आपको शहर, प्रांत, जिला और देश जैसे नोड मिलना चाहिए क्योंकि उनकी सीमाएं सड़क की अक्षांश और देशांतर स्थिति को घेरती हैं? – Tom