| bin | ||
| config | ||
| docs | ||
| public | ||
| scripts | ||
| src | ||
| templates | ||
| .editorconfig | ||
| .env | ||
| .env.dev | ||
| .gitignore | ||
| composer.json | ||
| composer.lock | ||
| create-search-user.sh | ||
| package.json | ||
| README.md | ||
| symfony.lock | ||
میمپس - سرویس نقشه رستری
سرویس نقشه میمپس ارائهدهنده نقشههای رستری با کیفیت بالا برای استفاده در پروژههای مختلف است.
ویژگیها
- ✅ رایگان و بدون محدودیت: استفاده کاملاً رایگان بدون نیاز به ثبتنام
- ✅ کیفیت بالا: نقشههای با کیفیت بالا و جزئیات دقیق
- ✅ سازگاری کامل: سازگار با تمام کتابخانههای نقشه موجود
- ✅ سرعت بالا: بهینهسازی شده برای سرعت بارگذاری بالا
- ✅ راستچین: پشتیبانی کامل از زبان فارسی و راستچین
تکنولوژیهای استفاده شده
- Backend: Symfony 6
- Frontend: Twig Templates
- CSS Framework: Tailwind CSS
- Font: Vazirmatn (فونت فارسی)
- Map Library: Leaflet.js
- Server: Apache
نصب و راهاندازی
پیشنیازها
- PHP 8.1 یا بالاتر
- Composer
- Apache/Nginx
- MySQL/PostgreSQL (اختیاری)
مراحل نصب
- کلون کردن پروژه:
git clone https://github.com/your-username/memaps.git
cd memaps
- نصب وابستگیها:
composer install
- تنظیم محیط:
cp .env.example .env
# ویرایش فایل .env و تنظیم متغیرهای محیطی
- ایجاد دیتابیس (اختیاری):
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate
- تنظیم مجوزها:
chmod -R 777 var/
chmod -R 777 public/assets/
ساختار پروژه
memaps.ir/
├── config/ # تنظیمات Symfony
├── public/ # فایلهای عمومی
│ ├── assets/ # فایلهای استاتیک
│ │ ├── css/ # فایلهای CSS
│ │ ├── fonts/ # فونتهای فارسی
│ │ ├── images/ # تصاویر
│ │ └── leaflet/ # کتابخانه Leaflet
│ └── index.php # نقطه ورود
├── src/ # کدهای PHP
├── templates/ # قالبهای Twig
│ ├── base.html.twig # قالب پایه
│ └── main/ # قالبهای صفحات اصلی
├── var/ # فایلهای موقت
└── vendor/ # وابستگیهای Composer
استفاده از API
URL Pattern
https://memaps.ir/hots/{z}/{x}/{y}.png
پارامترها
{z}: سطح زوم (1 تا 18){x}: مختصات X تایل{y}: مختصات Y تایل
API تایل Bing (با کش)
تایلهای Bing از طریق API با کش سمت سرور ارائه میشوند. درخواست اول از Bing دریافت و کش میشود؛ درخواستهای بعدی از کش پاسخ داده میشوند.
API مسیریابی ماتریسی (فقط محدوده ایران)
-
مسیر:
POST /api/matrix -
ورودی:
originsوdestinations(آرایه نقاط[lon, lat]). تمام نقاط باید در محدوده ایران باشند. -
خروجی: ماتریس فاصله (متر) و زمان (ثانیه) بین مبدأها و مقصدها.
-
راهنما: docs/API_MATRIX.md. برای راهاندازی گراف مسیریابی از اسکریپت
scripts/setup-routing-graph.sqlاستفاده کنید. -
مسیر:
https://memaps.ir/api/bing/{layer}/{z}/{x}/{y}.{ext} -
لایهها:
road(نقشه جاده، پسوند.png)،aerial(ماهواره)،hybrid(ترکیبی؛ پسوند.jpgبرای aerial و hybrid) -
زوم: ۱ تا ۲۳
نمونه با Leaflet:
L.tileLayer('https://memaps.ir/api/bing/road/{z}/{x}/{y}.png', { maxZoom: 23 }).addTo(map);
L.tileLayer('https://memaps.ir/api/bing/aerial/{z}/{x}/{y}.jpg', { maxZoom: 23 }).addTo(map);
اختیاری: برای استفاده رسمی از Bing میتوانید در .env مقدار BING_MAPS_KEY را از Bing Maps Portal تنظیم کنید.
نمونه استفاده با Leaflet
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
</head>
<body>
<div id="map" style="height: 400px;"></div>
<script>
var map = L.map('map').setView([32.4279, 53.6880], 6);
L.tileLayer('https://memaps.ir/hots/{z}/{x}/{y}.png', {
attribution: '© میمپس',
maxZoom: 18
}).addTo(map);
</script>
</body>
</html>
نمونه استفاده با OpenLayers
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/ol@v7.4.0/dist/ol.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ol@v7.4.0/ol.css">
</head>
<body>
<div id="map" style="height: 400px;"></div>
<script>
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.XYZ({
url: 'https://memaps.ir/hots/{z}/{x}/{y}.png',
attributions: '© میمپس'
})
})
],
view: new ol.View({
center: ol.proj.fromLonLat([53.6880, 32.4279]),
zoom: 6
})
});
</script>
</body>
</html>
صفحات موجود
- صفحه اصلی (
/): معرفی سرویس و نمایش نقشه تعاملی - راهنمای استفاده (
/usage): مستندات کامل و نمونههای کاربردی
ویژگیهای طراحی
- طراحی واکنشگرا: سازگار با تمام دستگاهها
- راستچین: پشتیبانی کامل از زبان فارسی
- فونت فارسی: استفاده از فونت وزیرمتن
- رنگبندی مدرن: استفاده از رنگهای جذاب و هماهنگ
- انیمیشنهای نرم: تجربه کاربری بهتر
مشارکت
برای مشارکت در پروژه:
- پروژه را Fork کنید
- یک شاخه جدید ایجاد کنید (
git checkout -b feature/amazing-feature) - تغییرات خود را Commit کنید (
git commit -m 'Add amazing feature') - به شاخه اصلی Push کنید (
git push origin feature/amazing-feature) - یک Pull Request ایجاد کنید
لایسنس
این پروژه تحت لایسنس MIT منتشر شده است. برای اطلاعات بیشتر فایل LICENSE را مطالعه کنید.
تماس با ما
- ایمیل: info@memaps.ir
- وبسایت: https://memaps.ir
- مخزن: https://github.com/your-username/memaps
تشکر
از تمام افرادی که در توسعه این پروژه مشارکت داشتهاند تشکر میکنیم.