راهنمای API تایلهای Google Earth سرویس میمپس
راهحل مشکلات توسعهدهندگان ایرانی: دسترسی سریع و پایدار به تایلهای Google Earth با اینترنت داخلی
راهحل مشکلات توسعهدهندگان ایرانی
با توجه به شرایط خاص ایران و محدودیتهای اینترنتی، سرویس میمپس راهحلی برای دسترسی سریع و پایدار به تایلهای Google Earth ارائه میدهد
مشکلات موجود
توسعهدهندگان ایرانی با چالشهای متعددی در استفاده از سرویسهای Google Earth مواجه هستند:
- 🚫 تحریمهای گوگل: دسترسی مستقیم به سرویسهای Google Earth با محدودیت مواجه است
- 🐌 سرعت پایین اینترنت: اتصال به سرورهای خارجی با سرعت پایین و تاخیر بالا
- ❌ قطعیهای مکرر: ناپایداری در اتصال به سرورهای خارجی
- 💰 مصرف بالای پهنای باند: هر بار دانلود تایلها از سرورهای خارجی
راهحل میمپس
سرویس میمپس با هدف رفع این مشکلات طراحی شده است:
- ✅ سرور داخل کشور: استفاده از اینترنت داخلی برای سرعت بالاتر
- 📦 آرشیو کامل: جمعآوری تدریجی تایلها و ایجاد آرشیو کامل
- ⚡ سرعت بالا: دسترسی سریع به تایلهای کش شده
- 🔄 سیستم کش هوشمند: کاهش مصرف پهنای باند با استفاده از کش
اهداف و مزایای این سرویس
سرعت بالا با اینترنت داخلی
تایلها از سرور داخل کشور سرو میشوند و سرعت بارگذاری به مراتب بالاتر است
آرشیو کامل به مرور زمان
با هر درخواست، تایلها در آرشیو ذخیره میشوند و به مرور زمان آرشیو کاملتر میشود
رفع مشکلات توسعهدهندگان
توسعهدهندگان میتوانند بدون نگرانی از محدودیتها از این سرویس استفاده کنند
پایداری و اطمینان
حتی در صورت مشکل در دسترسی به Google Earth، تایلهای کش شده در دسترس هستند
ویژگیهای کلیدی سرویس
راهحلهای ارائه شده برای رفع مشکلات توسعهدهندگان ایرانی
⚡ سرعت بالا با اینترنت داخلی
تمام تایلها از سرور داخل کشور سرو میشوند که مزایای زیر را دارد:
- سرعت بارگذاری چندین برابر سریعتر
- کاهش تاخیر (Latency) به حداقل
- پایداری بیشتر در اتصال
- عدم وابستگی به سرورهای خارجی
📦 آرشیو کامل به مرور زمان
سیستم کش هوشمند به این صورت کار میکند:
- بررسی وجود تایل در آرشیو سرور
- اگر موجود بود، از آرشیو داخلی سرو میشود (خیلی سریع)
- اگر موجود نبود، یک بار از Google Earth دریافت میشود
- تایل دریافت شده در آرشیو ذخیره میشود
- درخواستهای بعدی از آرشیو سرو میشوند
🛡️ رفع مشکلات تحریم و محدودیت
این سرویس مشکلات زیر را برطرف میکند:
- ✅ عدم نیاز به دسترسی مستقیم به Google Earth
- ✅ کار با اینترنت داخلی و بدون محدودیت
- ✅ پایداری بالا حتی در صورت قطع اتصال خارجی
- ✅ کاهش مصرف پهنای باند بینالمللی
💡 صرفهجویی در منابع
استفاده از این سرویس باعث صرفهجویی در موارد زیر میشود:
- 💰 کاهش مصرف پهنای باند بینالمللی
- ⚡ کاهش زمان بارگذاری
- 🔄 کاهش تعداد درخواستها به سرورهای خارجی
- 📊 بهبود تجربه کاربری
نقطه پایانی API
آدرس و روش استفاده از API تایلهای Google Earth
نقطه پایانی دریافت تایل
https://memaps.ir/api/google-earth/{layer}/{z}/{x}/{y}.{ext}Method:
GETContent-Type:
image/png یا image/jpeg
پارامترهای URL:
| پارامتر | توضیح | مثال |
|---|---|---|
{layer} |
نوع لایه (satellite, map, hybrid, terrain, roadmap) | satellite |
{z} |
سطح زوم (0 تا 20) | 10 |
{x} |
مختصات X تایل | 512 |
{y} |
مختصات Y تایل | 512 |
{ext} |
فرمت تصویر (png یا jpg) | png |
مثالهای URL:
// تصویر ماهوارهای
GET https://memaps.ir/api/google-earth/satellite/10/512/512.png
// نقشه ترکیبی
GET https://memaps.ir/api/google-earth/hybrid/15/16384/16384.png
// نقشه زمینشناسی
GET https://memaps.ir/api/google-earth/terrain/8/128/128.png
انواع لایههای Google Earth
انواع مختلف لایههایی که میتوانید استفاده کنید
🛰️ ماهوارهای (Satellite)
تصاویر ماهوارهای با کیفیت بالا از Google Earth
https://memaps.ir/api/google-earth/satellite/{z}/{x}/{y}.png
- نمایش تصاویر واقعی زمین
- بررسی مناطق جغرافیایی
- تحلیل زمینشناسی
🗺️ نقشه (Map)
نقشه استاندارد Google Earth با نام خیابانها و مکانها
https://memaps.ir/api/google-earth/map/{z}/{x}/{y}.png
- نمایش نقشه با جزئیات
- ناوبری و مسیریابی
- یافتن مکانها
🌐 ترکیبی (Hybrid)
ترکیب تصاویر ماهوارهای با نام خیابانها و مکانها
https://memaps.ir/api/google-earth/hybrid/{z}/{x}/{y}.png
- بهترین گزینه برای ناوبری
- ترکیب تصویر واقعی با اطلاعات
- نمایش دقیقتر مکانها
⛰️ زمینشناسی (Terrain)
نقشه زمینشناسی با نمایش ارتفاع و توپوگرافی
https://memaps.ir/api/google-earth/terrain/{z}/{x}/{y}.png
- تحلیل توپوگرافی
- بررسی ارتفاع مناطق
- مطالعات زمینشناسی
مثالهای عملی
نحوه استفاده از API در پروژههای مختلف
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([35.6892, 51.3890], 10);
// لایه ماهوارهای
L.tileLayer('https://memaps.ir/api/google-earth/satellite/{z}/{x}/{y}.png', {
attribution: '© Google Earth via Memaps.ir',
maxZoom: 20
}).addTo(map);
</script>
</body>
</html>
Leaflet - لایه ترکیبی
// ایجاد نقشه
var map = L.map('map').setView([35.6892, 51.3890], 10);
// لایه ترکیبی (ماهواره + نام خیابانها)
var hybridLayer = L.tileLayer(
'https://memaps.ir/api/google-earth/hybrid/{z}/{x}/{y}.png',
{
attribution: '© Google Earth via Memaps.ir',
maxZoom: 20
}
);
// لایه ماهوارهای
var satelliteLayer = L.tileLayer(
'https://memaps.ir/api/google-earth/satellite/{z}/{x}/{y}.png',
{
attribution: '© Google Earth via Memaps.ir',
maxZoom: 20
}
);
// اضافه کردن لایه پیشفرض
hybridLayer.addTo(map);
// کنترل تغییر لایه
L.control.layers({
'ترکیبی': hybridLayer,
'ماهوارهای': satelliteLayer
}).addTo(map);
OpenLayers - تصویر ماهوارهای
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/ol@v7.4.0/ol.css">
<script src="https://cdn.jsdelivr.net/npm/ol@v7.4.0/dist/ol.js"></script>
</head>
<body>
<div id="map" style="height: 400px;"></div>
<script>
var layer = new ol.layer.Tile({
source: new ol.source.XYZ({
url: 'https://memaps.ir/api/google-earth/satellite/{z}/{x}/{y}.png',
crossOrigin: 'anonymous'
})
});
var map = new ol.Map({
target: 'map',
layers: [layer],
view: new ol.View({
center: ol.proj.fromLonLat([51.3890, 35.6892]),
zoom: 10
})
});
</script>
</body>
</html>
JavaScript - دریافت مستقیم
// دریافت تایل به صورت مستقیم
async function getGoogleEarthTile(layer, z, x, y) {
const url = `https://memaps.ir/api/google-earth/${layer}/${z}/${x}/${y}.png`;
try {
const response = await fetch(url);
if (response.ok) {
const blob = await response.blob();
const imageUrl = URL.createObjectURL(blob);
// نمایش تصویر
const img = document.createElement('img');
img.src = imageUrl;
document.body.appendChild(img);
}
} catch (error) {
console.error('خطا در دریافت تایل:', error);
}
}
// استفاده
getGoogleEarthTile('satellite', 10, 512, 512);
سیستم کش خودکار
نحوه کار سیستم کش و مزایای آن
نحوه کار سیستم کش
بررسی کش
درخواست تایل دریافت میشود و سیستم بررسی میکند آیا این تایل قبلاً دریافت شده است یا نه.
بازگشت از کش
اگر تایل در کش موجود باشد، همان تایل به سرعت به کاربر برگردانده میشود.
دریافت از Google
اگر تایل در کش موجود نباشد، درخواست به سرور Google Earth ارسال میشود.
ذخیره در کش
تایل دریافت شده در کش سرور ذخیره میشود (آرشیو) برای استفادههای بعدی.
مزایای سیستم کش برای توسعهدهندگان ایرانی:
- ✅ سرعت بالا: تایلهای کش شده از سرور داخلی با سرعت بسیار بالاتر بارگذاری میشوند
- ✅ عدم وابستگی به اتصال خارجی: تایلهای کش شده بدون نیاز به اتصال به Google Earth در دسترس هستند
- ✅ پایداری: حتی در صورت مشکل در دسترسی به Google Earth یا قطع اینترنت خارجی، تایلهای کش شده در دسترس هستند
- ✅ صرفهجویی در پهنای باند: تایلهای تکراری از آرشیو داخلی سرو میشوند و نیازی به دانلود مجدد نیست
- ✅ آرشیو کامل به مرور زمان: با هر استفاده، آرشیو کاملتر میشود و دسترسی به تایلها سریعتر میشود
اطلاعات کش
میتوانید اطلاعات کش را از طریق endpoint زیر دریافت کنید:
GET https://memaps.ir/api/google-earth/cache/info
این endpoint اطلاعاتی مانند حجم کش، تعداد فایلها و مسیر دایرکتوری کش را برمیگرداند.
پشتیبانی از CORS
API تایلهای Google Earth میمپس از CORS پشتیبانی میکند و میتوانید مستقیماً از مرورگر استفاده کنید:
// استفاده مستقیم از مرورگر
const img = document.createElement('img');
img.src = 'https://memaps.ir/api/google-earth/satellite/10/512/512.png';
img.crossOrigin = 'anonymous';
document.body.appendChild(img);
// یا با fetch
fetch('https://memaps.ir/api/google-earth/satellite/10/512/512.png')
.then(response => response.blob())
.then(blob => {
const url = URL.createObjectURL(blob);
const img = document.createElement('img');
img.src = url;
document.body.appendChild(img);
});