কিউজিআইএস থেকে রফতানি করতে ক্ষেত্রগুলি কীভাবে নির্দিষ্ট করবেন?


9

আমি কিউজিআইএস ২.০.১ ব্যবহার করছি এবং একটি এমএস এসকিউএল সার্ভার স্থানিকভাবে সক্ষম ডাটাবেস (ইএসআরআই নয়) এর সাথে সংযুক্ত আছি। আমি স্তরটির সাথে সংযোগ স্থাপন করতে এবং এটি ঠিক আমার টোসিতে লোড করতে সক্ষম। আমি এমন অনেকগুলি ক্ষেত্র লুকিয়ে রেখেছি যা দৃশ্যমানতার জন্য গুরুত্বপূর্ণ নয়।

এখন আমি সেই ডেটা অন্য ডেটা ধরণের রফতানি করতে চাই (আমরা এই উদাহরণের জন্য শেফফিল ব্যবহার করব)। আমি যখন স্তরটি ডান-ক্লিক করি, "হিসাবে সংরক্ষণ করুন" নির্বাচন করুন এবং আউটপুট ফাইলটি সংজ্ঞায়িত করি, আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

ভেক্টর ফাইলটিতে রফতানি ব্যর্থ হয়েছে। ত্রুটি: গ্লোবালআইডি ফিল্ডের জন্য অসমর্থিত প্রকার

দ্রষ্টব্য 1 : আমি যদি ডায়ালগ বাক্সে "এট্রিবিউট তৈরিটি ছেড়ে যান" পরীক্ষা করে দেখি তবে শেফফাইলটি কোনও ত্রুটি ছাড়াই তৈরি করা হবে।

দ্রষ্টব্য 2 : আর্কজিআইএসের এই সমস্যা নেই, এটি কেবল জিইউইডি ক্ষেত্রটিকে "পাঠ্য" টাইপে রূপান্তর করে।

টেবিলটির দিকে তাকিয়ে, আমি যে ক্ষেত্রগুলি লুকিয়ে রেখেছি তার মধ্যে একটি হ'ল এসকিউএল টাইপ <অনন্য পরিচয়কারী > এর একটি জিইউডি , যা সমস্ত সম্ভাবনার মধ্যেই অপরাধী। এটি সমাধানের প্রয়াসে আমি ক্ষেত্রটি "গোপন" করেছিলাম। আমি ধরে নিয়েছিলাম যে ক্ষেত্রটি লুকানো ছিল তাই কিউজিআইএস এই ক্ষেত্রটি রফতানি করার চেষ্টা করবে না, তবে এটি পরিণত হয়নি।

আপনি কিউজিআইএস থেকে রফতানি করতে চান এমন ক্ষেত্রগুলি সংজ্ঞায়িত করতে পারেন?

কিউজিআইএসের পক্ষে কেবল "দৃশ্যমান" ক্ষেত্রগুলি রফতানি করা সম্ভব? বা কিউজিআইএস থেকে এটি করার অন্য কোনও বিকল্প উপায় আছে (সম্ভবত একটি ogr2ogr ক্যোয়ারির মাধ্যমে ক্ষেত্রগুলি নির্ধারণ করুন)? এটি কিউজিআইএসের একটি ঘাটতির মতো বলে মনে হচ্ছে যদি আমি কোন ক্ষেত্র রফতানি করতে পারি না।

আপডেট: আমি আউটপুট ক্ষেত্রগুলিকে সীমাবদ্ধ করতে পারি কিনা তা দেখার জন্য আমি একটি নমুনা শেফফিল ব্যবহার করে একটি পরীক্ষা করেছি। নিম্নলিখিত ogr2ogr কমান্ড লাইন "নাম" ব্যতীত সমস্ত ক্ষেত্র কাজ করেছে এবং মুছে ফেলেছে:

ogr2ogr -f "ESRI Shapefile" test.shp city.shp -sql "select name from city"

