GeoJSON (.geojson)
IETF স্ট্যান্ডার্ডGeoJSON ওয়েব মানচিত্রে প্রচলিত, তবে সমর্থন ভিন্ন। GitHub সীমাবদ্ধতার মধ্যে সমর্থিত ফাইল দেখায়; RFC 7946 দ্রাঘিমা আগে, অক্ষাংশ পরে নির্ধারণ করে।
GEOJSON থেকে KML-তে রূপান্তর করুন
বিনামূল্যের ব্রাউজারভিত্তিক GEOJSON-থেকে-KML রূপান্তরকারী। আপনার ডিভাইসেই ফাইল তাৎক্ষণিকভাবে রূপান্তর করুন।
ইনস্পেক্ট ও মেটাডেটা
অপারেটিং সিস্টেম এবং ফাইল অ্যানালাইজারগুলো শুরুর বাইনারি বাইট সিকোয়েন্স পরীক্ষা করে GeoJSON ফাইল শনাক্ত করে:
বাইট-লেভেল হেডার সিগনেচার (ম্যাজিক বাইটস)
অপারেটিং সিস্টেম এবং ফাইল অ্যানালাইজারগুলো শুরুর বাইনারি বাইট সিকোয়েন্স পরীক্ষা করে GeoJSON ফাইল শনাক্ত করে:
হেক্স সিগনেচার (অফসেট 0):
7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65ASCII রিপ্রেজেন্টেশন: {\n "type": "Feature
স্ট্যান্ডার্ডাইজেশন: IETF RFC 7946
প্রযুক্তিগত বৈশিষ্ট্য
| কন্টেইনার আর্কিটেকচার | RFC 7946 মেনে তৈরি JSON নথি, যাতে ভৌগোলিক Feature, FeatureCollection ও Geometry উপস্থাপন করা হয় |
| কম্প্রেশন | কম্প্রেশনবিহীন টেক্সট; HTTP-তে Gzip বা Brotli দিয়ে সহজেই কম্প্রেস করা যায় |
| বাইট এন্ডিয়াননেস | UTF-8 টেক্সট স্ট্রিম |
| কালার স্পেস | প্রযোজ্য নয় (ভূ-স্থানিক ডেটা) |
| চ্যানেল ও কাঠামো | Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection এবং কাস্টম প্রপার্টি |
| সর্বোচ্চ মাত্রা | World Geodetic System 1984 (WGS 84) স্থানাঙ্ক ক্ষেত্র: দ্রাঘিমাংশ (-180 থেকে +180), অক্ষাংশ (-90 থেকে +90) |
| স্বচ্ছতা | নেই |
| স্ট্রিমিং ও প্রোগ্রেসিভ | লাইন-ডিলিমিটেড GeoJSON (GeoJSONL / GeoJSONSeq) দিয়ে লক্ষ লক্ষ feature ধারাবাহিকভাবে স্ট্রিম করা যায় |
টেকনিক্যাল তুলনা ম্যাট্রিক্স: GeoJSON বনাম প্রতিযোগীগণ
| প্রযুক্তিগত বৈশিষ্ট্য | GeoJSON (বর্তমান) | KML | GPX | SHP |
|---|---|---|---|---|
| ওয়েব ম্যাপে ব্যবহার | ওয়েব GIS-এ সর্বজনীনভাবে ব্যবহৃত ডিফল্ট (১০০%) | গুগল আর্থ ডিফল্ট | GPS ডিভাইস ও ফিটনেস ডিফল্ট | ডেস্কটপ GIS-এর পুরোনো মান |
| কোঅর্ডিনেট অর্ডার | [দ্রাঘিমাংশ, অক্ষাংশ] (X, Y) | দ্রাঘিমাংশ, অক্ষাংশ, উচ্চতা | অক্ষাংশ, দ্রাঘিমাংশ | X, Y কোঅর্ডিনেট |
| সিনট্যাক্স স্টাইল | পরিষ্কার JSON কী-ভ্যালু | ভার্বোস XML ট্যাগ (<kml>) | ভার্বোস XML ট্যাগ (<gpx>) | মাল্টি-ফাইল বাইনারি (.shp, .shx, .dbf) |
| প্রপার্টিজ স্কিমা | ইচ্ছামাফিক JSON প্রপার্টিজ অবজেক্ট | ExtendedData স্কিমার ট্যাগ | নির্দিষ্ট GPX স্কিমা ট্যাগ | dBase IV (.dbf) নির্দিষ্ট কলাম |
সাধারণ করাপশন মোড এবং হেক্স রিকভারি গাইড
ম্যাপ পয়েন্টগুলোর আসল অবস্থানের পরিবর্তে অ্যান্টার্কটিকার কাছাকাছি সাগরে প্রদর্শিত হয়।
মূল কারণ: কোঅর্ডিনেট অ্যারেতে অক্ষাংশ ও দ্রাঘিমাংশের মান ভুলবশত অদলবদল হয়ে গেছে।
পুনরুদ্ধার: File2File.app GeoJSON কনভার্টার ব্যবহার করে কোঅর্ডিনেট পজিশন [lon, lat] অদলবদল করুন।
নিরাপত্তা বিশ্লেষণ ও পার্সার অ্যাটাক ভেক্টর
GeoJSON প্রপার্টিগুলোতে যেকোনো ধরনের ব্যবহারকারীর ইনপুট থাকতে পারে। XSS প্রতিরোধে ম্যাপ পপআপে রেন্ডার করার আগে এই ইনপুট স্যানিটাইজ করতে হবে।
পরিচিত অ্যাটাক ভেক্টর
- ম্যাপ টুলটিপে রেন্ডার করা GeoJSON ফিচারের প্রপার্টিতে এস্কেপ না করা HTML-এর মাধ্যমে ক্রস-সাইট স্ক্রিপ্টিং (XSS)।
- অত্যন্ত গভীরভাবে নেস্ট করা জিওমেট্রি কালেকশন বা লক্ষ লক্ষ ভার্টেক্সবিশিষ্ট পলিগনের মাধ্যমে পরিষেবা অস্বীকারের আক্রমণ।
- রিমোট GeoJSON ফিচার লোডিংয়ের মাধ্যমে সার্ভার-সাইড রিকোয়েস্ট ফোর্জারি।
প্রতিরক্ষামূলক সেরা অনুশীলন: ম্যাপ পপআপ উইন্ডোতে সন্নিবেশ করার আগে DOMPurify দিয়ে সমস্ত প্রপার্টি টেক্সট স্ট্রিং স্যানিটাইজ করুন।
ঐতিহাসিক উৎপত্তি ও মাইলফলক
প্রধান সুবিধাসমূহ ও গুণাবলী
- নেটিভ ওয়েব স্ট্যান্ডার্ড: ব্রাউজার ম্যাপিং লাইব্রেরিতে (Mapbox GL JS, Leaflet) সরাসরি জাভাস্ক্রিপ্ট অবজেক্টে ম্যাপ করে।
- মানুষের পড়ার উপযোগী JSON স্ট্রাকচার সহজে প্রোগ্রাম্যাটিক তৈরি, ফিল্টারিং এবং ডিবাগিংয়ের সুবিধা দেয়।
- ইচ্ছামাফিক প্রপার্টি স্কিমা: যেকোনো কাস্টম মেটাডেটা (জনসংখ্যা, নাম, গতি, রাজস্ব) সরাসরি জ্যামিতিক আকারের সাথে যুক্ত করা যায়।
কারিগরি সীমাবদ্ধতা ও অসুবিধা
- টেক্সটের আধিক্য: ফ্লোটিং-পয়েন্ট স্থানাঙ্কগুলো পুনরাবৃত্ত ASCII অঙ্ক হিসেবে সংরক্ষিত হয়, ফলে বাইনারি Shapefile বা FlatGeobuf-এর তুলনায় ফাইলের আকার বড় হয়।
- RFC 7946-এ [Longitude, Latitude] ক্রম বাধ্যতামূলক, যা 'Lat/Long'-এ অভ্যস্ত ডেভেলপারদের প্রায়ই বিভ্রান্ত করে।
- লক্ষ লক্ষ ভার্টেক্স সহ বড় পলিগন ওয়েব ব্রাউজার ডিওএম (DOM) রেন্ডারিং ধীর করে দিতে পারে।
আকর্ষণীয় কারিগরি তথ্য
- GeoJSON-এর আনুষ্ঠানিক মানে স্থানাঙ্কের ক্রম [Longitude, Latitude] (কার্টেসীয় X, Y ক্রম), যা মানুষ সাধারণত ('Latitude, Longitude') বলে তার ঠিক বিপরীত।
- GeoJSON ওয়েব মানচিত্রে প্রচলিত, তবে সমর্থন ভিন্ন। GitHub সীমাবদ্ধতার মধ্যে সমর্থিত ফাইল দেখায়; RFC 7946 দ্রাঘিমা আগে, অক্ষাংশ পরে নির্ধারণ করে।
- RFC 7946 বাধ্যতামূলক করে যে পলিগন বাউন্ডারি রিংগুলোকে 'ডান-হাতের নিয়ম' (right-hand rule) মেনে চলতে হবে: বাইরের রিংগুলো ঘড়ির কাঁটার বিপরীত দিকে ঘুরতে হবে।
সচরাচর জিজ্ঞাসিত প্রযুক্তিগত প্রশ্নাবলি
আমার GeoJSON স্থানাঙ্কগুলো [latitude, longitude]-এর পরিবর্তে কেন [longitude, latitude] ক্রমানুসারে থাকে?
GeoJSON ওয়েব মানচিত্রে প্রচলিত, তবে সমর্থন ভিন্ন। GitHub সীমাবদ্ধতার মধ্যে সমর্থিত ফাইল দেখায়; RFC 7946 দ্রাঘিমা আগে, অক্ষাংশ পরে নির্ধারণ করে।
KML বা Shapefile-কে কীভাবে GeoJSON-এ রূপান্তর করব?
ব্রাউজারেই File2File.app ব্যবহার করে কয়েক সেকেন্ডে Google Earth KML ফাইল বা Esri Shapefile-কে পরিষ্কার, ওয়েব-উপযোগী GeoJSON-এ রূপান্তর করতে পারেন।
GeoJSON এবং Shapefile-এর মধ্যে পার্থক্য কী?
ডেটা বিনিময়ে Shapefile এখনও বহুল ব্যবহৃত এবং GIS সফটওয়্যারে সমর্থিত। তবে এর একাধিক ফাইলের কাঠামো ও অ্যাট্রিবিউটের সীমাবদ্ধতার কারণে কিছু কাজে GeoJSON বা জিওডেটাবেস বেশি উপযোগী হতে পারে।
সম্পর্কিত GeoJSON কনভার্সন পেয়ার
GeoJSON ভেক্টরকে গুগল KML-এ রূপান্তর করার মাধ্যমে গুগল আর্থ এবং গুগল ম্যাপসের জন্য তৈরি কাঠামোগত এক্সএমএল নথিতে হালকা ওজনের জেএসওএন স্থানাঙ্ক অ্যারে অনুবাদ করা হয়।
গুগল KML ফাইলকে GeoJSON-এ রূপান্তর করলে স্তরবিন্যস্ত XML ভৌগোলিক ডেটা আধুনিক ওয়েব ম্যাপের জন্য হালকা ভেক্টর JavaScript Object Notation-এ পরিণত হয়।
GeoJSON ভেক্টর ডেটাকে GPX-এ রূপান্তর করার মাধ্যমে স্ট্যান্ডার্ড ভৌগোলিক JSON অবজেক্টগুলোকে শারীরিক নেভিগেশন ডিভাইসের জন্য অপ্টিমাইজ করা একটি XML-ভিত্তিক ফরম্যাটে রূপান্তর করা হয়।