npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mmap-fardup

v3.4.2

Published

A React-based map client package with dynamic features

Downloads

529

Readme

mmap-fardup

یک پکیج کلاینت نقشه مبتنی بر React با قابلیت‌های پویا، طراحی شده برای ساده‌سازی کار با OpenLayers و GeoJSON در اپلیکیشن‌های React.

نصب

پکیج را با استفاده از npm نصب کنید:

npm install mmap-fardup

شروع به کار

در اینجا یک مثال ساده برای شروع ارائه شده است:

import React from 'react';
import MapBox from 'mmap-fardup';

const App = () => {
  return (
    <MapBox
      zoom={5}
      center={[51, 32]}
      userLocation={true}
       apiKey={"این مقدار باید از سامانه نقشه گرفته شود"}
      mapParams={{
        scrollZoom: true,
        customAttribution: 'Map data © OpenLayers',
      }}
      style={{ width: '100%', height: '100vh' }}
    />
  );
};

export default App;

این کد یک نقشه ساده با قابلیت موقعیت‌یابی کاربر نمایش می‌دهد.

کامپوننت‌ها

1. MapBox

توضیحات

کامپوننت اصلی برای نمایش نقشه. این کامپوننت تنظیماتی برای زوم، مرکز نقشه، موقعیت‌یابی کاربر، تعاملات، و رویدادها ارائه می‌دهد.

Props

| Prop | نوع | مقدار پیش‌فرض | توضیحات | | --------------- | -------------------------- | ------------- | ---------------------------------------------------------- | | zoom | number | 5 | سطح زوم اولیه نقشه. | | center | [number, number] | [51, 32] | مرکز اولیه نقشه به صورت [طول جغرافیایی, عرض جغرافیایی]. | | fitBounds | [{lng, lat}, {lng, lat}] | null | محدوده‌ای که نقشه باید به آن زوم کند. | | mapParams | object | {} | تنظیمات نقشه، شامل تعاملات و کنترل‌ها. | | userLocation | boolean | false | فعال‌سازی ردیابی و تمرکز روی موقعیت کاربر. | | setUserCoords | function | null | تابعی برای دریافت مختصات کاربر. | | widthMap | string | "100%" | عرض نقشه (CSS). | | heightMap | string | "100vh" | ارتفاع نقشه (CSS). | | style | object | {} | استایل‌های دلخواه برای کانتینر نقشه. | | onClick | function | null | رویدادی که هنگام کلیک روی نقشه فراخوانی می‌شود. | | onMoveEnd | function | null | رویدادی که هنگام اتمام حرکت نقشه فراخوانی می‌شود. | | سایر رویدادها | function | null | لیستی از رویدادهای موجود مانند onZoom, onDrag, و غیره. |

mapParams تنظیمات

| کلید | نوع | مقدار پیش‌فرض | توضیحات | |---------------------|------------|----------------|----------------------------------------------------------------------| | touchZoomRotate | boolean | true | فعال‌سازی یا غیرفعال‌سازی تعامل چرخش و زوم با لمس. | | doubleClickZoom | boolean | true | فعال یا غیرفعال کردن زوم با دابل کلیک. | | keyboard | boolean | true | فعال‌سازی یا غیرفعال‌سازی تعاملات صفحه‌کلید (مانند زوم و جابجایی). | | multiWorld | boolean | false | فعال‌سازی یا غیرفعال‌سازی چندجهانی بودن نقشه. | | preserveDrawingBuffer | boolean | false | حفظ بافر رندرینگ نقشه برای اسکرین‌شات‌ها. | | scrollZoom | boolean | true | فعال یا غیرفعال کردن زوم با اسکرول. | | customAttribution | string | "" | متن اختصاصی برای Attribution. | | hash | boolean | false | فعال‌سازی نمایش وضعیت نقشه در URL. | | maxZoom | number | 20 | حداکثر سطح زوم. | | minZoom | number | 0 | حداقل سطح زوم. | | zoomSlider | boolean | true | نمایش یا مخفی کردن کنترل زوم اسلایدر. | | interactive | boolean | true | فعال‌سازی یا غیرفعال‌سازی تعاملات کاربر با نقشه. |

رویدادهای پشتیبانی‌شده

