.Shp से .kml से .shp बिना खोये हुए गुण


10

मैं एक ग्राहक के लिए .kml करने के लिए विशेषताओं के साथ एक आकृति बदल दिया है। .Kml और विशेषताओं को तब Google धरती के भीतर संपादित किया गया था। मुझे अद्यतन .kml प्राप्त हुआ और अब मुझे इसे .shp पर वापस लाने की आवश्यकता है। समस्या यह है: मेरी सभी विशेषताएँ अब HTML प्रारूप में हैं, जो google धरती में पॉपअप जानकारी बॉक्स बनाती है। जब मैं वापस .shp में बदलने की कोशिश करता हूं, तो मेरी विशेषताएँ एक (Google द्वारा निर्मित) "विवरण" फ़ील्ड में लुम्प हो जाती हैं। और मेरी सभी विशेषताओं और सूचनाओं को एक ही सेल में रखा गया है। क्या "विवरण" फ़ील्ड से डेटा निकालने का कोई तरीका है। यहां तक ​​कि अगर मैं ऐसा करता हूं, तो क्या html प्रारूप से छुटकारा पाने और इसे उपयोग करने योग्य बनाने का एक आसान तरीका है?

यह वही है जो मुझे कुछ मंचों पर मिली "फ्यूजन टेबल" पद्धति का उपयोग करके मिलता है। आप HTML को बाईं ओर देख सकते हैं, यह आगे भी दिखाता है।

http://s6.postimg.org/uf7jeuksh/problems.png

मैं ArcGIS डेस्कटॉप 10.2 का उपयोग कर रहा हूं।


स्वरूपों के बीच कनवर्ट करने के लिए आप क्या उपयोग करते हैं? क्या आप इसके बजाय ogr2ogr या QGIS आज़मा सकते हैं?
Bugmenot123

जवाबों:


3

मैंने अभी पुष्टि की है कि डेटा इंटरऑपरेबिलिटी एक्सटेंशन का उपयोग करके बनाया गया एक स्पेटियल ईटीएल टूल आपके केएमएल / केएमजेड फ़ाइल की विशेषताओं को वापस टैक्ट में स्कीमा के साथ एक शेपफाइल में लाएगा। उपकरण निर्माण विज़ार्ड में बस डायनामिक स्कीमा विकल्प चुनें :

स्थानिक ईटीएल कदम


आस-पास का कार्य आपके द्वारा आवश्यक विभिन्न विशेषता फ़ील्ड के मानों के लिए विवरण फ़ील्ड को पार्स करना और उन्हें उपयुक्त फ़ील्ड में कॉपी करना होगा। और अगली बार, अपने ग्राहक को एक एक्सेल स्प्रेड शीट या कुछ में विशेषताओं को जोड़ने के लिए प्राप्त करें ताकि आप इसे अपडेट करने के लिए अपने शेपफाइल में वापस शामिल कर सकें।


1
मुझे लगता है कि इस बिंदु पर मेरा एकमात्र समाधान है। लेकिन मैं निश्चित रूप से अगली बार एक एक्सेल स्प्रेड शीट शामिल करूंगा!
केटी बी।

क्या आपके पास आर्कजीआईएस के लिए डेटा इंटरऑपरेबिलिटी एक्सटेंशन तक पहुंच है? मेरे पास इस मुद्दे के लिए कोई अनुभव नहीं है, लेकिन वहां ऐसे लेखक हो सकते हैं जो आपके एट्रीब्यूट्स को हटा सकते हैं
एडम

सेफ सॉफ्टवेयर से FME (जो डेटा इंटरऑपरेबिलिटी पर आधारित है) वह भी करेगा जो आपको चाहिए, लेकिन यह महंगा भी है।
एडम

3