তবে কিউজিআইএস ব্যবহার করে এবং যুক্ত করা হচ্ছে:

-sql "select name from city"

"সংরক্ষণ করুন" কথোপকথনের "স্তর" বিভাগে কেবলমাত্র একক ক্ষেত্রের সাথে কোনও শেফফিলের ফলসই হয়নি। সুতরাং আমি সত্যিই দেখতে পাচ্ছি না আমি কীভাবে কেবল কয়েকটি কয়েকটি ক্ষেত্র দেখানোর জন্য ফাইল আউটপুট ম্যানিপুলেট করতে পারি। কোন সাহায্য প্রশংসা করা হয়।


যদি ogr2ogr এটি করতে পারে তবে কিউজিআইএস পারে, কারণ এটি হ'ল সরঞ্জাম যা পটভূমিতে চলছে। দুর্ভাগ্যক্রমে, আমার কাছে পরীক্ষার জন্য কোনও এসকিউএল সার্ভার ডিবি নেই ...
আন্ডার ডার্ক

ঠিক। সুতরাং আমি -sql "select <fields> from <table>""সংরক্ষণাগার হিসাবে" কথোপকথনের "স্তর" অংশে (ফিল্ডস> থেকে গ্লোবালআইডি ফিল্ড বাদ দিয়ে) যুক্ত করার চেষ্টা করেছি , তবে একই ত্রুটি এখনও পপ আপ হয়েছে। আমি কি এই কোড ব্লকটির অপব্যবহার করেছি, বা এটি কোনও বাগ?
রায়ানকডাল্টন

এই উত্তরটি পরামর্শ দেয় -sql gis.stackexchange.com/questions/30691/… এর পরিবর্তে নির্বাচন করুন ... আমার মনে হয় এটি স্তর উত্সরে নয়, ডেটা উত্স বিভাগে চলে।
আন্ডার ডার্ক

