دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۹
  • خرداد

جلسه ۱۲ : جغرافیا در D3.js

  • دسته‌بندی‌ها :
جلسه ۱۲ : جغرافیا در D3.js
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، جلسه دوازدهم از آموزش های دوره D3.js به جغرافیا در D3.js اختصاص داده می شود. مختصات جغرافیایی در D3.js اغلب برای داده های هواشناسی یا جمعیت استفاده می شود.

      جغرافیا در D3.js 

      به طور کلی جغرافیا در D3.js سه ابزار برای داده های جغرافیایی به ما می دهد:

      مسیرها : پیکسل های نهایی را تولید می کنند.

      طرح ها : مختصات حوزه را به مختصات دکارتی تبدیل می کنند.

      Streams :کارها را سریع می کنند.

      قبل از یادگیری مختصات جغرافیایی در D3.js ، ما باید دو اصطلاح زیر را فرا بگیریم.

      مسیر جغرافیایی D3 و طرح ها

      بگذارید در مورد این دو اصطلاح به طور مفصل بحث کنیم.

      مسیر جغرافیایی D3

      ژنراتور مسیر جغرافیا در D3.js است. GeoJSON یک مسیر داده SVG را ایجاد می کند یا مسیر را به یک Canvas ارایه می دهد.

      Canvas(بوم) برای طرح های پویا یا تعاملی برای بهبود عملکرد توصیه می شود. برای تولید یک ژنراتور داده جغرافیایی D3، می توانید تابع زیر را فراخوانی کنید.

      ()d3.geo.path در اینجا، تابع ژنراتور مسیر ()d3.geo.path به ما امکان می دهد که هر کدام از نقشه طرحی را که می خواهیم برای ترجمه از مختصات جغرافیایی به مختصات دکارتی استفاده کنیم انتخاب کنیم.

      به عنوان مثال، اگر ما بخواهیم جزئیات نقشه هند را نشان دهیم، می توانیم یک مسیر را که در زیر نشان داده شده تعریف کنیم.

      مثال : 

      طرح ها

      طرح ها هندسه چند ضلعی کروی را به هندسه چند ضلعی مسطح تبدیل می کند. D3 پیاده سازی طرح ریزی زیر را فراهم می کند.

      پروژه طرح های Azimuthal حوزه را مستقیما بر روی یک برنامه قرار می دهد.

      Composite : کامپوزیت متشکل از پیش بینی های چندگانه است که به یک صفحه نمایش متصل می شوند.

      مخروطی : حوزه را بر روی مخروطی پروژه می کند و سپس مخروط را روی برنامه باز می کند.

      برای ایجاد یک طرح جدید، می توانید از تابع زیر استفاده کنید.

      مثال : 

      طرح جدیدی را از پروژه طرح شده خام مشخص شده تهیه می کند. تابع پروژه طول و عرض جغرافیایی یک نقطه را در رادیان می گیرد.

      سپس شما می توانید طرح پیشنهادی را در کد خود اعمال کنید.

      مثال : 

      در اینجا می توانیم هر یک از طرح های بالا را اعمال کنیم. اجازه دهید هر یک از این طرح ها را به صورت مختصر توضیح دهیم.

      ()d3.geo.orthographic : طرح ارتجاعی یک طرح آزیموتیک مناسب برای نمایش یک نیمکره مجزا است. نقطه نظر در بی نهایت است.

      ()d3.geo.gnomonic : طرح gnomonic یک طرح azimuthal است که حلقه های بزرگ را به صورت خطوط مستقیم طراحی می کند.

      ()d3.geo.equirectangular : معادل ساده ترین طرح جغرافیایی ممکن است.

      ()d3.geo.mercator : طرح Mercator کروی معمولا توسط کتابخانه های نقشه برداری کاشی استفاده می شود.

      ()d3.geo.transverseMercator : طرح ریزی mercator عرضی است.

      مثال کاربردی

      بگذارید نقشه هند را در این مثال ایجاد کنیم. برای انجام این کار، ما باید مراحل زیر را طی کنیم.
      مرحله ۱ : اعمال سبک ها، با استفاده از کد زیر، سبک ها را در نقشه اضافه کنید.

      مثال : 

      در این مثال، ما رنگ های خاصی برای TN، AP و MP اعمال کردیم.

      مرحله ۲ : شامل اسکریپت topojson – TopoJSON و فرمت GeoJSON است که نوعی کدگذاری توپولوژی است، و در کد زیر تعریف شده است.

      مثال : 

      ما می توانیم این اسکریپت را در کد های برنامه نویسی مان وارد کنیم.

      مرحله ۳ : تعریف متغیرها ، با استفاده از کد زیر، متغیرها را در اسکریپت خود اضافه کنید.

      مثال : 

      در اینجا عرض SVG برابر۶۰۰ و ارتفاع آن برابر ۴۰۰ است. صفحه نمایش یک فضای دو بعدی است و ما در حال تلاش برای ارائه یک شی سه بعدی هستیم.

      بنابراین، با استفاده از تابع ()d3.geo.mercator ، می توانیم به شدت اندازه زمین / شکل زمین را تحریف کنیم.

      مرکز با مختصات [۷۸، ۲۲] مشخص شده است، همچنین مرکز طرح شده را به محل مشخص شده به عنوان یک آرایه دو عنصر طول و عرض جغرافیایی در درجه بندی می کند و طرح را بر می گرداند.

      در اینجا نقشه بر روی ۷۸ درجه غرب و ۲۲ درجه شمالی قرار دارد.مقیاس به عنوان ۶۸۰ مشخص شده است، این مقدار عامل مقیاس پروژکتور را به مقدار مشخص شده تنظیم می کند.

      اگر مقیاس مشخص نشده باشد، عامل مقیاس فعلی را که به صورت پیش فرض به ۱۵۰ می رسد، باز می گرداند. لازم به ذکر است که عوامل مقیاس در طرح های سازگار نیستند.

      مرحله ۴ : اضافه کردن SVG ، حالا ویژگی های SVG را اضافه کنید.

      مثال : 

      مرحله ۵ : ایجاد مسیر ، کد زیر مسیر جغرافیایی جدیدی را می سازد.

      مثال : 

      در اینجا ژنراتور مسیر ( ()d3.geo.path ) برای مشخص کردن یک نوع طرح (projection.) استفاده می شود، که قبلا به عنوان یک طرح Mercator با استفاده از طرح متغیر تعریف شده است.

      مرحله ۶ : تولید داده ها ، indiatopo.json – این فایل شامل پرونده های زیادی است که ما می توانیم از پیوست های زیر به راحتی دانلود کنیم.

      فایل indiatopo.json را دانلود کنید .

      پس از دانلود فایل، می توانیم محل D3 خود را اضافه کنیم. فرمت نمونه در زیر نشان داده شده است.

      مثال : 

      مرحله ۷ : رسم نقشه ، اکنون داده ها را از فایل indiatopo.json بخوانید و نقشه را رسم کنید.

      مثال : 

      در اینجا، فایل TopoJSON را با مختصات نقشه هند (indiatopo.json) بارگذاری می کنیم.

      سپس اعلام می کنیم که ما بر روی تمام عناصر مسیر در گرافیک عمل می کنیم. این به عنوان، (“g.selectAll(“path تعریف شده است.

      سپس اطلاعاتی را که کشورها را از فایل TopoJSON تعریف می کنیم، کشف می کنیم.

      مثال : 

      در نهایت، ما آن را به داده هایی که ما با استفاده از متد ()enter. نمایش می دهیم اضافه می کنیم و سپس آن داده ها را به عنوان عناصر مسیر با استفاده از متد (“append(“path. اضافه می کنیم.

      کلام آخر

      آموزش جغرافیا در D3.js و مختصات جغرافیایی در D3.js به اتمام رسید . در جلسه بعد API آرایه در D3.js را فرا خواهید گرفت.

      QR:  جلسه ۱۲ : جغرافیا در D3.js
      به اشتراک بگذارید