

- خانه
- سوپر پکیج فرانت اند
- تماس با ما
- ورود
راهنمای اتصال Google Maps به اپلیکیشنهای React

📍 راهنمای کامل و راهبردی اتصال Google Maps به اپلیکیشنهای React
📍 تو این دنیای دیجیتالی، نقشهها همهجا هستن!
این روزا نقشهها تبدیل شدن به یه بخش جدانشدنی از خیلی از اپلیکیشنهای وب و موبایل. فرقی نمیکنه که داری یه اپ تاکسییاب میسازی 🚕، دنبال راهی برای نشون دادن لوکیشن فروشگاههات هستی 🛍️، یا فقط میخوای دادههایی که بر اساس موقعیت مکانی هستن رو نشون بدی — اتصال Google Maps به اپلیکیشن Reactت میتونه یه دنیا امکانات و تجربهی بهتر برای کاربرات به همراه داشته باشه .
توی این راهنمای جامع و کاربردی، قراره قدمبهقدم با هم جلو بریم و یاد بگیریم چطور Google Maps رو به پروژهی React اضافه کنیم. کلی مثال کاربردی هم در راه داریم که کمک میکنه راحتتر همه چی رو یاد بگیری 💡
🧰 پیشنیازها:
قبل از اینکه بریم سراغ مراحل اتصال Google Maps، بهتره مطمئن بشی که این چند مورد رو آماده داری:
-
Node.js 🟩: باید Node.js روی سیستمت نصب باشه. میتونی از nodejs.org دانلودش کنی.
-
React ⚛️: یه آشنایی اولیه با React لازمه — مثل ساختن کامپوننتها و کار با state و props.
-
کلید API گوگل مپ 🔑: برای دسترسی به سرویسهای Google Maps، به یه API Key نیاز داری. میتونی طبق مستندات Google Maps Platform یکی بگیری.
🛠️ مرحله ۱: ساخت یه اپلیکیشن جدید با React
اگه هنوز پروژه React راه ننداختی، میتونی خیلی راحت با استفاده از Create React App یکی بسازی:
npx create-react-app google-maps-react-app
cd google-maps-react-app
📦 مرحله ۲: نصب پکیجهای موردنیاز
برای کار با Google Maps توی React، لازمه پکیج google-maps-react
رو نصب کنی. این پکیج یه راه راحت و مخصوص React برای کار با Google Maps JavaScript API بهت میده:
npm install google-maps-react
🧱 مرحله ۳: ساخت کامپوننت Google Map
حالا وقتشه یه کامپوننت جدید بسازیم که نقشهی گوگل رو توش نمایش بدیم.
توی پوشهی پروژهت، یه فایل جدید به اسم GoogleMap.js
بساز.
توی این کامپوننت قراره تمام قابلیتهای مربوط به Google Maps رو پیادهسازی کنیم. 🌍
// src/components/GoogleMap.js
import React, { Component } from "react";
import { Map, GoogleApiWrapper } from "google-maps-react";
class GoogleMap extends Component {
render() {
return (
<Map
google={this.props.google}
zoom={14} // میزان بزرگنمایی نقشه رو میتونی اینجا تنظیم کنی
initialCenter={{ lat: 37.7749, lng: -122.4194 }} // مرکز اولیه نقشه رو اینجا بذار
>
{/* اینجا میتونی مارکرها، پنجرههای اطلاعات و سایر بخشها رو اضافه کنی */}
</Map>
);
}
}
export default GoogleApiWrapper({
apiKey: process.env.REACT_APP_GOOGLE_MAPS_API_KEY,
})(GoogleMap);
تو این کامپوننت، ما ماژولهای لازم رو از google-maps-react
وارد میکنیم و یه کلاس به اسم GoogleMap
میسازیم که از Component
ارثبری میکنه.
داخل این کامپوننت، یه Map
رندر میکنیم که چند ویژگی اولیه داره؛ مثل ارجاع به Google Maps API (که با google
مشخص میشه)، سطح زوم، و مرکز اولیه نقشه بر اساس مختصات.
این مقادیر رو میتونی با توجه به نیازهای پروژهات به راحتی تغییر بدی و شخصیسازی کنی 🎯
🔑 مرحله ۴: تنظیم کلید API
توجه کن که کلید Google Maps API رو با استفاده از process.env.REACT_APP_GOOGLE_MAPS_API_KEY
داخل کد صدا میزنیم.
برای اینکه کلید APIت رو امن و مخفی نگه داری، یه فایل .env
توی ریشهی پروژهت بساز و کلید API رو به این شکل داخلش وارد کن:
REACT_APP_GOOGLE_MAPS_API_KEY=اینجا_کلید_API_خودت_رو_قرار_بده
حتما YOUR_API_KEY_HERE رو با کلید واقعی API خودت جایگزین کن.
▶️ مرحله ۵: استفاده از کامپوننت GoogleMap
حالا که کامپوننت GoogleMap رو ساختیم، وقتشه بیایم تو اپ اصلیمون ازش استفاده کنیم.
فایل src/App.js
رو باز کن، کامپوننت GoogleMap رو وارد (import) کن و توی اون استفادهش کن.
// src/App.js
import React from "react";
import "./App.css";
import GoogleMap from "./components/GoogleMap";
function App() {
return (
<div className="App">
<header className="App-header">
<h1>ادغام Google Maps با React</h1>
</header>
<main>
{/* اینجا کامپوننت نقشه گوگل رو فراخوانی کردیم */}
<GoogleMap />
</main>
</div>
);
}
export default App;
میتونی با تغییر دادن شیء mapStyles
و اضافه کردن قوانین استایل دلخواهت، ظاهر نقشه رو همونطوری که دوست داری طراحی کنی 🎨
🎨 مرحله ۶: استایل دادن به نقشه
تا اینجا اگه اپ Reactت رو با npm start
اجرا کنی، باید یه نقشهی سادهی Google Maps توی برنامهت ببینی.
ولی معمولاً ظاهر پیشفرض نقشه زیاد جذاب نیست.
برای اینکه نقشه رو خوشگلتر کنی، میتونی از قابلیت استایلدهی Google Maps JavaScript API استفاده کنی.
مثالی از نحوه استایل دادن به نقشه توی کامپوننت GoogleMap
رو اینجا میبینی:
// src/components/GoogleMap.js
// …
class GoogleMap extends Component {
// تعریف استایلهای نقشه
mapStyles = {
width: "100%",
height: "100%",
position: "relative",
};
render() {
return (
<Map
google={this.props.google}
zoom={14}
initialCenter={{ lat: 37.7749, lng: -122.4194 }}
style={this.mapStyles}
// اینجا میتونی استایل دلخواه نقشه رو اضافه کنی
styles={[
{
featureType: "water", // قسمت آبها
elementType: "geometry", // شکل هندسی
stylers: [
{
color: "#e9e9e9", // رنگ آب رو روشن انتخاب کردیم
},
],
},
// میتونی قوانین استایل بیشتری هم اینجا اضافه کنی
]}
>
{/* اینجا میتونی مارکر، پنجره اطلاعات و سایر اجزا رو بذاری */}
</Map>
);
}
}
// …
تو میتونی شیء mapStyles
رو دستکاری کنی و قوانین استایل خودت رو اضافه کنی تا نقشه همون شکلی که دوست داری دیده بشه 🎨✨
📍 مرحله ۷: اضافه کردن مارکر و پنجره اطلاعات (Info Window)
حالا که نقشهت رو با استایل دلخواه آماده کردی، میتونی شروع کنی به اضافه کردن مارکرها و پنجرههای اطلاعات برای نمایش دادههای مکانی.
مثلاً توی کامپوننت GoogleMap
میتونی اینطوری مارکر و پنجره اطلاعات اضافه کنی:
// src/components/GoogleMap.js
// …
class GoogleMap extends Component {
// …
render() {
return (
<Map
google={this.props.google}
zoom={14}
initialCenter={{ lat: 37.7749, lng: -122.4194 }}
style={this.mapStyles}
styles={[
{
featureType: "water",
elementType: "geometry",
stylers: [
{
color: "#e9e9e9",
},
],
},
// میتونی قوانین استایل بیشتری هم اضافه کنی
]}
>
{/* اضافه کردن مارکر */}
<Marker
position={{ lat: 37.7749, lng: -122.4194 }}
title="San Francisco"
icon={{
url: "path_to_custom_marker_icon.png", // اینجا میتونی آیکون مارکر رو سفارشی کنی
scaledSize: new this.props.google.maps.Size(40, 40),
}}
/>
{/* اضافه کردن پنجره اطلاعات */}
<InfoWindow position={{ lat: 37.7749, lng: -122.4194 }}>
<div>
<h3>San Francisco</h3>
<p>این یه شهر زیباست!</p>
</div>
</InfoWindow>
</Map>
);
}
}
// …
تو این مثال، یه مارکر با آیکون دلخواه روی مختصات مشخص شده گذاشتیم. همچنین یه پنجره اطلاعات اضافه کردیم که وقتی روی مارکر کلیک میکنی، اطلاعات بیشتری نشون میده.
میتونی هم ظاهر مارکر و هم محتوای پنجره اطلاعات رو هرجوری که خواستی تغییر بدی و شخصیسازی کنی 🎨✨
🤚 مرحله ۸: تعامل با نقشه (Add Interactivity)
برای اینکه نقشه Google Mapت جذابتر و تعاملیتر باشه، میتونی بهش رویداد (Event Listener) اضافه کنی تا به کلیکهای کاربر واکنش نشون بده.
مثلاً میتونی کاری کنی که وقتی کاربر روی نقشه کلیک کرد، یه مارکر جدید همونجا اضافه بشه.
اینجا یه مثال ساده از این قابلیت توی کامپوننت GoogleMap
هست:
// src/components/GoogleMap.js
// …
class GoogleMap extends Component {
// …
handleMapClick = (mapProps, map, clickEvent) => {
const { latLng } = clickEvent;
const lat = latLng.lat();
const lng = latLng.lng();
// ساخت مارکر جدید روی مختصات کلیک شده
new this.props.google.maps.Marker({
position: { lat, lng },
map,
title: "New Marker",
});
};
render() {
return (
<Map
google={this.props.google}
zoom={14}
initialCenter={{ lat: 37.7749, lng: -122.4194 }}
style={this.mapStyles}
styles={[
{
featureType: "water",
elementType: "geometry",
stylers: [
{
color: "#e9e9e9",
},
],
},
// میتونی قوانین استایل بیشتری اضافه کنی
]}
onClick={this.handleMapClick} // اضافه کردن رویداد کلیک به نقشه
>
{/* اینجا میتونی مارکر و پنجره اطلاعات اضافه کنی */}
</Map>
);
}
}
// …
تو این مثال، ما یه متد به اسم handleMapClick
ساختیم که هر جا کاربر روی نقشه کلیک کنه، یه مارکر جدید همونجا اضافه میکنه.
این متد رو هم به رویداد onClick
کامپوننت Map
وصل کردیم تا فعال بشه.
🎨 مرحله ۹: سفارشیسازی پنجرههای اطلاعات (Info Windows)
سفارشیسازی پنجرههای اطلاعات بخش مهمی از تجربه کاربری خوبه.
میتونی با استفاده از HTML و CSS، محتوای پنجرههای اطلاعات رو طوری طراحی کنی که با ظاهر کلی اپلیکیشنت هماهنگ باشه.
مثلاً اینجا یه نمونه از ساخت پنجره اطلاعات با ظاهر استایلشده تو کامپوننت GoogleMap
داریم:
// src/components/GoogleMap.js
// …
class GoogleMap extends Component {
// …
render() {
return (
<Map
google={this.props.google}
zoom={14}
initialCenter={{ lat: 37.7749, lng: -122.4194 }}
style={this.mapStyles}
styles={[
{
featureType: "water",
elementType: "geometry",
stylers: [
{
color: "#e9e9e9",
},
],
},
// میتونی استایلهای بیشتری اضافه کنی
]}
>
<Marker
position={{ lat: 37.7749, lng: -122.4194 }}
title="San Francisco"
/>
<InfoWindow position={{ lat: 37.7749, lng: -122.4194 }}>
{/* محتوای سفارشی پنجره اطلاعات */}
<div style={{ maxWidth: "200px" }}>
<h3 style={{ margin: "0", padding: "10px", background: "#007BFF", color: "white" }}>
San Francisco
</h3>
<div style={{ padding: "10px" }}>
<p>این یه شهر خیلی زیباست!</p>
</div>
</div>
</InfoWindow>
</Map>
);
}
}
// …
تو این مثال، ما به محتوای پنجره اطلاعات استایلهای HTML و CSS دلخواه اضافه کردیم.
تو هم میتونی محتوای پنجره و ظاهرش رو هرجوری که با طراحی اپلیکیشنت هماهنگه، بیشتر شخصیسازی کنی 🎨✨
🚀 مرحله 10: قابلیتها و کتابخونههای بیشتر
Google Maps امکانات خیلی زیادی داره که فراتر از این راهنمایی که داشتیم هست.
بسته به نیاز پروژهات، شاید بخوای این قابلیتها رو هم بررسی کنی:
-
🗺️ Geocoding: تبدیل آدرس به مختصات جغرافیایی (عرض و طول جغرافیایی) و برعکس، با استفاده از Google Maps Geocoding API
-
🛣️ Directions: برنامهریزی مسیر و مسیریابی با Google Maps Directions API
-
🏨 Places: امکان جستجوی اماکن مختلف مثل رستوران، هتل و جاذبهها با Google Places API
-
🔥 Heatmaps: نمایش دادهها به صورت نقشههای حرارتی برای دیدن الگوها و روندها روی نقشه
-
✏️ Drawing Tools: اجازه دادن به کاربر برای کشیدن اشکال، خطوط و چندضلعی روی نقشه
-
📍 Clustered Markers: گروهبندی مارکرها وقتی نزدیک هم هستن تا نقشه خواناتر بشه
برای استفاده از این قابلیتهای بیشتر، باید به APIهای مربوطه که google maps ارائه میده دسترسی داشته باشی و اونا رو تو اپلیکیشن React خودت ادغام کنی 🛠️📲
🎯 نتیجهگیری
ادغام Google Maps تو اپلیکیشن Reactت میتونه کارکردش رو خیلی بهتر کنه و خدمات مبتنی بر موقعیت مکانی ارزشمندی به کاربرهات ارائه بده.
تو این راهنما، مراحل اصلی رو پوشش دادیم تا شروع کنی؛ از ساخت نقشه پایه، اضافه کردن مارکر و پنجرههای اطلاعات، شخصیسازی ظاهر نقشه، تا مدیریت تعاملات کاربر.
یادت باشه Google Maps امکانات و قابلیتهای زیادی داره، پس حتماً با توجه به نیازهای پروژهات، ویژگیهای بیشتری رو امتحان کن و به اپلیکیشنت اضافه کن 🚀🌍
چه یه اپ سفر درست میکنی، چه سرویس تحویل یا هر برنامهای که با موقعیت جغرافیایی سروکار داره، ادغام google maps میتونه اپ React تو رو یک قدم جلوتر ببره.
موفق باشی و نقشهکشی خوبی داشته باشی! 🗺️✨
اگه سوال یا نیاز به کمک داشتی، حتماً به ما پیام بده. ما اینجا هستیم تا در مسیر یادگیری React همراه و همراهیت کنیم 💙👩💻👨💻
دریافت مشاوره خرید
به مشاوره نیاز دارید؟ شماره تماس خود را بگذارید.دوره پیشنهادی

.png&w=256&q=75)
آموزش صفر تا صد React js انواع پروژه
دیدگاه کاربران
(0 دیدگاه)