পোস্টগ্রেএসকিউএল থেকে ডিএক্সএফ ফাইল পাওয়া যাচ্ছে


10

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

আমি উইন্ডোজ ওএসজিও 4 ডাব্লু স্যুট থেকে পোস্টজিআইএস, জিডিএল, পোস্টগ্রাইএসকিউএল এবং পাইথন ব্যবহার করছি।

আমি ধারণা করছি যে আমি ogr2ogr কিছুটা ব্যবহার করা উচিত:

$ ogr2ogr -sql "SELECT * FROM some_table" -f "dxf" outputfile.dxf -overwrite "PG:dbname=mydb user=dbusername password=dbpassword"

তবে আমি যখন উপযুক্ত মানগুলির সাথে এটি করি, তখন আমি এই জাতীয় ত্রুটিগুলির একটি সিরিজ পাই:

ERROR 1: DXF layer does not support arbitrary field creation, field 'objectid' not created. 

স্তরের প্রতিটি বৈশিষ্ট্য কলামের জন্য একটি ত্রুটির ফলস্বরূপ some_tableতবে আমি একটি ডিএক্সএফ ফাইল পাই।

যদি আমি ইতিমধ্যে একটি .dxf ফাইল তৈরি করেছি এবং আমি উপরের কমান্ডটি পুনরায় চালু করেছি ( -overwriteবিকল্প সহ ), আমি পরিবর্তে এই ত্রুটিটি পেয়েছি:

Layer sql_statement not found, and CreateLayer not supported by driver. ERROR 1: Terminating translation prematurely after failed translation from sql statement.

GDAL_DATAপরিবেশের পরিবর্তনশীল সঠিকভাবে সেট করা আছে কিনা তা নিশ্চিত করার জন্য আমি ইতিমধ্যে পরীক্ষা করে দেখেছি । (থেকে C:\OSGeo4W\share\gdal)

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


একটি প্রাসঙ্গিক লিঙ্কটি পাওয়া গেছে: fwarmerdam.blogspot.com/2010/07/ogr-dxf-upgrade.html
বেনিয়ামিনগোল্ডার

উত্তর:


9

বেঞ্জামিন,

ডিএক্সএফ (ওজিআর দ্বারা অনুমিত হিসাবে) নির্বিচারে জিআইএস বৈশিষ্ট্যগুলি সমর্থন করে না। এটির মতো একটি নির্দিষ্ট স্কিমা রয়েছে:

স্তর: স্ট্রিং (0.0)
উপশ্রেণী: স্ট্রিং (0.0)
এক্সটেন্ডেড এন্টিটি: স্ট্রিং (0.0)
লিনাইটাইপ: স্ট্রিং (0.0)
সত্তা হ্যান্ডেল: স্ট্রিং (0.0)

এবং এর মধ্যে কেবল কয়েকটি লিখিতভাবে পরীক্ষা করা হয়। সরলতম সমীকরণটি হ'ল -স্কিপলচার পদ্ধতিটি ব্যবহার করা যদিও এটি দেখে মনে হয় যে ত্রুটি সত্ত্বেও অনুবাদটি এগিয়ে চলছে।

ওভারওরাইট হিসাবে - এটি ফর্ম্যাটগুলির জন্য প্রযোজ্য যেগুলি লেয়ার মোছার সমর্থন করে যা ডিএক্সএফ না করে। Ogr2ogr চালানোর আগে কেবল বিদ্যমান ডিএক্সএফ ফাইলটি প্রাক-মুছুন।


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

2

ফ্র্যাঙ্কের উত্তর এবং উস্টার শহরের "জিআইএস-কমপেনজেন্ট্রাম" থেকে ইঙ্গিত সহ (কেবল জার্মান ভাষায়)

http://gis.uster.ch/dokumentation/datenkonvertierung/ogr

আমি বুঝতে পেরেছি যে PostGIS থেকে dxf এর মতো করা যায়:

ogr2ogr -f DXF $TITLE$.dxf PG:"dbname='$DBNAME$' host='$HOST$' port='$PORT$' user='$USER$' password='$PASSWORD$'" -sql "select $COLUMN$ as Layer, the_geom from $TABLE$"

স্কেল-স্টেটমেন্টটি, শেষে, প্রতিটি সারির জন্য OL COLUMN er একটি স্তর তৈরি করে। সুতরাং আইডি বা প্রাসঙ্গিক নামের মতো কোনও OL COLUMN select নির্বাচন করা ভাল।

আমি এটি একটি 2 ডি বহুভুজ-ছক দিয়ে চেষ্টা করেছি। Dxf- ফাইলটি পলাইনগুলি বন্ধ করেনি। সম্ভবত স্কেল-স্ট্রিংয়ে "$ বহুভুজ Lin লিনেটাইপ হিসাবে" জাতীয় কিছু যুক্ত করা সম্ভব।

আপনি যদি একটি টেবিলে আপনার টেবিল থেকে সমস্ত জ্যামিতিগুলি চান তবে আপনি উস্টারের "জিআইএস-কোম্পেনজেন্ট্রাম" থেকে কোডটি ব্যবহার করতে পারেন

ogr2ogr -select '' -f DXF DXF $TITLE$.dxf PG:"dbname='$DBNAME$' host='$HOST$' port='$PORT$' user='$USER$' password='$PASSWORD$' schemas=$SCHEMA$ tables=$TABLE$(the_geom)"

উভয় বিবৃতিতে আপনি নিম্নলিখিত বিকল্পটি যুক্ত করতে পারেন:

-spat xmin ymin xmax ymax

আপনি যদি একটি স্থানিক সীমাবদ্ধতা চান।


1

ফ্র্যাঙ্ক যা বলেছিল তা আমার পরামর্শ হতে চলেছে।
এটিতে ইতিমধ্যে আপনার স্তর নামের সাথে একটি ডেক্সএফ তৈরি করুন এবং এটি টেম্পলেট হিসাবে ব্যবহার করুন।

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