मुझे पहले QGIS में किमी को खोलना था और एक आकृति के रूप में सहेजना था और इसने विशेषताओं को बनाए रखा। QGIS में, वेक्टर डेटा जोड़ें और ब्राउज़ करें के तहत, "कीहोल मार्कअप लैंग्वेज (KML)" के प्रकार की फ़ाइलों को KML में ब्राउज़ करें जिसे आप आयात करना चाहते हैं, फिर खोलें पर क्लिक करें। केएमएल से एक आकृति के लिए आयातित वस्तुओं को सहेजें। ArcMap में शेपफाइल आयात करने पर, आपको सभी विशेषताओं को बनाए रखना दिखाई देगा।


2

यह उपकरण, केएमएल द्वारा विकसित केएमएल को निर्यात काम करता है।

शैलियों के साथ कुछ मुद्दे हैं लेकिन कम से कम रंग और विशेषताएँ सही हैं, और विशेषताओं, लेबल, आदि के साथ खेलने के लिए बहुत सारे विकल्प हैं ...


2

मुझे केवल एक क्षेत्र की आवश्यकता थी, जिसमें एक तारीख स्ट्रिंग थी। आर्कमैप का उपयोग करके, मैं इसे निकालने के लिए क्षेत्र कैलकुलेटर का उपयोग करके इसे हल करने में सक्षम था। यदि आपको केवल कुछ क्षेत्रों को निकालने की आवश्यकता है, तो यह आपके लिए काम कर सकता है, भले ही थोड़ा थकाऊ:

निम्न चरण आपको HTML टैग के आधार पर विवरण फ़ील्ड से उप-स्ट्रिंग और आपकी तालिका में संग्रहीत डेटा की लेथ को काटने के लिए फ़ील्ड कैलकुलेटर में उपयोग करने के लिए VB की एक पंक्ति बनाने में मदद करेंगे।

  1. GoogleEarth में, अपना KML / KMZ खोलें, पॉपअप खोलने के लिए एक सुविधा पर क्लिक करें। उस फ़ील्ड का सटीक नाम पहचानें जिसे आप पुनर्प्राप्त करना चाहते हैं। खान को "DATE" कहा जाता है
  2. ArcMap में, KML / KMZ आयात करते समय आपके द्वारा बनाई गई परत की विशेषता तालिका खोलें।
  3. विवरण फ़ील्ड की पहचान करें। मेरे डेटा में इसे "पॉपअपइन्फो" कहा जाता है
  4. पहले रिकॉर्ड में, "पॉपअपइन्फो" सेल में राइट-क्लिक करें, और "कॉपी" पर क्लिक करें
  5. नोटपैड खोलें और सेल की सामग्री को पेस्ट करें। अब आप पॉप-अप के लिए HTML देखेंगे।
  6. KML / KMZ (मेरे मामले में, "DATE") से फ़ील्ड नाम खोजने के लिए ctrl-F का उपयोग करें। यहां एक स्क्रीनशॉट दिखाया गया है, जिसमें मुझे ध्यान से HTML लाइन दिखाई दे रही है। यहां छवि विवरण दर्ज करें
  7. अपने डेटा के प्रारंभ होने तक फ़ील्ड नाम की शुरुआत से रिक्त स्थान सहित वर्णों की संख्या की गणना करें। मेरे मामले में 15 पात्र हैं।
  8. निर्धारित करें कि आप कितने वर्ण निकालना चाहते हैं। मेरे विकल्प के लिए, मुझे 19 की आवश्यकता है। उदाहरण के लिए, यदि आपको केवल AZ और WY जैसे राज्य कोडों की आवश्यकता है, तो आपको केवल 2. की आवश्यकता हो सकती है। यदि आपके डेटा में इस क्षेत्र में लगातार लंबाई प्रविष्टियां नहीं हैं, तो सबसे लंबे समय तक। संपादित करें: आप अतिरिक्त वर्णों को बाद में मैन्युअल रूप से या इंस्ट्र () और आरटीआरएम () वीबी फ़ंक्शन का उपयोग करके निकाल सकते हैं। यदि आपको मदद की जरूरत हो तो मुझे पोस्ट या मैसेज करें।
  9. आर्कमैप में, अपनी परत में एक नया पाठ क्षेत्र जोड़ें, और इसे कम से कम उतने ही वर्णों के रूप में दें जितना आपके डेटा के लिए आवश्यक होगा। डिफ़ॉल्ट 50 है।

  10. फिर, अपने नए फ़ील्ड के लिए फ़ील्ड कैलकुलेटर खोलें। डेटा की शुरुआत InStr () फ़ंक्शन का उपयोग करके पाई जाती है, और डेटा को मिड () फ़ंक्शन का उपयोग करके निकाला जाता है। निम्नलिखित VB कमांड टाइप करें:

    Mid([PopupInfo],InStr([PopupInfo],"DATE")+15,19)