আপনার প্রস্তাবগুলির মধ্যে যে কোনওটিই আমার জন্য ভাগ্য নয় আমি "ওজিআর তৈরির বিকল্পগুলি" এর "স্তর" এবং "ডেটা উত্স" উভয় ক্ষেত্রেই সিলেক্ট এবং -এসএসএল বিকল্পগুলির একাধিক সংমিশ্রণ চেষ্টা করেছি :( অবশ্যই, আমি হতে পারি না প্রথম ক্ষেত্রের একটি উপসেট রফতানি করার প্রয়োজন সহ ...
রায়ানকডাল্টন

বিকাশকারীদের সাথে পরীক্ষা করার উপযুক্ত হতে পারে। একটি বাগ হতে পারে।
আন্ডার ডার্ক

উত্তর:


1

যদি এটি ogr2ogr এর সাথে কমান্ড লাইনে আপনার জন্য কাজ করে তবে আমি মনে করি এটি ব্যবহারের সেরা সমাধান। আপনি আপনার এমএসএসকিউএল ডাটাবেস থেকে শেফফাইল তৈরি করতে একটি সাধারণ ব্যাট ফাইল লিখতে পারেন। স্পষ্টতই আপনি ডেটা সম্পাদনা করতে পারবেন না এবং সেভাবে সার্ভারে ফিরে সংরক্ষণ করতে পারবেন।

কিউজিআইএস-এর ডেটা সোর্স এবং লেয়ার ইনপুট বাক্স রয়েছে তবে সেগুলি কেবল ogr2ogr এর -dsco এবং -lco পরামিতিগুলির জন্য। আপনার প্রয়োজনের জন্য ওজিআর শেফফাইল ড্রাইভারের কোনও কার্যকর ডিসকো বা এলসিও নেই:

http://www.gdal.org/ogr2ogr.html

http://www.gdal.org/ogr/drv_shapefile.html

বিকল্পভাবে, অজগর প্লাগইন লিখতে পারা উচিত যা আপনার প্রয়োজনে এসকিউএল সেলেক্ট কমান্ড সহ সার্ভার থেকে ডেটা অনুরোধ করে। এটি এমনকি ডেটা সম্পাদনা সক্ষম করবে।


এখনও অবধি এটি সবচেয়ে কার্যকর ধারণা মত মনে হচ্ছে। কিউজিআইএস ব্যবহারকারীর ইন্টারফেস থেকে সরাসরি নিজের ওজিআর 2 সিএনএক্স সিনট্যাক্স রোল করার জন্য কি ওগ্রোগোগল কমান্ড-লাইনকে কল করার কোনও উপায় আছে?
রায়ানকডালটন

সরাসরি নয় তবে সেখানে আপনার ogr2ogr কমান্ড প্রবেশ করতে আপনি gdalwarp টার্মিনাল হাইজ্যাক করতে পারেন। আপনি একটি ত্রুটি পাবেন যে স্তরটি তৈরি করা হয়নি তবে এটি ফাইল সিস্টেমের ক্ষেত্রেই রয়েছে। ফাইলটি ইতিমধ্যে উপস্থিত থাকলে কী হবে তা নিশ্চিত নয়, তাই আরও ভাল-যোগও লিখুন। এবং ফাইলগুলির জন্য পুরো পথের নামগুলি আরও ভাল ব্যবহার করুন।
AndreJ

বিকল্পভাবে, আপনি কি কখনও এমএসএসকিউএল এবং কিউজিআইএস-এর মধ্যস্থতা হিসাবে একটি জিডিএল ভিআরটি ভার্চুয়াল ফাইলটি ব্যবহার করার চেষ্টা করেছেন?
AndreJ

আমার কাছে নেই, তবে রাস্টারদের সাথে কাজ করার জন্য জিডিএল নয়? আমি একটি পয়েন্ট ভেক্টর স্তর সঙ্গে কাজ করছি। যদিও আমি "ভার্চুয়াল টেবিল" এর মতামত হিসাবে পছন্দ করি। কিউজিআইএস 2 এর কোনও মেমোরি স্তর নেই যা আমরা লিখতে পারি?
রায়ানকডালটন

1
এছাড়া চালক ogrvrt একটি GDAL হল: gdal.org/ogr/drv_vrt.html । তবে আমি মনে করি এটি আরও ভাল একটি প্রশ্ন করা উচিত।
আন্দ্রেজে

0

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনাকে TOC এ লেয়ারের জন্য অ্যাট্রিবিউট টেবিলটি পরীক্ষা করতে হবে এবং যদি গ্লোবালআইডি ফিল্ড বিদ্যমান থাকে। সম্পাদনা মোডে টগল করুন, রফতানির সময় সমস্যা তৈরি করে এমন কলামটি সরিয়ে ফেলুন এবং উইন্ডোটি বন্ধ করুন। তারপরে শেফফাইল বা আপনার যে কোনও আউটপুট ফর্ম্যাট হিসাবে সংরক্ষণ করুন। আশা করি এটা কাজে লাগবে.


1
এসকিউএল সার্ভারের টেবিলের ক্ষেত্রটি মুছে ফেলা ভাল পছন্দ কিনা তা আমি নিশ্চিত নই। এটি এখনও সার্ভারের প্রয়োজন হতে পারে।
আন্দ্রেজে

আমি মনে করি QGIS TOC স্তর থেকে কোনও অ্যাট্রিবিউট কলাম মুছে ফেলা QGIS বাফারে আপডেট হওয়া কাঠামোটি সংরক্ষণ করে এবং আপনাকে অন্য ফর্ম্যাটে ফাইল রফতানি করার অনুমতি দেয়। একবার আপনি রফতানি শেষ করার পরে স্তরটিতে পরিবর্তনগুলি সংরক্ষণ করবেন না (যা আপনি মুছে
ফেলেছেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.