استفاده از نشان‌های جلسه با Map Tiles API

توسعه‌دهندگان منطقه اقتصادی اروپا (EEA)

نشانه جلسه بخشی از داده‌ها (یک UUID) است که در تماس‌های REST برای شناسایی جلسه— مجموعه‌ای از تبادل‌های پیام مرتبط—استفاده می‌شود. باید در همه درخواست‌ها برای «کاشی‌های دوبعدی» و تصاویر «نمای خیابان» یک کد جلسه اضافه کنید. آن را به‌عنوان مقدار پارامتر session که به همه نشانی‌های وب درخواست پیوست شده است اضافه می‌کنید.

در Map Tiles API، کد جلسه نشان‌دهنده مجموعه تعریف‌شده‌ای از گزینه‌های نمایش است. این یعنی لازم نیست با هر درخواست کاشی، مجموعه‌ای از گزینه‌های نمایش را ارسال کنید. می‌توانید از یک کد جلسه در چندین کارخواه استفاده کنید. درحال‌حاضر کد جلسه به‌مدت دو هفته از زمان صدور آن معتبر است، اما ممکن است این مدت تغییر کند. همیشه می‌توانید زمان انقضای کد جلسه را با نگاه کردن به فیلد expiry در پیام پاسخ بررسی کنید.

درخواست کد جلسه

برای درخواست کد جلسه، درخواست HTTPS POST را به نقطه پایانی createSession ارسال کنید، همان‌طور که در مثال زیر نشان داده شده است. باید درخواست را با سرصفحه Content-Type: application/json ارسال کنید.

curl -X POST -d '{
  "mapType": "streetview",
  "language": "en-US",
  "region": "US"
}' \
-H 'Content-Type: application/json' \
"https://tile.googleapis.com/v1/createSession?key=YOUR_API_KEY"

قسمت‌های الزامی

mapType

نوع نقشه مبنا. این مقدار می‌تواند یکی از موارد زیر باشد:

roadmap
کاشی‌های نقشه رنگ‌شده استاندارد Google Maps.
satellite
تصاویر ماهواره‌ای.
terrain
تصاویر
عوارض زمینی. وقتی terrain را به‌عنوان نوع نقشه انتخاب می‌کنید، باید نوع لایه layerRoadmap را نیز اضافه کنید (در بخش فیلدهای اختیاری توضیح داده شده است).
streetview
تمام‌نمای «نمای خیابان». برای اطلاعات بیشتر، به کاشی‌های «نمای خیابان» مراجعه کنید.
language

یک برچسب زبان IETF که زبان مورداستفاده برای نمایش اطلاعات روی کاشی‌ها را مشخص می‌کند. برای مثال، en-US زبان انگلیسی را که در ایالات متحده صحبت می‌شود مشخص می‌کند.

region

شناسه منطقه مخزن داده‌های محلی مشترک (دو حرف بزرگ) که مکان فیزیکی کاربر را نشان می‌دهد. برای مثال، US.

فیلدهای اختیاری

imageFormat
قالب فایل را برای برگرداندن مشخص می‌کند. مقادیر معتبر jpeg یا png است. فایل‌های JPEG از شفافیت پشتیبانی نمی‌کنند، بنابراین برای کاشی‌های هم‌پوشان توصیه نمی‌شوند. اگر imageFormat را مشخص نکنید، بهترین قالب برای کاشی به‌طور خودکار انتخاب می‌شود.
scale

اندازه عناصر نقشه (مانند برچسب‌های جاده) را افزایش می‌دهد، درحالی‌که اندازه کاشی و منطقه تحت پوشش کاشی پیش‌فرض را حفظ می‌کند. افزایش مقیاس همچنین تعداد برچسب‌های روی نقشه را کاهش می‌دهد که باعث کاهش درهم‌ریختگی می‌شود. مقادیر زیر مقادیر معتبر scale هستند:

  • scaleFactor1x: پیش‌فرض.
  • ‫scaleFactor2x: اندازه برچسب را دوبرابر می‌کند و برچسب‌های ویژگی جزئی را برمی‌دارد.
  • ‫scaleFactor4x: اندازه برچسب را چهار برابر می‌کند و برچسب‌های ویژگی‌های جزئی را برمی‌دارد.

مثال‌های زیر تأثیر مقیاس‌بندی عناصر نقشه را نشان می‌دهد.

ضریب مقیاس ۱ برابر ضریب مقیاس ۲ برابر
نقشه با ضریب مقیاس ۱ برابر نقشه با ضریب مقیاس ۲ برابر
highDpi
مشخص می‌کند که آیا کاشی‌های با وضوح بالا برگردانده شوند یا نه. اگر ضریب مقیاس افزایش یابد، از highDpi برای افزایش اندازه کاشی استفاده می‌شود. معمولاً، افزایش ضریب مقیاس باعث می‌شود کاشی حاصل به تصویری با همان اندازه بزرگ شود، که کیفیت را کاهش می‌دهد. با highDpi، اندازه نهایی نیز افزایش می‌یابد و کیفیت حفظ می‌شود. DPI مخفف «نقطه در اینچ» است و «DPI بالا» یعنی کاشی بااستفاده از نقاط بیشتری در اینچ نسبت‌به حالت عادی پرداز می‌شود. اگر true، تعداد پیکسل‌ها در هریک از ابعاد x و y در ضریب مقیاس (یعنی ۲ برابر یا ۴ برابر) ضرب می‌شود. منطقه تحت پوشش کاشی بدون تغییر باقی می‌ماند. این پارامتر فقط با مقادیر scale از ۲ برابر یا ۴ برابر کار می‌کند. این تنظیم هیچ تأثیری بر کاشی‌های مقیاس ۱x ندارد.
ضریب مقیاس ۱ برابر ضریب مقیاس ۲ برابر DPI بالا
نقشه با وضوح معمولی نمایش داده شد نقشه با وضوح ۲ برابر High DPI نمایش داده می‌شود
layerTypes

آرایه‌ای از مقادیر که انواع لایه‌های اضافه‌شده به نقشه را مشخص می‌کند. مقادیر معتبر عبارت‌اند از:

layerRoadmap
اگر terrain را به‌عنوان نوع نقشه مشخص کنید، الزامی است. همچنین می‌تواند به‌صورت اختیاری روی نوع نقشه satellite هم‌پوشانی شود. بر کاشی‌های نقشه راه تأثیری ندارد.
layerStreetview
خیابان‌ها و مکان‌های فعال‌شده با «نمای خیابان» را بااستفاده از خطوط آبی در نقشه نشان می‌دهد.
layerTraffic
وضعیت ترافیک فعلی را نمایش می‌دهد.
styles

آرایه‌ای از اشیای سبک JSON که ظاهر و سطح جزئیات عارضه‌های نقشه مانند جاده‌ها، پارک‌ها، و مناطق ساخته‌شده را مشخص می‌کند. از سبک‌بندی برای سفارشی‌سازی نقشه مبنای استاندارد Google استفاده می‌شود. پارامتر styles فقط درصورتی معتبر است که نوع نقشه roadmap باشد. برای نحو کامل سبک، به مرجع سبک مراجعه کنید.

overlay

مقدار بولی که مشخص می‌کند آیا layerTypes باید به‌صورت رونهاد جداگانه پرداز شود یا با تصاویر پایه ترکیب شود. وقتی true، نقشه پایه نمایش داده نمی‌شود. اگر هیچ layerTypes تعریف نکرده‌اید، این مقدار نادیده گرفته می‌شود.

برای مثال، درخواست نوع نقشه satellite با لایه layerRoadmap، و overlay تنظیم‌شده روی false منجر به کاشی‌هایی معادل نوع نقشه hybrid استفاده‌شده در Maps JavaScript API می‌شود (تصویر سمت راست). همان انواع نقشه و لایه با overlay تنظیم‌شده روی true منجر به کاشی شفاف با رونهاد نقشه می‌شود که به‌طور مناسب برای رونهاد کردن روی تصاویر ماهواره‌ای (تصویر سمت راست) سبک‌بندی شده است.

overlay: نادرست overlay: درست
رونهاد روی «نادرست» تنظیم شد رونهاد روی درست تنظیم شد

‫JSON زیر نمونه‌ای از بدنه درخواست معمولی است که هم فیلدهای الزامی و هم فیلدهای اختیاری را دربرمی‌گیرد.

{
  "mapType": "satellite",
  "language": "en-US",
  "region": "us",
  "layerTypes": [ "layerRoadmap", "layerStreetview" ],
  "overlay":  true,
  "scale": "scaleFactor1x",
  "styles": [
    {
      "stylers": [
        { "hue": "#00ffe6" },
        { "saturation": -20 }
      ]
    },{
      "featureType": "road",
      "elementType": "geometry",
      "stylers": [
        { "lightness": 100 },
        { "visibility": "simplified" }
      ]
    }
  ]
}

این مثال هم‌پوشانی‌ای را ارائه می‌دهد که برای ترکیب با تصاویر ماهواره‌ای مناسب است. این نمونه شامل هم نقشه راه و هم رونهاد نمای خیابان است. نقشه حاصل با نام‌ها و داده‌ها به زبان انگلیسی، همان‌طور که در ایالات متحده صحبت می‌شود، ارائه می‌شود.

پاسخ کد جلسه

JSON زیر نمونه‌ای از بدنه پاسخ است.

{
  "session": "IgAAAHGU9jnAU4KOAfwY3Bcd6eH_WxQsyocSBAdUnAr9pnvTTNXtF9c_27RBo94ytEXTDg",
  "expiry": "1361828036",
  "tileWidth": 256,
  "tileHeight": 256,
  "imageFormat": "png"
}

فهرست زیر حاوی تعاریف فیلدها در بدنه پاسخ است.

session
مقدار کد جلسه که باید در همه درخواست‌های Map Tiles API وارد کنید.
expiry
رشته‌ای که حاوی زمان (به ثانیه از تاریخ) انقضای توکن است. رمز جلسه از زمان ایجاد آن دو هفته معتبر است، اما این خط‌مشی ممکن است بدون اطلاع قبلی تغییر کند.
tileWidth
عرض کاشی‌ها به پیکسل اندازه‌گیری می‌شود.
tileHeight
ارتفاع کاشی‌ها به پیکسل اندازه‌گیری می‌شود.
imageFormat
قالب تصویر که می‌تواند png یا jpeg باشد.