فارسی
نقشهٔ ایران
نقشهٔ ۳۱ استان ایران برای نمایش داده به تفکیک استان یا انتخاب یک یا چند استان؛ با صفحهکلید و جدول همارز برای صفحهخوان.
npm i @kashi-ui/react @kashi-ui/cssimport { IranMap } from "@kashi-ui/react";CSS را یک بار در ریشهٔ برنامه وارد کنید: import "@kashi-ui/css"راهنمای نصب
npx shadcn@latest add @kashi/iran-mapکد خودِ کامپوننت در پوشهٔ components/kashi پروژهٔ شما کپی میشود. برای نسخههای قدیمی shadcn، راهنمای «دربارهٔ shadcn» را ببینید.دربارهٔ shadcn
npm i @kashi-ui/elements @kashi-ui/cssimport "@kashi-ui/elements/map.js";<kashi-iran-map></kashi-iran-map>بدون React، برای HTML، وردپرس، Vue و Angular.CDN، نمونه و ویژگیها
import { IranMap } from "@kashi-ui/react";
نقشهٔ رنگی
به هر استان یک عدد بدهید؛ استانها بر اساس مقدار در طیف رنگ برند رنگ میگیرند و استانهای بدون داده خاکستری میمانند. با رفتن روی هر استان نام و مقدارش نمایش داده میشود. دادههای این نمونه ساختگیاند.
| تهران | ۱۸٬۴۲۰ سفارش |
|---|---|
| خراسان رضوی | ۷٬۳۱۰ سفارش |
| اصفهان | ۶٬۹۸۰ سفارش |
| فارس | ۵٬۸۷۰ سفارش |
| آذربایجان شرقی | ۴٬۶۲۰ سفارش |
| البرز | ۴٬۴۱۰ سفارش |
| خوزستان | ۳٬۹۵۰ سفارش |
| مازندران | ۳٬۷۲۰ سفارش |
| گیلان | ۳٬۱۸۰ سفارش |
| کرمان | ۲٬۸۶۰ سفارش |
| آذربایجان غربی | ۲٬۷۴۰ سفارش |
| قم | ۲٬۲۱۰ سفارش |
| یزد | ۱٬۹۸۰ سفارش |
| هرمزگان | ۱٬۷۲۰ سفارش |
| کرمانشاه | ۱٬۶۵۰ سفارش |
| همدان | ۱٬۵۶۰ سفارش |
| گلستان | ۱٬۵۳۰ سفارش |
| مرکزی | ۱٬۴۹۰ سفارش |
| قزوین | ۱٬۳۹۰ سفارش |
| سیستان و بلوچستان | ۱٬۳۴۰ سفارش |
| لرستان | ۱٬۲۴۰ سفارش |
| کردستان | ۱٬۱۲۰ سفارش |
| اردبیل | ۱٬۰۸۰ سفارش |
| بوشهر | ۱٬۰۱۰ سفارش |
| زنجان | ۹۱۰ سفارش |
| سمنان | ۸۲۰ سفارش |
| چهارمحال و بختیاری | ۶۴۰ سفارش |
| خراسان شمالی | ۵۹۰ سفارش |
| خراسان جنوبی | ۵۶۰ سفارش |
| کهگیلویه و بویراحمد | ۵۲۰ سفارش |
| ایلام | ۴۱۰ سفارش |
<IranMap
data={{ "تهران": 18420, "خراسان رضوی": 7310, "اصفهان": 6980, /* … */ }}
unit="سفارش"
label="سفارشهای ماه گذشته به تفکیک استان"
/>کلیدها همان نامهای PROVINCES در @kashi-ui/persian هستند، مثل "تهران" یا "سیستان و بلوچستان". تعداد پلههای رنگ با steps (پیشفرض ۵) و قالب عدد با format عوض میشود. چون معمولاً یک استان (مثل تهران) خیلی بزرگتر از بقیه است، پلهها بهطور پیشفرض بر اساس رتبه پخش میشوند (scale="quantile") تا تفاوت بقیهٔ استانها هم دیده شود؛ برای بازههای مساوی scale="linear" بدهید.
انتخاب استان
با دادن value یا onChange نقشه قابل انتخاب میشود. مقدار همان نام استان است، پس با انتخاب استان هماهنگ کار میکند:
- آذربایجان شرقیمرکز: تبریز
- آذربایجان غربیمرکز: ارومیه
- اردبیلمرکز: اردبیل
- اصفهانمرکز: اصفهان
- البرزمرکز: کرج
- ایلاممرکز: ایلام
- بوشهرمرکز: بوشهر
- تهرانمرکز: تهران
- چهارمحال و بختیاریمرکز: شهرکرد
- خراسان جنوبیمرکز: بیرجند
- خراسان رضویمرکز: مشهد
- خراسان شمالیمرکز: بجنورد
- خوزستانمرکز: اهواز
- زنجانمرکز: زنجان
- سمنانمرکز: سمنان
- سیستان و بلوچستانمرکز: زاهدان
- فارسمرکز: شیراز
- قزوینمرکز: قزوین
- قممرکز: قم
- کردستانمرکز: سنندج
- کرمانمرکز: کرمان
- کرمانشاهمرکز: کرمانشاه
- کهگیلویه و بویراحمدمرکز: یاسوج
- گلستانمرکز: گرگان
- گیلانمرکز: رشت
- لرستانمرکز: خرمآباد
- مازندرانمرکز: ساری
- مرکزیمرکز: اراک
- هرمزگانمرکز: بندرعباس
- همدانمرکز: همدان
- یزدمرکز: یزد
<ProvinceSelect value={province} onChange={setProvince} />
<IranMap value={province} onChange={setProvince} label="استان محل سکونت" />انتخاب چند استان
با multiple مقدار یک آرایه است؛ مثلاً برای مناطق تحت پوشش ارسال یا فیلتر گزارش:
ارسال به ۳ استان: گیلان، مازندران، گلستان
<IranMap multiple value={regions} onChange={setRegions} label="استانهای تحت پوشش ارسال" />داده و انتخاب را میشود با هم داشت: استانها رنگ داده را نشان میدهند و استان انتخابشده با رنگ برند و حاشیه برجسته میشود.
| نام | توضیح، نوع و پیشفرض |
|---|---|
data | مقدار هر استان برای نقشهٔ رنگی |
value / defaultValue | استان یا استانهای انتخابشده |
onChange | با هر انتخاب؛ نقشه را قابل انتخاب میکند |
multiple | انتخاب چند استان |
label | نام دسترسپذیر |
unit | واحد در راهنما و جدول، مثل «سفارش» |
format | قالب عدد |
steps | تعداد پلههای رنگ |
scale | quantile: هر پله تعداد تقریباً برابری استان؛ linear: بازهٔ مساوی |
legend | راهنمای رنگ زیر نقشه |
tooltip | خط اضافه در راهنمای هر استان |
مرز و نقطهٔ وسط هر استان با IRAN_PROVINCES و IRAN_VIEWBOX هم در دسترس است، برای وقتی که نقشهٔ خودتان را میسازید.
متغیرهای CSS
| متغیر | کاربرد و پیشفرض |
|---|---|
--k-iran-map-empty | رنگ استان بدون داده |
--k-iran-map-selected | رنگ استان انتخابشده |
--k-iran-map-border | رنگ مرز بین استانها |
دسترسپذیری
- نقشهٔ بدون انتخاب یک تصویر با نام است و همهٔ مقدارها در یک جدول پنهان، از بیشترین به کمترین، برای صفحهخوان و چاپ آمدهاند.
- در حالت انتخاب، استانها
radio(یاcheckboxباmultiple) هستند و فقط یکی در ترتیب Tab است؛ جهتنماها بین استانها جابهجا میشوند، Home و End اول و آخر، و Enter یا فاصله انتخاب میکند. نام هر استان همراه مقدارش خوانده میشود. - رنگ تنها نشانهٔ انتخاب نیست؛ استان انتخابشده حاشیهٔ پررنگ هم دارد و در حالت forced-colors با رنگ سیستم برجسته میشود.
مرزها از Natural Earth (مالکیت عمومی) گرفته و ساده شدهاند؛ برای کارهای نقشهبرداری دقیق یا حقوقی مناسب نیستند.
وب کامپوننت
همین کامپوننت بدون React، برای HTML، وردپرس، Vue، Svelte و Angular: <kashi-iran-map> در @kashi-ui/elements.
نصب
بدون ابزار ساخت، این دو خط را در <head> صفحه بگذارید:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@kashi-ui/css/dist/kashi.css">
<script type="module" src="https://cdn.jsdelivr.net/npm/@kashi-ui/elements/dist/cdn/kashi-elements.js"></script>یا با npm، و فقط همین بخش را وارد کنید:
npm i @kashi-ui/elements @kashi-ui/cssimport "@kashi-ui/css";
import "@kashi-ui/elements/map.js";نمونه
<kashi-iran-map selectable name="province" unit="سفارش" data='{"تهران": 1200, "اصفهان": 420, "خراسان رضوی": 380, "فارس": 260, "آذربایجان شرقی": 190}'></kashi-iran-map>ویژگیها
| نام | توضیح، نوع و پیشفرض |
|---|---|
data | نام استان ← عدد، برای نقشهٔ رنگی |
selectable | انتخاب یک استان |
multiple | انتخاب چند استان |
value / name | استان انتخابشده و نام فیلد فرم |
unit | واحد در راهنما و جدول، مثل «سفارش» |
steps / scale | پلههای رنگ و نحوهٔ تقسیم داده |
legend | بدون راهنمای رنگ |
label | نام برای صفحهخوان |
رویدادها و JavaScript
| نام | توضیح |
|---|---|
kashi-change | detail: { value }؛ در multiple آرایه |
element.data | داده با JavaScript |