برنامه نویسی

بیاموزید که با استفاده از React و MapBox یک فایل برنامه ردیابی موقعیت مکانی ایجاد کنید

راهنمای آسان برای توسعه مؤلفه نقشه در یک برنامه ردیابی موقعیت مکانی React

اگر می خواهید چالش دیروز را ببینید: ساختن یک مؤلفه تابلوی

اگر می خواهید خودتان این چالش را امتحان کنید: DailyUi

نمای کلی

امروز ما با استفاده از React و MapBox یک برنامه ردیابی مکان ایجاد خواهیم کرد. برنامه ما به کاربران امکان می دهد مکان خود را با دوستان به اشتراک بگذارند و حرکات یکدیگر را در زمان واقعی ردیابی کنند. ما یک رابط کاربری با استفاده از React ایجاد خواهیم کرد و از MAPBOX ، یک نقشه برداری و سکوی ابری مکان ، برای ویژگی های نقشه برداری و جغرافیایی استفاده خواهیم کرد.

MAPBOX چیست؟

MapBox یک پلت فرم قدرتمند نقشه برداری و مکان است که مجموعه ای جامع از ابزارها و خدمات را برای ساخت سفارشی ، نقشه های تعاملی ، برنامه های مبتنی بر مکان و تجسم داده ها ارائه می دهد. این یک بستر منبع باز است که به گونه ای بسیار قابل تنظیم و مقیاس پذیر طراحی شده است و آن را برای طیف گسترده ای از صنایع از جمله حمل و نقل ، تدارکات ، املاک و مستغلات و شبکه های اجتماعی مناسب می کند.

حالا بیایید به ساختمان برویم!

پیش نیازهای

قبل از شروع کار ، اطمینان حاصل کنید که موارد زیر را دارید:

  • node.js نصب شده است

    • برای اجرای JavaScript در همه جا استفاده می شود
  • یک حساب Mapbox و نشانه دسترسی

  • ترمینال برای نوشتن دستورات

راه اندازی

  1. با ایجاد یک پروژه React جدید با استفاده از برنامه REACT شروع کنید:
npx create-react-app location-tracker
cd location-tracker
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور از NPX ، یک ابزار Runner Package که با Node.js همراه است ، برای اجرای دستور Create-React-App استفاده می کند. این ابزار محبوب CLI یک پروژه React جدید با پیکربندی پیش فرض ایجاد می کند و به پیکربندی ساخت نیاز ندارد. در این حالت ، ردیاب مکان نام پروژه است. خط بعدی دایرکتوری را به پوشه مسیریابی مکان که در آن پروژه خواهد بود تغییر می دهد.

  1. وابستگی های مورد نیاز را نصب کنید:
yarn add react-mapbox-gl mapbox-gl geolocation react-map-gl-geocoder
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این دستور وابستگی های لازم را برای ساختن یک برنامه React که از MapBox و ویژگی های جغرافیایی استفاده می کند ، نصب می کند. در اینجا توضیح مختصری از هر بسته آورده شده است:

  • واکنش نشان می دهد: یک کتابخانه الزام آور React برای Mapbox GL JS ، که به شما امکان می دهد نقشه های تعاملی و قابل تنظیم را در برنامه React خود با استفاده از WebGL ایجاد کنید

  • با جعبه نقشه: کتابخانه Core Mapbox GL JS که عملکرد نقشه برداری را ارائه می دهد ، از جمله ارائه نقشه ، کنترل نقشه تعاملی و پشتیبانی از منابع و سبک های مختلف نقشه

  • جغرافیایی: بسته ای که شما را قادر می سازد مختصات جغرافیایی فعلی کاربر (عرض جغرافیایی و طول جغرافیایی) را در مرورگر با استفاده از API Geolocation HTML5 بازیابی کنید

  • رکاب دار: یک مؤلفه React که عملکرد جغرافیایی را برای نقشه های Mapbox GL JS فراهم می کند. این امکان را به شما می دهد تا آدرس ها و نام ها را به مختصات نقشه تبدیل کنید و برعکس ، امکان ورود و ورودی مکان را در برنامه خود فراهم می کند