बेशक, आपके लिए मेरे क्षेत्र के नाम (चरण 3 और 6 से) को स्वैप करें, और संख्याओं की लंबाई 15 और 19 को अपने सबस्ट्रिंग की लंबाई में बदल दें (चरण 7 और 8 में पाया जाता है)।

ऊपर VB लाइन में:

  • [पॉपअपइंफो] कष्टप्रद क्षेत्र का नाम है जिसमें केएमएल पॉप-अप के लिए HTML शामिल है।
  • "DATE" KML फ़ील्ड नाम और HTML टैग है जिसमें वह डेटा है जिसे मैं निकालना चाहता हूं।
  • 15 दिनांक टैग की शुरुआत से वास्तविक तिथि डेटा की शुरुआत तक वर्णों की संख्या है।
  • 19 आप की तारीख स्ट्रिंग में वर्णों की संख्या है जिसे हम बनाए रखना चाहते हैं।

1

यहाँ एक मार्गदर्शिका है जो मैंने पाया है कि विशेषताओं को संरक्षित करते हुए केएमएल फ़ाइलों को .shp फ़ाइलों में बदलने के लिए आर्कपैम, गूगल ड्राइव फ्यूजन टेबल्स और एमएस एक्सेल का उपयोग करते हुए कुछ चरणों के माध्यम से आपको चलता है।

उस साइट से लिंक करें जिसमें गाइड है


हां, लेकिन यह मेरी समस्या का समाधान नहीं करता है। मेरी विशेषताएँ अभी भी HTML प्रारूप में "विवरण" फ़ील्ड में मिलती हैं। केएमएल टू लेयर टूल मेरी स्थिति के लिए काम नहीं करता है। मैंने अन्य आर्सेस्क्रिप्स भी आज़माए हैं।
केटी बी।

मेरा संपादित उत्तर देखें।
कैमरून स्लोअन

फिर भी, फ़्यूज़न टेबल पद्धति का उपयोग करते समय मैंने जो छवि अपने मूल प्रश्न में लिंक की है वह मेरा परिणाम है। यह मेरी स्थिति के लिए काम नहीं करता है।
केटी बी।

क्या आप इसे एक्सेल में लाए?
कैमरून स्लोनन

हाँ, एक ही मुद्दा। मुझे बस एक और फ़ोरम साइट मिली, जहाँ किसी और की समस्या हो रही है। ऐसा लगता है कि मुझे स्क्रिप्ट की 1000 लाइनों से गुजरना होगा और कोड को हटाना होगा या "ढूंढना और बदलना" करने की कोशिश करना चाहिए, मैं आपकी मदद की सराहना करता हूं।
केटी बी।

1

