3.1.2 • Published 4 months ago

mmap-fardup v3.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
4 months ago

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نوعمقدار پیش‌فرضتوضیحات
zoomnumber5سطح زوم اولیه نقشه.
center[number, number][51, 32]مرکز اولیه نقشه به صورت [طول جغرافیایی, عرض جغرافیایی].
fitBounds[{lng, lat}, {lng, lat}]nullمحدوده‌ای که نقشه باید به آن زوم کند.
mapParamsobject{}تنظیمات نقشه، شامل تعاملات و کنترل‌ها.
userLocationbooleanfalseفعال‌سازی ردیابی و تمرکز روی موقعیت کاربر.
setUserCoordsfunctionnullتابعی برای دریافت مختصات کاربر.
widthMapstring"100%"عرض نقشه (CSS).
heightMapstring"100vh"ارتفاع نقشه (CSS).
styleobject{}استایل‌های دلخواه برای کانتینر نقشه.
onClickfunctionnullرویدادی که هنگام کلیک روی نقشه فراخوانی می‌شود.
onMoveEndfunctionnullرویدادی که هنگام اتمام حرکت نقشه فراخوانی می‌شود.
سایر رویدادهاfunctionnullلیستی از رویدادهای موجود مانند onZoom, onDrag, و غیره.

mapParams تنظیمات

کلیدنوعمقدار پیش‌فرضتوضیحات
touchZoomRotatebooleantrueفعال‌سازی یا غیرفعال‌سازی تعامل چرخش و زوم با لمس.
doubleClickZoombooleantrueفعال یا غیرفعال کردن زوم با دابل کلیک.
keyboardbooleantrueفعال‌سازی یا غیرفعال‌سازی تعاملات صفحه‌کلید (مانند زوم و جابجایی).
multiWorldbooleanfalseفعال‌سازی یا غیرفعال‌سازی چندجهانی بودن نقشه.
preserveDrawingBufferbooleanfalseحفظ بافر رندرینگ نقشه برای اسکرین‌شات‌ها.
scrollZoombooleantrueفعال یا غیرفعال کردن زوم با اسکرول.
customAttributionstring""متن اختصاصی برای Attribution.
hashbooleanfalseفعال‌سازی نمایش وضعیت نقشه در URL.
maxZoomnumber20حداکثر سطح زوم.
minZoomnumber0حداقل سطح زوم.
zoomSliderbooleantrueنمایش یا مخفی کردن کنترل زوم اسلایدر.
interactivebooleantrueفعال‌سازی یا غیرفعال‌سازی تعاملات کاربر با نقشه.

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

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

  • 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نوعمقدار پیش‌فرضتوضیحات
enabledToolsstring[]['Polygon']ابزارهای فعال (مانند Point, LineString).
onDrawEndfunctionnullتابعی که پس از اتمام رسم فراخوانی می‌شود.

مثال

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نوعمقدار پیش‌فرضتوضیحات
geojsonDataobjectnullداده‌های 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نوعمقدار پیش‌فرضتوضیحات
geojsonDataobjectnullداده‌های GeoJSON که روی نقشه نمایش داده می‌شوند.
layerOptionsobject{}تنظیمات سفارشی برای لایه نقشه.
sourceOptionsobject{}تنظیمات مربوط به منبع داده‌های لایه.
linePaintobject{}استایل‌های سفارشی برای خطوط.
fillPaintobject{}استایل‌های سفارشی برای چندضلعی‌ها.
onMouseDownfunctionnullرویداد فشار دادن ماوس روی ویژگی‌ها.
onMouseUpfunctionnullرویداد رها کردن ماوس روی ویژگی‌ها.
onMouseMovefunctionnullرویداد حرکت ماوس روی ویژگی‌ها.
onMouseEnterfunctionnullرویداد ورود ماوس به یک ویژگی.
onMouseLeavefunctionnullرویداد خروج ماوس از یک ویژگی.
onClickfunctionnullرویداد کلیک روی ویژگی‌های GeoJSON.
onFeatureSelectfunctionnullرویدادی که هنگام انتخاب ویژگی توسط کاربر فراخوانی می‌شود.
enableSelectbooleanfalseامکان انتخاب ویژگی‌ها با کلیک یا تعامل.
beforenumber1مشخص‌کننده ترتیب لایه در نقشه.

مثال

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نوعمقدار پیش‌فرضتوضیحات
pointsarray[]آرایه‌ای از نقاط به همراه مختصات و اطلاعات مربوطه.
anchorstring"center"موقعیت لنگر تصویر Marker (مانند "top", "center", "bottom").
offsetarray[0, 0]جابه‌جایی افقی و عمودی Marker به صورت [x, y].
imagestring"./images/location2.svg"آدرس تصویر Marker.
onClickfunctionnullرویدادی که هنگام کلیک روی Marker فراخوانی می‌شود.
styleobject{}تنظیمات استایل Markerها.
classNamestringnullکلاس 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 مراجعه کنید.

3.1.2

4 months ago

3.1.1

4 months ago

3.1.0

4 months ago

3.0.9

4 months ago

3.0.8

4 months ago

3.0.7

4 months ago

3.0.5

5 months ago

3.0.4

5 months ago

3.0.3

5 months ago

3.0.2

5 months ago

3.0.1

5 months ago

2.9.3

5 months ago

2.9.2

5 months ago

2.9.1

5 months ago

2.9.0

5 months ago

2.8.9

5 months ago

2.8.8

5 months ago

2.8.7

5 months ago

2.8.6

5 months ago

2.8.5

5 months ago

2.8.4

5 months ago

2.8.3

5 months ago

2.8.2

5 months ago

2.8.1

5 months ago

2.7.7

5 months ago

2.7.6

5 months ago

2.7.5

5 months ago

2.7.4

5 months ago

2.7.3

5 months ago

2.7.2

6 months ago

2.7.1

6 months ago

2.6.9

6 months ago

2.6.8

6 months ago

2.6.5

6 months ago

2.6.4

6 months ago

2.6.3

6 months ago

2.6.2

6 months ago

2.6.1

6 months ago

2.5.9

6 months ago

2.5.8

6 months ago

2.5.7

6 months ago

2.5.5

6 months ago

2.5.3

6 months ago

2.5.1

6 months ago

2.4.8

6 months ago

2.4.6

6 months ago

2.4.3

6 months ago

2.4.1

6 months ago

2.3.4

6 months ago

2.2.4

6 months ago

2.1.1

6 months ago

1.7.5

6 months ago

1.6.5

6 months ago

1.5.1

6 months ago

1.4.1

6 months ago

1.3.1

6 months ago

1.2.1

6 months ago

1.1.4

6 months ago

1.1.2

6 months ago

1.1.0

6 months ago

1.0.9

6 months ago

1.0.8

6 months ago

1.0.7

6 months ago

1.0.6

6 months ago

1.0.5

6 months ago

1.0.4

6 months ago

1.0.3

6 months ago

1.0.2

6 months ago

1.0.1

6 months ago

1.0.0

6 months ago