اجرای برنامه MapBox

  1. در فهرست SRC خود یک مؤلفه نقشه ایجاد کنید:
// components/Map.js

import React, { useRef, useEffect } from "react";
import MapGL from "react-mapbox-gl";
import { geolocate } from "geolocation";
import MapGlGeocoder from "react-map-gl-geocoder";

const Map = (
) => {
  const mapRef = useRef(null);
  const geocoderRef = useRef(null);

  useEffect(() => {
    const map = new MapGL(mapRef.current, {
      accessToken: "[your_mapbox_access_token]",
      style: "mapbox://styles/mapbox/streets-v11",
    });

    const geocoder = new MapGlGeocoder({
      map,
      accessToken: "[your_mapbox_access_token]",
    });

    geocoderRef.current = geocoder;

    // Geolocate user
geolocate().then(({ coords }) => {
      const { latitude, longitude } = coords;
      map.jumpTo({ center: [longitude, latitude], zoom: 15.5 });
    });

    // Cleanup
return () => {
      map.remove();
    };
  }, []);

  return (
    <>
      <MapGL
        ref={mapRef}
        width="100vw"
        height="100vh"
        onViewportChange={() => geocoderRef.current.update()}
      />
      <MapGlGeocoder ref={geocoderRef} />
    </>
  );
};

export default Map;
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. app.js خود را به روز کنید تا شامل نقشه مؤلفه:
// App.js

import React from "react";
import Map from "./Map";

const App = (
) => {
  return (
    <div className="App">
      <Map />
    </div>
  );
};

export default App;
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

افزودن به اشتراک گذاری و ردیابی مکان کاربر

  1. برای تأیید اعتبار کاربر و مکان های به اشتراک گذاری یک API باکد را پیاده سازی کنید. این امر به دانش در مورد توسعه پس زمینه با استفاده از فناوری مانند نیاز دارد node.js ، express.js و mongoDBبشر

  2. با استفاده از کتابخانه هایی مانند ، احراز هویت کاربر را به برنامه React اضافه کنید قلاب برای احراز هویت

  3. با واکشی مختصات کاربر از API با پس زمینه ، ویژگی هایی را برای به اشتراک گذاشتن و ردیابی مکان های کاربران در نقشه اجرا کنید.

در اینجا همان چیزی است که کل ساختار در یک به نظر می رسد مخزن

- public
  - index.html
- src
  - assets
    - logo.svg
    - images
  - components
    - Map.js
    - MapGeocoder.js
    - UserLocationMarker.js
    - LoginForm.js
    - RegistrationForm.js
    - UserProfile.js
  - pages
    - Home.js
    - Login.js
    - Register.js
    - UserProfile.js
  - styles
    - App.css
    - Map.css
  - index.js
  - App.js
  - setUpTests.js
- .gitignore
- package.json
- README.md
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. عمومی: این پوشه شامل پرونده index.html است که به عنوان نقطه ورود برنامه عمل می کند.

  2. SRC: کد منبع برنامه شما در اینجا ساکن است. حاوی زیر پوشه های زیر است:

  • دارایی: پرونده های استاتیک مانند تصاویر ، آرم ها و نمادها را در خود جای داده است.

  • اجزای: حاوی مؤلفه های UI قابل استفاده مجدد ، از جمله MAP.JS ، MAPGEOCODER.JS ، userLocationMarker.js ، loginform.js ، RegistrationForm.js و userProfile.js.

  • صفحات: فروشگاه های REACT سطح بالا ، مانند Home.js ، login.js ، Register.js و userprofile.js.

  • سبک: شامل برگه های CSS برای اجزای شما ، مانند App.css و map.css است.

  1. پرونده های اصلی: در داخل پوشه SRC ، پرونده های مهم زیر را پیدا خواهید کرد:
  • index.js: نقطه ورود برنامه شما ، مسئول ارائه مؤلفه برنامه سطح بالا.

  • App.js: مؤلفه اصلی که به عنوان ظرف برای کل برنامه شما عمل می کند.

  • setuptests.js: پرونده ای برای تنظیم محیط های آزمایش ، در صورت لزوم.

  1. پرونده های ریشه ای در فهرست پروژه: پرونده های زیر در فهرست root قرار دارند:
  • .gitignore: پرونده ای که مشخص می کند کدام پرونده ها و دایرکتوری ها باید توسط GIT نادیده گرفته شوند.

  • Package.json: پرونده اصلی پیکربندی پروژه برای برنامه های Node.js و React ، حاوی وابستگی ها ، اسکریپت ها و ابرداده ها.

  • readme.md: پرونده ای که اطلاعات کلی ، دستورالعمل های نصب و جزئیات استفاده را برای پروژه شما ارائه می دهد.

