Fa:Develop

From OpenStreetMap Wiki
Jump to navigation Jump to search

OpenStreetMap فقط داده‌باز نیست؛ بلکه متن‌باز نیز است و شما می‌توانید کمک کنید!

به این دو روش اصلی می‌توانید درگیر OpenStreetMap شوید:

  • با توسعهٔ خودِ سکوی OpenStreetMap، که شامل وبسایت OpenStreetMap.org و اجزا و خدمات وابسته به آن می‌شود.
  • با استفاده‌کردن از OpenStreetMap. شما می‌توانید داده و خدمات OpenStreetMap را به‌همراه نرم‌افزار و خدمات جامعهٔ ما «به‌کار ببندید» تا هر آنچه را که می‌خواهید بسازید.
Using OpenStreetMap for Development

تماس بگیرید

اگر سوالی یا ایده‌ای دارید یا فقط می‌خواهید توسعه‌دهندگان همکار را ملاقات کنید، از طریق راه‌های ارتباطی زیر با جامعهٔ توسعه‌دهندگان اوپن‌استریت‌مپ تماس بگیرید.

اجزای مختلف چگونه با هم کار می‌کنند

کدی که OpenStreetMap.org را راه انداخته از اجزای مختلفی تشکیل می‌شود. برآیند همکاری آن‌ها با هم API، نقشهٔ لغزان و سایر قابلیت‌ها را می‌سازد.

Rails port همان چارچوب نرم‌افزاری Ruby on Rails است که openstreetmap.org از آن نیرو می‌گیرد؛ جایی که صفحات OSM و API پایه، از آن سرچشمه می‌گیرد. داده‌های اوپن‌استریت‌مپ، سیاره یا planet، با کمک PostGIS در PostgreSQL ذخیره شده و با استفاده از Mapnik به‌شکل کاشی‌های زیبا پرداخت یا render می‌شود. رابط کاربری نقشهٔ لغزان برای این کاشی‌ها  — چیزی که امکان تکان‌دادن نقشه یا زوم‌کردن به شما می‌دهد — از Leaflet نیرو می‌گیرد.

در این میان، osm2pgsql و osmosis زیرساخت‌های ضروری برای تبدیل OSM XML به PostGIS هستند. این دو با Planet.osm و سایر گُزیده‌ها (extracts) تعامل دارند و در نتیجه سایر سایت‌ها می‌توانند داده‌های OSM را به‌کار ببرند یا توزیع کنند.

به‌لطف ویرایشگرهای متن‌بازی مانند iD،‏ Potlatch 2 و JOSM، کاربران می‌توانند داده‌های OpenStreetMap را ویرایش کنند یا به آن بیفزایند.

پشتهٔ اوپن‌استریت‌مپ را به‌طور خودکار با استفاده از ماشین مجازی به‌کار بیندازید

Tile serving

مطالب خُرد و ایده‌های ناآزموده

پیش‌زمینه

درمورد شیوهٔ ذخیره‌سازی و ویرایش geodata در اوپن‌استریت‌مپ، دانستنی‌های زیادی وجود دارد که کمک می‌کند چگونگی کار آن را بفهمید. اگر می‌خواهید روی موضوعات مربوط به داده کار کنید، نگاهی به این‌ها بیندازید: XML schema،‏ Fa:Data Primitives و Downloading data.

همچنین OpenStreetMap به‌خاطر اندازه‌ای که دارد، روی یک سرور به‌کارانداز نسبتاً کوچک اجرا می‌شود. برای اطلاع از جزئیات، یادداشت‌هایمان در سخت‌افزار سرور را ببینید. همچنین آینه‌های API v0.6 و APIهای Dev و Test را داریم که برای تست کد کنشگر با OSM API سودمند است.

چگونه درگیر شویم

بسیاری از پروژه‌های اوپن‌استریت‌مپ از Git (آینه‌اش در GitHub) استفاده می‌کنند و درنتیجه به‌آسانی می‌توانید fork a repo and contribute changes.

برای تغییرات بزرگ‌تر، شاید لازم باشد در یک سرور توسعه، حساب کاربری بگیرید تا تست‌های جدی انجام دهید.

پروژه‌های اصلی

The OSM website Rails Port (Ruby)

این همان چیزی است که UI و API سایت را ایجاد می‌کند. صفحهٔ Rails port مطالب مفید بسیاری برای شروع دارد. راهنمای طراحی لازمتان می‌شود: Rails_port/UI را بخوانید؛ یک راهنمای سریع برای طراحان. کاربران جدید همچنین می‌توانند به‌عنوان تمرینِ آماده‌سازی Rails Port،‏ pull requestها را مرور کنند. با مشارکت در ترجمه نیز می‌توانید کمک کنید.

Search و geocoding با Nominatim

JOSM، ویرایشگر رومیزی نقشه (Java)

JOSM یکی از محبوب‌ترین و قدرتمندترین ویرایشگرهای OpenStreetMap است.

iD، ویرایشگر آنلاین نقشه (Javascript)

iD جدیدترین ویرایشگر OpenStreetMap است. کاربران می‌توانند با تست و گزارش مشکلات کمک کنند، یا به استقبال این مسائل بروند: good-first-issue.

سبک پیشفرض در OSM.org

مقالهٔ اصلی: Standard tile layer

سایر سبک‌ها جدا هستند. لطفا صفحهٔ ویکی آن‌ها را ببینید یا در هنگام نمایش نقشه به قسمت تماس یا پانوشت مجوز نگاهی بیندازید.

Potlatch 2، ویرایشگر آنلاین نقشه (Actionscript)

Potlatch 2 در گذشته ویرایشگر پیشفرض برای کاربران جدید بود. شما می‌توانید با مشارکت در ترجمه به آن کمک کنید.

چاقوی سوئیسی Osmosis برای پردازش دادهٔ اوپن‌استریت‌مپ (Java)

Osmosis در پردازش داده‌های اوپن‌استریت‌مپ در حکم چاقوی سوئیسی است.

OSM data importer for rendering or geocoding osm2pgsql (C)

osm2pgsql یک ابزار قدرت برای درون‌برد فایل‌های OSM XML به پایگاه‌داده‌های PostGIS است.

Leaflet، کتابخانهٔ نقشهٔ لغزان (Javascript)

رابط کاربری نقشهٔ لغزان را فراهم می‌کند. خوره‌های جاوااسکریپت می‌توانند کمک کنند تا نقشه‌های صفحهٔ اصلی را خیلی چابک‌تر کنیم.

پرداخت (render) نقشه با Mapnik (C++)

backend اصلی برای پرداخت نقشه‌ها از روی داده‌های OSM.

سیستم پرداخت کاشی‌ها با Tirex (C++ و Perl)

همچنین ببینید: Tirex/Development و Tirex/Internals