این کامپوننت از رویدادهای زیر پشتیبانی می‌کند:

  • onClick: هنگامی که کاربر روی نقشه کلیک می‌کند. بازگشت اطلاعات شامل مختصات کلیک‌شده است.
  • onMove: زمانی که کاربر نقشه را جابه‌جا می‌کند. می‌توانید اطلاعات حرکت فعلی نقشه را دریافت کنید.
  • onMoveEnd: بعد از اتمام جابه‌جایی. بازگشت اطلاعات شامل مرکز جدید نقشه و سطح زوم است.
  • onZoom: هنگام تغییر سطح زوم. اطلاعات زوم فعلی را برمی‌گرداند.
  • onDrag: زمانی که کاربر لایه‌ها را درگ می‌کند. اطلاعات مختصات جدید در دسترس است.
  • onStyleLoad: هنگامی که سبک نقشه بارگذاری می‌شود.
  • onRender: در هر فریم رندر نقشه این رویداد اجرا می‌شود.

برای استفاده از هر رویداد، کافی است به صورت زیر تعریف کنید:

<MapBox
  onClick={(event, coords) => console.log('نقشه کلیک شد در:', coords)}
  onMoveEnd={() => console.log('حرکت نقشه به پایان رسید.')}
  onZoom={(zoom) => console.log('زوم تغییر کرد به:', zoom)}
/>

مثال

import React, { useState } from 'react';
import MapBox from 'mmap-fardup';

const App = () => {
  const [userCoords, setUserCoords] = useState(null);

  const handleMapClick = (event, coords) => {
    console.log('نقشه کلیک شد در:', coords);
  };

  return (
    <MapBox
      zoom={5}
      center={[51, 32]}
      userLocation={true}
      setUserCoords={setUserCoords}
      mapParams={{
        scrollZoom: true,
        doubleClickZoom: false,
      }}
      onClick={handleMapClick}
    />
  );
};

export default App;

2. draw

توضیحات

ابزاری برای رسم و ویرایش اشکال (نقاط، خطوط، چندضلعی‌ها) روی نقشه.

Props

| Prop | نوع | مقدار پیش‌فرض | توضیحات | | -------------- | ---------- | ------------- | -------------------------------------------- | | enabledTools | string[] | ['Polygon'] | ابزارهای فعال (مانند Point, LineString). | | onDrawEnd | function | null | تابعی که پس از اتمام رسم فراخوانی می‌شود. |

مثال

import React from 'react';
import MapBox from 'mmap-fardup';
import {DrawingManager} from 'mmap-fardup';

const App = () => {
  const handleDrawEnd = (data) => {
    console.log('هندسه رسم‌شده:', data);
  };

  return (
    <MapBox zoom={6} center={[51, 32]}>
      <DrawingManager enabledTools={['Polygon', 'Point']} onDrawEnd={handleDrawEnd} />
    </MapBox>
  );
};

export default App;

3. GeoJSONLoader

توضیحات

داده‌های GeoJSON را به نقشه بارگذاری کرده و برای نمایش و ویرایش استفاده می‌کند.

Props

| Prop | نوع | مقدار پیش‌فرض | توضیحات | | ------------- | -------- | ------------- | --------------------------------------------- | | geojsonData | object | null | داده‌های GeoJSON که به نقشه بارگذاری می‌شوند. |

مثال

import React from 'react';
import MapBox from 'mmap-fardup';
import {DrawingManager,GeoJSONLoader} from 'mmap-fardup';


const geojsonData = {
  type: 'FeatureCollection',
  features: [
    {
      type: 'Feature',
      geometry: {
        type: 'Point',
        coordinates: [51, 32],
      },
      properties: {
        name: 'نمونه نقطه',
      },
    },
  ],
};

const App = () => {
  const handleDrawEnd = (data) => {
    console.log('هندسه رسم‌شده:', data);
  };

  return (
    <MapBox mapParams={{ scrollZoom: true }} zoom={5} center={[51, 32]}>
      <DrawingManager onDrawEnd={handleDrawEnd} enabledTools={['Polygon', 'LineString', 'Point']} />
      <GeoJSONLoader geojsonData={geojsonData} />
    </MapBox>
  );
};

export default App;

4. GeoJSONLayer

توضیحات

کامپوننت GeoJSONLayer به شما امکان می‌دهد داده‌های GeoJSON را به‌عنوان یک لایه به نقشه اضافه کنید و با استفاده از امکاناتی مانند استایل‌دهی سفارشی و مدیریت رویدادها، آن را نمایش دهید. این کامپوننت از انواع هندسه‌های Point, LineString, و Polygon پشتیبانی می‌کند.

Props

| Prop | نوع | مقدار پیش‌فرض | توضیحات | | ------------- | -------- | ------------- | ------------------------------------------------ | | geojsonData | object | null | داده‌های GeoJSON که روی نقشه نمایش داده می‌شوند. | | layerOptions | object | {} | تنظیمات سفارشی برای لایه نقشه. | | sourceOptions| object | {} | تنظیمات مربوط به منبع داده‌های لایه. | | linePaint | object | {} | استایل‌های سفارشی برای خطوط. | | fillPaint | object | {} | استایل‌های سفارشی برای چندضلعی‌ها. | | onMouseDown | function | null | رویداد فشار دادن ماوس روی ویژگی‌ها. | | onMouseUp | function | null | رویداد رها کردن ماوس روی ویژگی‌ها. | | onMouseMove | function | null | رویداد حرکت ماوس روی ویژگی‌ها. | | onMouseEnter| function | null | رویداد ورود ماوس به یک ویژگی. | | onMouseLeave| function | null | رویداد خروج ماوس از یک ویژگی. | | onClick | function | null | رویداد کلیک روی ویژگی‌های GeoJSON. | | onFeatureSelect| function | null | رویدادی که هنگام انتخاب ویژگی توسط کاربر فراخوانی می‌شود. | | enableSelect| boolean | false | امکان انتخاب ویژگی‌ها با کلیک یا تعامل. | | before | number | 1 | مشخص‌کننده ترتیب لایه در نقشه. |

مثال

import React from 'react';
import MapBox from 'mmap-fardup';
import {GeoJSONLayer} from 'mmap-fardup';

const geojsonData = {
 
        type: 'Polygon',
        coordinates: [
          [
            [50, 31],
            [52, 31],
            [52, 33],
            [50, 33],
            [50, 31],
          ],
        ],
      
};

const App = () => {
  return (
    <MapBox zoom={6} center={[51, 32]}>
      <GeoJSONLayer geojsonData={geojsonData} />
    </MapBox>
  );
};

export default App;

5. Marker

توضیحات

کامپوننت Marker برای افزودن نقاط (Marker) به نقشه استفاده می‌شود. شما می‌توانید مختصات، تصویر و استایل‌های دلخواه را برای Markerها تنظیم کنید و به تعاملاتی مانند کلیک روی نقاط گوش دهید.

Props

| Prop | نوع | مقدار پیش‌فرض | توضیحات | | ------------- | ----------- | ------------------------ | -------------------------------------------------------------------- | | points | array | [] | آرایه‌ای از نقاط به همراه مختصات و اطلاعات مربوطه. | | anchor | string | "center" | موقعیت لنگر تصویر Marker (مانند "top", "center", "bottom"). | | offset | array | [0, 0] | جابه‌جایی افقی و عمودی Marker به صورت [x, y]. | | image | string | "./images/location2.svg" | آدرس تصویر Marker. | | onClick | function | null | رویدادی که هنگام کلیک روی Marker فراخوانی می‌شود. | | style | object | {} | تنظیمات استایل Markerها. | | className | string | null | کلاس CSS سفارشی برای Markerها. |

مثال

import React from 'react';
import MapBox from 'mmap-fardup';
import {Marker} from 'mmap-fardup';

const App = () => {
  const points = [
    { coordinates: [51, 32], properties: { name: 'Point 1' } },
    { coordinates: [52, 33], properties: { name: 'Point 2' } },
  ];

  const handleMarkerClick = (event, feature) => {
    console.log('Clicked Marker:', feature.getProperties());
  };

  return (
    <MapBox zoom={5} center={[51, 32]}>
      <Marker points={points} onClick={handleMarkerClick} />
    </MapBox>
  );
};

export default App;

لایسنس

این پروژه تحت مجوز MIT منتشر شده است. برای جزئیات بیشتر به فایل LICENSE مراجعه کنید.