پایان

در این آموزش ، ما یاد گرفتیم که چگونه با استفاده از React و Mapbox یک برنامه اصلی ردیابی موقعیت مکانی ایجاد کنیم. ما نقشه ای را با قابلیت های جغرافیایی اجرا کردیم که پایه و اساس اشتراک و ردیابی مکان کاربر است. برای افزایش بیشتر برنامه ، اضافه کردن ویژگی هایی مانند جستجو ، نشانگرهای کاربر و اطلاعات دقیق کاربر را در نظر بگیرید. برنامه نویسی مبارک!


در اینجا شما فقط چند پرونده ساخته شده است ، در اینجا چند یادداشت آورده شده است

ایجاد پرونده های کوچک در توسعه نرم افزار ، به ویژه در یک پروژه React ، مزایای مختلفی را ارائه می دهد که می تواند قابلیت حفظ کد ، همکاری و سازمان کلی پروژه را بهبود بخشد. در اینجا دلایلی وجود دارد که توسعه دهندگان ممکن است روی پرونده های کوچک تمرکز کنند:

  1. تعدیل: پرونده های کوچکتر به ارتقاء مدولار در کد کمک می کنند و باعث می شود تا نگرانی ها ، آزمایش و استفاده مجدد از کد را آسان تر کنید. این رویکرد همچنین به اصل مسئولیت واحد کمک می کند ، که نشان می دهد یک ماژول یا عملکرد فقط باید یک مسئولیت داشته باشد.

  2. خوانایی کد: فایلهای کوچک با تمرکز خاص باعث می شود که پایگاه کد قابل خواندن و آسانتر برای حرکت باشد و به توسعه دهندگان این امکان را می دهد تا به سرعت هدف هر پرونده و محتوای آن را درک کنند.

  3. همکاری: در یک تنظیم تیمی ، پرونده های کوچکتر همکاری را با فعال کردن چندین توسعه دهندگان برای کار بر روی مؤلفه ها ، خدمات یا ویژگی های مختلف به طور همزمان ، با کمتری درگیری ، ساده می کنند.

  4. عمل: در حالی که ابزارهای توسعه مدرن مانند Webpack و Rollup.js می توانند به طور کارآمد پرونده های بزرگ را کنترل کنند ، تقسیم کد به تکه های کوچکتر می تواند در زمینه لرزش درخت ، بارگذاری تنبل و بهبود زمان بار اولیه ، به ویژه در برنامه های مبتنی بر مرورگر کمک کند.

  5. اشکال زدایی و آزمایش: اشکال زدایی و آزمایش پرونده های کوچک و متمرکز در مقایسه با پرونده های بزرگ یکپارچه آسان تر است. توسعه دهندگان می توانند مسائل را سریعتر مشخص کنند و اطمینان حاصل کنند که هر مؤلفه یا عملکرد همانطور که انتظار می رود کار می کند و منجر به کیفیت بهتر کد و اشکالات کمتری می شود.

  6. قابلیت استفاده مجدد کد: فایلهای کوچک با عملکرد خاص می توانند به راحتی در یک پروژه یا حتی در پروژه های دیگر مورد استفاده مجدد قرار گیرند. این امر منجر به نگه داشتن کد نگهدارنده تر و خشک تر (خود را تکرار نکنید).

به طور خلاصه ، با تمرکز بر ایجاد پرونده های کوچک و مدولار در یک پروژه React می تواند سازمان کد ، خوانایی و قابلیت حفظ را ارتقا بخشد و همکاری بین اعضای تیم را بهبود بخشد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا