چگونه میتوانم یک ایزوکرون ورودی «رفتوآمد به محل کار» (سفر به مقصد) را درمقابل یک ایزوکرون خروجی (سفر از مبدأ) محاسبه کنم؟
محاسبات ورودی و خروجی در v1 API بااستفاده از پارامتر
travelDirection (travel_direction) پشتیبانی میشود:
FROM(برونمرزی): مساحت قابلدسترسیfromنقطه مبدأ را در محدوده زمانی مشخصشده محاسبه میکند. این برای موارد استفادهای مثل محدودههای تحویل یا پوشش خدمات مناسب است.TO(ورودی): منطقهای را محاسبه میکند که میتوانید از آنجا در محدوده زمانی مشخصشده به نقطه مبدأto. این برای برنامههایی مثل ویژگیهای رفتوآمد به محل کار یا تعیین مناطق تحت پوشش در اطراف دفتر مرکزی یا مرکز حملونقل مناسب است.
چهار حالت سفر (DRIVE، TWO_WHEELER، BICYCLE، و WALK) چه تفاوتی باهم دارند؟
هر حالت از قوانین دسترسی به شبکه جادهای، هزینههای دور زدن، و مدل سرعت خاص خود استفاده میکند:
-
DRIVE: جادههای قابلرانندگی را بااستفاده از سرعتهای اعلامشده یا جریان آزاد یا سرعتهای ترافیک زنده (TRAFFIC_AWARE) تا ۳٬۶۰۰ ثانیه (۶۰ دقیقه) طی میکند. -
TWO_WHEELER: جادههای قابلدسترسی برای وسایل نقلیه موتوری دوچرخ را با سرعتهای مدلسازیشده پایینتر ازDRIVEدر جادههای پرسرعت و مسیریابی اختیاریTRAFFIC_AWAREتا ۳٬۶۰۰ ثانیه (۶۰ دقیقه) طی میکند. درنتیجه،TWO_WHEELERهمزمان بزرگتر ازBICYCLEاما کوچکتر ازDRIVEدر امتداد بزرگراههای پرسرعت است. -
BICYCLE: خیابانهای قابلدسترسی با دوچرخه، خطوط دوچرخه، و مسیرها را با سرعتهای تنظیمشده برای نوع جاده و شیب (بهاستثنای بزرگراهها و آزادراهها) تا ۷٬۲۰۰ ثانیه (۱۲۰ دقیقه) طی میکند. -
WALK: پیادهروها، مسیرها، و خیابانهای عابر پیاده را با سرعت پیادهروی تنظیمشده برای شیب (با نادیده گرفتن محدودیتهای یکطرفه وسایل نقلیه) تا ۷٬۲۰۰ ثانیه (۱۲۰ دقیقه) طی میکند.
آیا Isochrones API شامل کشتی یا گذرگاههای آبی میشود؟
نه. Isochrones API فقط اتصالات جاده، پل، تونل، و مسیر را طی میکند. مسیرهای کشتی و گذرگاههای حملونقل آبی در همه حالتهای سفر مستثنی شدهاند. جزیرهها یا شبهجزیرههایی که فقط با کشتی به هم متصل هستند در همزمانخطی که از سرزمین اصلی تولید شده است گنجانده نمیشوند.
گاهی اوقات چندضلعی برگرداندهشده بلوکی بهنظر میرسد یا لبههای دندانهدار و پلهای دارد، بهویژه برای مدتهای طولانیتر. چرا سطح جزئیات تغییر میکند؟
Isochrones API وضوح شبکه محاسباتی فضایی خود را بهطور پویا براساس travel_duration و travel_mode درخواستشده تنظیم میکند:
- مدتهای کوتاهتر: از یک شبکه بسیار دقیق و با وضوح بالا استفاده کنید زیرا مساحت کل کوچک است و درنتیجه مرز دقیقی ایجاد میشود.
- مدتهای طولانیتر: انتقال به شبکهای با وضوح پایینتر و درشتتر برای پوشش دادن منطقه جغرافیایی وسیع بهطور کارآمد بدون ایجاد تأخیر شدید.
اگر به سطح جزئیات خاص و ثابتی بدون توجه به مدتزمان نیاز دارید، میتوانید polygon_fidelity اختیاری را روی HIGH، MEDIUM، یا LOW تنظیم کنید.
چرا درخواست همزمان برای مختصات داخل پارک، دریاچه، یا مجتمع صنعتی بزرگ گاهی خطای «پیدا نشد» برمیگرداند؟
Isochrones API زمان سفر را بااستفاده از جادهها و مسیرها محاسبه میکند. اگر مختصات مبدأ درخواستی شما در جادهای شناختهشده قرار نداشته باشد، API باید قبلاز شروع محاسبه، نقطه را به نزدیکترین بخش سازگار «بچسباند».
هر حالت سفر حداکثر فاصله چسباندن حدود ۲۰۰ متر یا کمتر دارد.
WALK و BICYCLE از مسافتهای کوتاهتری نسبت به DRIVE و TWO_WHEELER استفاده میکنند، و
DRIVE و TWO_WHEELER مسیرهای مخصوص عابر پیاده را نادیده میگیرند.
اگر مختصات مبدأ شما از یک بخش جاده معتبر و سازگار با حالت بیشتر از این فاصله باشد، چسباندن ناموفق خواهد بود و API خطای NOT_FOUND را برمیگرداند. برای حل این مشکل، مطمئن شوید مختصات شما نزدیک به خیابان یا مسیر عمومی قرار گرفته باشد.
چرا هنگام درخواست مسیریابی با آگاهی از ترافیک برای پیادهروی یا دوچرخهسواری خطا دریافت میکنم؟
شرایط ترافیک زنده (TRAFFIC_AWARE) برای حالتهای سفر
DRIVE و TWO_WHEELER پشتیبانی میشود. اگر برای WALK یا BICYCLE با routingPreference تنظیمشده روی TRAFFIC_AWARE درخواست همزماننگار کنید، میانای برنامهسازی کاربردی خطای 400 INVALID_ARGUMENT را برمیگرداند.
وقتی پاسخ GeoJSON را در نقشهام ارائه میکنم، شکل در مکان اشتباهی نمایش داده میشود، تحریف شده است، یا ارائه نمیشود. دلیل آن چیست؟
این مشکل تقریباً همیشه بهدلیل عدم تطابق ترتیب مختصات رخ میدهد.
Isochrones API طبق استاندارد GeoJSON (RFC 7946)، مختصات را بهترتیب [longitude, latitude] برمیگرداند. بااینحال، بسیاری از کیتهای توسعه نرمافزار نقشهبرداری و اشیای هندسی سفارشی
انتظار دارند مختصات بهترتیب [latitude, longitude] باشد.
اگر پردازش نقشه شما نادرست است، بررسی کنید که کیت توسعه نرمافزار نقشه شما چگونه GeoJSON را مدیریت میکند:
- Google Maps JavaScript API: اگر از Data Layer
(
map.data.addGeoJson()) استفاده میکنید، این ترتیب بهطور بومی مدیریت میشود و هیچ اقدامی لازم نیست. - اشیاء سفارشی یا کیتهای توسعه نرمافزار دیگر: اگر پاسخ را بهصورت دستی به اشیاء
LatLngتجزیه میکنید، باید مختصات را در بار GeoJSON تکرار کنید و مقادیر[lng, lat]را قبلاز رندر کردن به جفتهای[lat, lng]تبدیل کنید.
چرا «حفرههای» توخالی در چندضلعی همزمان من وجود دارد و آیا میتوانم بهجای آن شکل توپر داشته باشم؟
حفرهها نشاندهنده مناطقی هستند که هیچ جاده قابلدسترسی در محدوده زمانی ندارند. این امر در مناطقی که جنگلهای بزرگ، پهنههای آبی، فرودگاه، یا ملک خصوصی دارند و وسایل نقلیه یا عابران پیاده نمیتوانند در آنها تردد کنند رایج است.
میانای برنامهسازی کاربردی v1 خارجی پارامتری را برای برداشتن خودکار حفرهها نشان نمیدهد. اگر برنامه شما به مرز مشخصی نیاز دارد، مثلاً برای انجام بررسیهای دربرگیری نقطه در چندضلعی، میتوانید:
- پارامتر
polygon_fidelityرا رویMEDIUMیاLOWتنظیم کنید تا الگوریتم را تشویق کنید که این شکافهای داخلی را تعمیم دهد و ادغام کند. - از کتابخانه GIS سمت کارخواه (مانند Turf.js) برای تجزیه GeoJSON و استخراج فقط اولین حلقه مختصات (پوسته بیرونی) استفاده کنید و هرگونه حلقه داخلی بعدی (سوراخها) را کنار بگذارید.
آیا باید گزینه enable_smoothing را برای تحلیل فضایی باطن فعال کنم؟
نه. پارامتر enable_smoothing صرفاً برای زیبایی بصری طراحی شده است.
این ویژگی گوشههای تیز شبکه محاسباتی زیرین را گرد میکند تا شکل روی نقشه طبیعی بهنظر برسد.
هموارسازی برای تحلیل فضایی دقیق توصیه نمیشود زیرا رئوس را تغییر میدهد و مرزها را کمی جابهجا میکند. برای محاسبات پسزمینه، پُرسمانهای پایگاه داده، یا آزمایشهای نقطه در چندضلعی، enable_smoothing را روی false تنظیم کنید تا مطمئن شوید از مرز محاسبهشده دقیق ریاضی استفاده میکنید.