.NET- র জন্য নিখরচায় ওপেনসোর্স শেফিল লেখক সন্ধান করা


11

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

আমি তদন্ত করেছি এবং নিম্নলিখিতগুলি খুঁজে পেয়েছি:

এমন কোনও লাইব্রেরি রয়েছে যা নতুন শেফফিল লেখার জন্য ব্যবহার করা যেতে পারে?

উত্তর:


5

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

আপনি যদি জানেন যে আপনার কোনটি প্রয়োজন (যা আমি না করি) তবে এটি নুগেটে পৃথক অ্যাসেম্বলিগুলি রয়েছে ।

এখানে একটি নমুনা যা অন্তত সম্ভাবনাটি দেখায়। আরও পঠনযোগ্য নমুনার জন্য কোনও ডব্লিউকেটি পাঠক / রূপান্তরকারী উপস্থিত থাকলে এটি দুর্দান্ত হবে তবে এটি অনুপস্থিত বলে মনে হচ্ছে।


9

আমি তোমার কষ্টটা অনুভব করতে পারছি. আমি নেটটোপোলজি স্যুট (v1.13) এর সাথে একই ধরণের জিনিসটি দিয়েছি এবং ইউনিট পরীক্ষাগুলি দেখে কিছুটা সাফল্য পেয়েছি।

প্রথমে, আপনি ডটস্পটিয়াল লাইব্রেরি যাচাই করতে পারেন যা ডিএস শেফফিল অপারেশন সম্পর্কিত নির্দিষ্ট প্রশ্নে উল্লেখ করা হয়েছিল

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

1) এনটিএস (1.13.0) বাইনারি ডাউনলোড করুন

2) নিম্নলিখিত সমাবেশগুলি উল্লেখ করুন:

-জিওপিআই, নেটটপোলজি স্যুট, নেটটপোলজিসুইট.আইও, নেটটপোলজি স্যুইট.আইও.জিওটুলস (অনুমান করুন যে এটি শেষেরটি নির্ধারণ করতে কতক্ষণ সময় লেগেছে)

3) কিছু কোড লিখুন (এটি 10 ​​মিনিটের হ্যাক জব)

নেটটপোলজি স্যুট, নেটটপোলজিসুইট.আইও, নেটটপোলজিসুয়েট.ফাইচারস, জিওএপিআই, জিওএপিআই.জ্যামিত্রিগুলির জন্য বিবৃতি ব্যবহার করে যুক্ত করুন (দুঃখিত আমি এগুলি কীভাবে ফর্ম্যাট করতে পারি তা বুঝতে পারি না)

        string path = @"C:\data\atreides";
        string firstNameAttribute = "firstname";
        string lastNameAttribute = "lastname";

        //create geometry factory
        IGeometryFactory geomFactory = NtsGeometryServices.Instance.CreateGeometryFactory();

        //create the default table with fields - alternately use DBaseField classes
        AttributesTable t1 = new AttributesTable();
        t1.AddAttribute(firstNameAttribute, "Paul");
        t1.AddAttribute(lastNameAttribute, "Atreides");

        AttributesTable t2 = new AttributesTable();
        t2.AddAttribute(firstNameAttribute, "Duncan");
        t2.AddAttribute(lastNameAttribute, "Idaho");

        //create geometries and features
        IGeometry g1 = geomFactory.CreatePoint(new Coordinate(300000, 5000000));
        IGeometry g2 = geomFactory.CreatePoint(new Coordinate(300200, 5000300));

        Feature feat1 = new Feature(g1, t1);
        Feature feat2 = new Feature(g2, t2);

        //create attribute list
        IList<Feature> features = new List<Feature>() { feat1, feat2 };
        ShapefileDataWriter writer = new ShapefileDataWriter(path) { Header = ShapefileDataWriter.GetHeader(features[0], features.Count) };

        System.Collections.IList featList = (System.Collections.IList)features;
        writer.Write(featList);

সুতরাং, ভাল ডকুমেন্টেড নয় তবে এটি মোটামুটি বিন্দু এবং একবার আপনি যেতে গেলে অঙ্কুর।


2

এছাড়াও শাপেলিব রয়েছে: http://shapelib.maptools.org/

একটি। নেট আবরণ ওয়েবপৃষ্ঠায় তালিকাভুক্ত করা হয়।


1

আপনি মানচিত্রের কথা বিবেচনা করতে পারেন ।

