জিওজেসন (.geojson)
IETF স্ট্যান্ডার্ডজিওগ্রাফিক জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন (GeoJSON) হলো ভৌগোলিক ডেটা স্ট্রাকচার এনকোড করার জন্য সার্বজনীন, ওয়েব-নেটিভ স্ট্যান্ডার্ড, যা আধুনিক ওয়েব ম্যাপিং (Leaflet, Mapbox, OpenLayers) এবং জিআইএস অ্যাপ্লিকেশনগুলোতে ব্যাপকভাবে ব্যবহৃত হয়।
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
প্রযুক্তিগত বৈশিষ্ট্য
| কন্টেইনার আর্কিটেকচার | JSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries |
| কম্প্রেশন | Uncompressed text (readily compressed over HTTP via Gzip or Brotli) |
| বাইট এন্ডিয়াননেস | UTF-8 text stream |
| কালার স্পেস | N/A (Geographic Data) |
| চ্যানেল ও কাঠামো | Points, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties |
| সর্বোচ্চ মাত্রা | World Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90) |
| স্বচ্ছতা | None |
| স্ট্রিমিং ও প্রোগ্রেসিভ | Line-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features |
টেকনিক্যাল তুলনা ম্যাট্রিক্স: GeoJSON বনাম প্রতিযোগীগণ
| প্রযুক্তিগত বৈশিষ্ট্য | GeoJSON (বর্তমান) | KML | GPX | SHP |
|---|---|---|---|---|
| ওয়েব ম্যাপিং অ্যাডপশন | ১০০% সার্বজনীন ওয়েব জিআইএস ডিফল্ট | গুগল আর্থ ডিফল্ট | জিপিএস ডিভাইস ও ফিটনেস ডিফল্ট | ডেস্কটপ জিআইএস লিগ্যাসি স্ট্যান্ডার্ড |
| কোঅর্ডিনেট অর্ডার | [Longitude, Latitude] (X, Y) | Longitude, Latitude, Altitude | Latitude, Longitude | X, Y কোঅর্ডিনেট |
| সিনট্যাক্স স্টাইল | ক্লিন JSON কি-ভ্যালু | ভার্বোস XML ট্যাগ (<kml>) | ভার্বোস XML ট্যাগ (<gpx>) | মাল্টি-ফাইল বাইনারি (.shp, .shx, .dbf) |
| প্রপার্টিজ স্কিমা | ইচ্ছামাফিক JSON প্রপার্টিজ অবজেক্ট | ExtendedData স্কিমা ট্যাগ | নির্দিষ্ট GPX স্কিমা ট্যাগ | dBase IV (.dbf) নির্দিষ্ট কলাম |
সাধারণ করাপশন মোড এবং হেক্স রিকভারি গাইড
ম্যাপ পয়েন্টগুলোর আসল অবস্থানের পরিবর্তে অ্যান্টার্কটিকার কাছাকাছি সাগরে প্রদর্শিত হয়।
মূল কারণ: কোঅর্ডিনেট অ্যারেতে ল্যাটিটিউড এবং লংটিউড ভ্যালু ভুলবশত অদলবদল হয়ে গেছে।
পুনরুদ্ধার: File2File GeoJSON কনভার্টার ব্যবহার করে কোঅর্ডিনেট পজিশন [lon, lat] অদলবদল করুন।
নিরাপত্তা বিশ্লেষণ ও পার্সার অ্যাটাক ভেক্টর
GeoJSON প্রপার্টিগুলোতে ইচ্ছামাফিক ইউজার ইনপুট থাকতে পারে যা XSS প্রতিরোধ করতে ম্যাপ পপআপে রেন্ডার করার আগে স্যানিটাইজ করতে হবে।
পরিচিত অ্যাটাক ভেক্টর
- ম্যাপ টুলটিপ-এ রেন্ডার করা GeoJSON ফিচারের প্রপার্টিতে আনস্কেপড HTML-এর মাধ্যমে ক্রস-সাইট স্ক্রিপ্টিং (XSS)।
- অত্যন্ত নেস্টেড জিওমেট্রি কালেকশন বা লক্ষ লক্ষ ভার্টেক্স বিশিষ্ট পলিগনের মাধ্যমে ডিনায়েল অফ সার্ভিস।
- রিমোট GeoJSON ফিচার লোডিংয়ের মাধ্যমে সার্ভার-সাইড রিকোয়েস্ট ফোর্জারি।
প্রতিরক্ষামূলক সেরা অনুশীলন:
ঐতিহাসিক উৎপত্তি ও মাইলফলক
প্রধান সুবিধাসমূহ ও গুণাবলী
- নেটিভ ওয়েব স্ট্যান্ডার্ড: ব্রাউজার ম্যাপিং লাইব্রেরিতে (Mapbox GL JS, Leaflet) সরাসরি জাভাস্ক্রিপ্ট অবজেক্টে ম্যাপ করে।
- মানুষের পড়ার উপযোগী JSON স্ট্রাকচার সহজে প্রোগ্রাম্যাটিক তৈরি, ফিল্টারিং এবং ডিবাগিংয়ের সুবিধা দেয়।
- ইচ্ছামাফিক প্রপার্টি স্কিমা: যেকোনো কাস্টম মেটাডেটা (জনসংখ্যা, নাম, গতি, রাজস্ব) সরাসরি জ্যামিতিক আকারের সাথে যুক্ত করা যায়।
কারিগরি সীমাবদ্ধতা ও অসুবিধা
- টেক্সট ভার্বোসিটি: পুনরাবৃত্ত ASCII ডিজিট হিসেবে ফ্লোটিং-পয়েন্ট কোঅর্ডিনেট সংরক্ষণ করে, যার ফলে বাইনারি শেপফাইল বা ফ্ল্যাটজিবাফের চেয়ে ফাইলের আকার বড় হয়।
- RFC 7946 কঠোরভাবে [Longitude, Latitude] ক্রম বাধ্যতামূলক করে, যা 'Lat/Long'-এ অভ্যস্ত ডেভেলপারদের প্রায়শই বিভ্রান্ত করে।
- লক্ষ লক্ষ ভার্টেক্স সহ বড় পলিগন ওয়েব ব্রাউজার ডিওএম (DOM) রেন্ডারিং ধীর করে দিতে পারে।
আকর্ষণীয় কারিগরি তথ্য
- অফিসিয়াল GeoJSON স্ট্যান্ডার্ড কোঅর্ডিনেটগুলোকে [Longitude, Latitude] (X, Y কার্টেসিয়ান ক্রম) হিসেবে সাজায়, যা মানুষ যেভাবে কথা বলে ('Latitude, Longitude') তার ঠিক বিপরীত।
- আপনি যদি গিটহ্যাব-এ একটি .geojson ফাইল কমিট করেন, তবে গিটহ্যাব স্বয়ংক্রিয়ভাবে এটিকে একটি ইন্টারেক্টিভ, ক্লিকযোগ্য ম্যাপ হিসেবে রেন্ডার করে।
- RFC 7946 বাধ্যতামূলক করে যে পলিগন বাউন্ডারি রিংগুলোকে 'ডান-হাতের নিয়ম' (right-hand rule) মেনে চলতে হবে: বাইরের রিংগুলো ঘড়ির কাঁটার বিপরীত দিকে ঘুরতে হবে।
সচরাচর জিজ্ঞাসಿತ টেকনিক্যাল প্রশ্নাবলি
আমার GeoJSON স্থানাঙ্কগুলো [latitude, longitude]-এর পরিবর্তে কেন [longitude, latitude] ক্রমানুসারে থাকে?
কারণ গণিত এবং কম্পিউটার গ্রাফিক্সে, স্থানাঙ্কগুলো সর্বদা (X, Y) হিসেবে নির্দিষ্ট করা হয়। দ্রাঘিমাংশ (Longitude) অনুভূমিক X-অক্ষ এবং অক্ষাংশ (Latitude) লম্বালম্বি Y-অক্ষকে নির্দেশ করে।
KML বা Shapefile-কে কীভাবে GeoJSON-এ রূপান্তর করব?
সরাসরি ব্রাউজারে File2File.app ব্যবহার করে মাত্র কয়েক সেকেন্ডের মধ্যে আপনি Google Earth KML ফাইল বা Esri Shapefile-কে ক্লিন, ওয়েব-প্রস্তুত GeoJSON-এ রূপান্তর করতে পারেন।
GeoJSON এবং Shapefile-এর মধ্যে পার্থক্য কী?
Shapefile হলো ১৯৯ এর দশকের একটি পুরনো মাল্টি-ফাইল বাইনারি ফরম্যাট (.shp, .shx, .dbf)। GeoJSON হলো ক্লিন JSON-এ লেখা একটি আধুনিক, একক ফাইলের ওপেন ওয়েব ফরম্যাট।
সম্পর্কিত GeoJSON কনভার্সন পেয়ার
জিওজেএসওএন ভেক্টরকে গুগল কেএমএলে রূপান্তর করার মাধ্যমে গুগল আর্থ এবং গুগল ম্যাপসের জন্য তৈরি কাঠামোগত এক্সএমএল নথিতে হালকা ওজনের জেএসওএন স্থানাঙ্ক অ্যারে অনুবাদ করা হয়।
গুগল কেএমএল ফাইলকে জিওজেসনে রূপান্তর করার মাধ্যমে হায়ারার্কিক্যাল এক্সএমএল ভৌগোলিক ডেটাকে আধুনিক ওয়েব ম্যাপের জন্য হালকা ভেক্টর জেএসওনে পরিণত করা হয়।
GeoJSON ভেক্টর ডেটাকে GPX-এ রূপান্তর করার মাধ্যমে স্ট্যান্ডার্ড ভৌগোলিক JSON অবজেক্টগুলোকে শারীরিক নেভিগেশন ডিভাইসের জন্য অপ্টিমাইজ করা একটি XML-ভিত্তিক ফরম্যাটে রূপান্তর করা হয়।