मैं इस काम को कर्सर और सूचियों का उपयोग करके पॉपअपइंफो एक्सएमएल क्षेत्र को उपयोगी मूल्यों में विभाजित करने में सक्षम हूं

  1. वांछित समन्वय प्रणाली में शामिल होने के लिए टूल टूल और प्रोजेक्ट टूल्स के लिए चापलूसी KML का उपयोग करें (मैं मूल रूपांतरण आउटपुट में फ़ील्ड जोड़ने में समस्याओं में भाग गया, जो इसके साथ जुड़ी परत फ़ाइल के कारण हो सकता है)

  2. पहली पंक्ति से पॉपअपइन्फो स्ट्रिंग प्राप्त करने के लिए .da.SearchCursor का उपयोग करें। फिर इसे '<' के आधार पर एक सूची में विभाजित करें, पहले दो मान (Google धरती से लेबल फ़ील्ड) को हटा दें और शेष मान रखें जिन्हें 'td>' टैग है, लेकिन 'td>' टैग को नई सूची में बंद नहीं करना है फ़ील्ड नाम (यहां तक ​​कि अनुक्रमणिका) और फ़ील्ड मान (विषम अनुक्रमित)

  3. फ़ील्ड नामों की सूची के माध्यम से लंघन करें चापलूसी के साथ। सभी क्षेत्रों को जोड़ने के लिए संशोधन करें (यदि वे पहले से मौजूद हैं तो छोड़ें)

  4. पॉपअपइन्फो को सभी पंक्तियों के लिए प्राप्त करने के लिए .da.UpdateCursor का उपयोग करें, फिर अपने कर्सर के साथ बस नई सूचियों को विभाजित करें और बनाएं

  5. इस समय, पंक्तियों को अपडेट करने के लिए सभी विषम सूचकांक मानों का उपयोग करें (यदि मैं% 2 <> 0: पंक्ति [(i-1) / 2] = सूची [i]) और फिर कर्सर .updateRow (पंक्ति)


1

Bugmenot123 ने पहले ही इसका उल्लेख किया था, लेकिन ogr2ogr आकार-प्रकार और किमी के बीच परिवर्तित हो सकता है।

केएमएल और आकारफाइल (एसएचपी) प्रारूप के बीच परिवर्तित? कवर करता है कि दोनों के बीच कैसे रूपांतरण किया जाए।


0

अद्यतन: यदि आप एक ही समस्या के साथ इस धागे में आते हैं, तो आपके लिए वहाँ एक उपकरण है! की जाँच करें https://mygeodata.cloud/

मैं वास्तव में अच्छा काम करता हूं। मैं अपने KML को अपलोड करने में सक्षम था और निर्यात की गई शेपफाइल में मेरे सभी गुण सही तरीके से अपने क्षेत्रों में थे। केवल नकारात्मक पक्ष यह है कि "मुक्त" रूपांतरणों की एक सीमित संख्या है।


-3

इस रूपांतरण समस्या का अभी भी कोई सरल समाधान नहीं है। यह पिछले कई वर्षों में कई बार यहाँ पूछा गया है:

kml-इन-QGIS-साथ-अतिरिक्त-डेटा

संरक्षण-गुण-दौरान-kml2shp-रूपांतरण में ArcGIS के लिए डेस्कटॉप

धर्मांतरित-kml करने वाली शेपफ़ाइल-बिना-खोने-विशेषता-डेटा

उनके KmltoLayer रूपांतरण उपकरण के लिए esri की व्याख्या:

"एस्रीएल में केएमएल उपकरण के 'मालिक' के रूप में मैं कह सकता हूं: केएमएल के अंदर विस्तारित डेटा तत्व किसी भी संस्करण (9.3-10.3) पर आर्कगिस के साथ केएमएल टू लेयर टूल का उपयोग करते समय फ़ील्ड विशेषताओं में अनुवाद नहीं करेगा। लिनक्स पर विंडोज, या आर्कजीस सर्वर। इसका समर्थन करने के लिए एक वृद्धि अनुरोध है जिसे हम भविष्य के रिलीज के लिए विचार कर रहे हैं। "


2
हे - मैं आपके उत्तर के लिए व्यक्तिगत अपराध लेता हूं। यदि आप मेरी टिप्पणियों को कॉपी और पेस्ट करने जा रहे हैं और उन्हें उद्धरणों में डाल रहे हैं, तो निश्चित रूप से एक्सटेंशन खरीदने के बारे में अपनी टिप्पणी न जोड़ें।
कहिम्बा

@ सर्जियो निश्चित रूप से इस मुद्दे का समाधान है, डेटा इंटरऑपरेबिलिटी एक्सटेंशन में। यह सिर्फ ऐसा लगता है कि यह एक समाधान नहीं है जो आपको पसंद है।
एडम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.