কোনও উইন্ডোজ ফর্ম ভিত্তিক অ্যাপ্লিকেশনকে জিআইএস এবং ম্যাপিং কার্যকারিতা সরবরাহ করতে ম্যাপওয়াইনজিআইএসএক্সএক্স ব্যবহার করা হয়। MapWinGIS.ocx হ'ল একটি নিখরচায় এবং ওপেন উত্স সি ++ ভিত্তিক ভৌগলিক তথ্য সিস্টেম প্রোগ্রামিং অ্যাক্টিএক্স নিয়ন্ত্রণ এবং অ্যাপ্লিকেশন প্রোগ্রামার ইন্টারফেস (এপিআই) যা ভিজ্যুয়াল বেসিক, সি #, ডেলফি বা অন্যান্য ভাষায় উইন্ডোজ ফর্মে যুক্ত করা যেতে পারে যা আপনার অ্যাপ্লিকেশন সরবরাহ করে একটি মানচিত্র সহ।



1

হতে পারে একটি প্রসারিত কিন্তু ...

পাইএসএইচপি আপনাকে বিশুদ্ধ পাইথনে বৈশিষ্ট্য-স্তরের শেফফাইল নিয়ন্ত্রণ বা আরও অনেক কিছু দেয়: http://code.google.com/p/pyshp/

আয়রন পাইথন আসুন আপনি। নেট সিএলআর: খালি পাইথিন স্ক্রিপ্টগুলি চালনা করুন: http://ironpython.net/

আয়রন পাইথন স্ক্রিপ্টটিকে একটি নেট নেট লাইব্রেরিতে পরিণত করুন যেমন এই থ্রেড: /programming/1578010/ironpython-2-6-py-exe/9609120#9609120


1

যদিও এর উত্তর ইতিমধ্যে দেওয়া হয়ে গেছে, পরবর্তী তারিখে এটি দেখার জন্য যে পরামর্শ দেওয়া হয়েছে তা হ'ল ইজিআইএস (ইজি জিআইএস) যা আকারের ফাইলগুলি বৈশিষ্ট্য অনুসারে লেখার বৈশিষ্ট্য দেয়।

ShapeFileWriter sfw = ShapeFileWriter.CreateWriter(dir,fileName,shapeType,dataFieldHeadings);
sfw.AddRecord(pointArray, pointCount, fieldData);

এটি পছন্দের শেফফাইলে একটি বৈশিষ্ট্য যুক্ত করে এবং অ্যাডকর্ড পদ্ধতিতে 7 ওভারলোড রয়েছে।


আপনি কি কোনও কোড স্নিপেট পোস্ট করতে পারেন যা দেখায় যে এটি কীভাবে সম্ভব? লিঙ্কটি মারা যাওয়ার ক্ষেত্রে তার বর্তমান অবস্থায় উত্তরটি নিজের পক্ষে দাঁড়াতে পারে না।
দেবদত্ত টেংশে

0

আমি ইজিজিআইএস সুপারিশ করতে পারি। Https://www.easygisdotnet.com থেকে সর্বশেষতম সংস্করণটি ডাউনলোড করুন , এতে EGIS.ShapeFileLibআপনার প্রথম আকারের ফাইলটি তৈরি করে কয়েকটি লাইন অন্তর্ভুক্ত করুন । নীচের কোডটি একটি বিশিষ্ট চর ক্ষেত্র "নাম" এবং একটি আকৃতি ("ফার্স্ট রেকর্ড" নামের একটি আয়তক্ষেত্র) সহ একটি বহুভুজ আকৃতি তৈরি করে।

DbfFieldDesc[] lFields = new DbfFieldDesc[1];
DbfFieldDesc fld1 = new DbfFieldDesc();
fld1.FieldName = "Name";
fld1.FieldType = DbfFieldType.Character;
fld1.FieldLength = 16;
lFields[0] = fld1;
ShapeFileWriter sfw = ShapeFileWriter.CreateWriter(sExportDir, "testShapeFile", ShapeType.Polygon, lFields);
PointD[] lPoints = new PointD[4];
lPoints[0] = new PointD(1, 1);
lPoints[1] = new PointD(1, 2);
lPoints[2] = new PointD(2, 2);
lPoints[3] = new PointD(2, 1);
String[] lFieldValues = new String[1];
lFieldValues[0] = "FirstRecord";
sfw.AddRecord(lPoints, 4, lFieldValues);
sfw.Close();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.