بررسی اجمالی مهاجرت

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

این راهنما تفاوت‌های کلیدی بین سرویس قدیمی Places و کلاس جدید Place را برجسته می‌کند. ارتقا به کلاس Place مزایای قابل توجهی از جمله بهبود عملکرد و مدل قیمت‌گذاری جدید را ارائه می‌دهد. برای بهره‌مندی هرچه بیشتر از Places و اطمینان از به‌روز بودن برنامه‌های خود، با تغییرات ذکر شده در این راهنما آشنا شوید.

بهترین شیوه‌های صدور صورتحساب برای مهاجرت

این راهنمایی در صورتی اعمال می‌شود که استفاده از API شما به اندازه‌ای بالا باشد که به قیمت‌گذاری سطح دوم روی بیاورید. هنگام مهاجرت به نسخه جدیدتر API، هزینه SKU متفاوتی نیز برای شما محاسبه می‌شود. برای جلوگیری از افزایش هزینه‌ها در طول ماه انتقال، توصیه می‌کنیم تا حد امکان نزدیک به ابتدای ماه به APIهای جدید در حال تولید تغییر دهید. این کار تضمین می‌کند که در طول ماه مهاجرت به مقرون‌به‌صرفه‌ترین سطوح قیمت‌گذاری ماهانه دسترسی پیدا کنید. برای کسب اطلاعات در مورد سطوح قیمت‌گذاری، به صفحه قیمت‌گذاری و سوالات متداول قیمت‌گذاری مراجعه کنید.

فعال کردن API مکان‌ها

کلاس Place به سرویس Places API متکی است. برای استفاده از ویژگی‌های کلاس جدید Place، ابتدا باید Places API (جدید) را در پروژه Google Cloud خود فعال کنید. برای اطلاعات بیشتر، به بخش شروع به کار مراجعه کنید.

تغییرات کلی

جدول زیر برخی از تفاوت‌های اصلی بین PlacesService و Place را فهرست می‌کند:

PlacesService (قدیمی) Place (جدید)
متدها برای مدیریت شیء نتایج و پاسخ google.maps.places.PlacesServiceStatus نیاز به استفاده از یک تابع فراخوانی (callback) دارند. از Promiseها استفاده می‌کند و به صورت ناهمگام کار می‌کند.
متدها نیاز به بررسی PlacesServiceStatus دارند. نیازی به بررسی وضعیت نیست، می‌تواند از مدیریت خطای استاندارد استفاده کند.
فیلدهای داده مکان با استفاده از حالت مار (snake case) قالب‌بندی می‌شوند. فیلدهای داده مکان با استفاده از حالت شتری قالب‌بندی می‌شوند.
محدود به مجموعه‌ای ثابت از انواع مکان‌ها و فیلدهای داده مکان . طیف گسترده‌ای از انواع مکان‌ها و فیلدهای داده مکان که مرتباً به‌روزرسانی می‌شوند را ارائه می‌دهد.

تغییرات خاص API

کلاس Place یک API برای استفاده از کتابخانه Places ارائه می‌دهد و از الگوهای استفاده مدرن مانند Promises پشتیبانی می‌کند. کلاس Place همان فیلدهای داده place و انواع place سرویس قدیمی Places را ارائه می‌دهد و شامل مقادیر جدید زیادی برای فیلدهای داده place و انواع place است.

این جدول نشان می‌دهد که چگونه ویژگی‌های سرویس Places به ویژگی‌های کلاس Place نگاشت می‌شوند:

خدمات اماکن (قدیمی) کلاس مکان (جدید)
فیلدهای داده را قرار دهید فیلدهای داده کلاس مکان
انواع مکان انواع مکان
PlacesService.findPlaceFromQuery() Place.searchByText()
PlacesService.findPlaceFromPhoneNumber() Place.searchByText()
PlacesService.textSearch() Place.searchByText()
PlacesService.nearbySearch() Place.searchNearby()
PlacesService.getDetails() Place.fetchFields()
Places.AutocompletionRequest Places.AutocompleteRequest
Places.AutocompletePrediction Places.PlacePrediction
کلاس Autocomplete کلاس PlaceAutocompleteElement
کلاس SearchBox ---

کتابخانه Places را بارگذاری کنید

نحوه‌ی بارگذاری کتابخانه‌ی Places در برنامه‌ی شما بستگی به این دارد که از کدام بوت‌استرپ لودر استفاده می‌کنید. اگر برنامه‌ی شما از import کتابخانه‌ی پویا استفاده می‌کند، می‌توانید کتابخانه‌های مورد نیاز را در زمان اجرا با استفاده از عملگر await برای فراخوانی importLibrary() بارگذاری کنید، همانطور که در اینجا نشان داده شده است:

const { Place } = await google.maps.importLibrary("places");

اگر برنامه شما از تگ بارگذاری اسکریپت مستقیم استفاده می‌کند، کتابخانه places را در اسکریپت loader درخواست کنید:

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>

درباره بارگیری API جاوا اسکریپت Maps بیشتر بدانید.

این بخش شامل راهنماهای زیر است که به شما در انتقال برنامه‌هایتان برای استفاده از جدیدترین نسخه Places API کمک می‌کند: