نمای کلی
عملکردهای موجود در «کتابخانه جاها»، Maps JavaScript API به برنامه شما امکان میدهد جاهای (تعریفشده در این API بهعنوان مؤسسهها، مکانهای جغرافیایی، یا مکانهای جالب برجسته) موجود در یک منطقه تعریفشده، مانند مرزهای نقشه، یا اطراف یک نقطه ثابت را جستجو کند.
Places API ویژگی تکمیل خودکاری ارائه میدهد که میتوانید از آن استفاده کنید تا به برنامههایتان رفتار جستجوی پیشتایپ فیلد جستجوی Google Maps را بدهید. وقتی کاربر شروع به تایپ کردن نشانی میکند، تکمیل خودکار بقیه آن را پر میکند. برای اطلاعات بیشتر، مستندات تکمیل خودکار را ببینید.
درحال شروع کردن
اگر با Maps JavaScript API یا با جاوا اسکریپت آشنا نیستید، توصیه میکنیم قبلاز شروع به کار، جاوا اسکریپت و دریافت کلید API را مرور کنید.
بار کردن کتابخانه
سرویس «مکانها» کتابخانهای مستقل است که از کد اصلی
Maps JavaScript API جدا است. برای استفاده از عملکرد موجود
در این کتابخانه، ابتدا باید آن را بااستفاده از پارامتر libraries
در نشانی وب راهانداز Maps API بار کنید:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>برای اطلاعات بیشتر، به نمای کلی کتابخانهها مراجعه کنید.
افزودن Places API (Legacy) به فهرست محدودیتهای API کلید میانای برنامهسازی کاربردی
اعمال محدودیتهای میانای برنامهسازی کاربردی بر کلیدهایتان، استفاده از کلید میانای برنامهسازی کاربردی را به یک یا چند میانای برنامهسازی کاربردی یا کیت توسعه نرمافزار محدود میکند. درخواستهای ارسالشده به میانای برنامهسازی کاربردی یا کیت توسعه نرمافزار مرتبط با کلید میانای برنامهسازی کاربردی پردازش خواهد شد. درخواستهای ارسالشده به میانای برنامهسازی کاربردی یا کیت توسعه نرمافزار که با کلید میانای برنامهسازی کاربردی مرتبط نباشند، ناموفق خواهند بود. برای محدود کردن کلید میانای برنامهسازی کاربردی برای استفاده با «کتابخانه جاها»، Maps JavaScript API:- به کنسول Google Cloud بروید.
- روی منو کرکرهای پروژه کلیک کنید و پروژهای را که حاوی کلید میانای برنامهسازی کاربردی موردنظرتان برای ایمنسازی است انتخاب کنید.
- روی دکمه منو
کلیک کنید
و پلاتفرم Google Maps > اطلاعات کاربری را انتخاب کنید.
- در صفحه اعتبارنامه، روی نام کلید میانای برنامهسازی کاربردی که میخواهید ایمن کنید کلیک کنید.
- در صفحه محدود کردن و تغییر نام کلید API، محدودیتها را تنظیم کنید:
- محدودیتهای میانای برنامهسازی کاربردی
- محدود کردن کلید را انتخاب کنید.
- روی انتخاب میاناهای برنامهسازی کاربردی کلیک کنید و هر دو Maps JavaScript API و Places API (قدیمی) را انتخاب کنید.
(اگر یکی از این میاناهای برنامهسازی کاربردی در فهرست نیست، باید آن را فعال کنید.)
- روی ذخیره کلیک کنید.
حدود استفاده و خطمشیها
سهمیهها
«کتابخانه جاها» سهمیه استفاده مشترکی با Places API دارد که در سند «حدود استفاده» برای Places API شرح داده شده است.
خطمشیها
استفاده از «کتابخانه جاها»، Maps JavaScript API باید مطابق با خطمشیهای شرحدادهشده برای Places API باشد.
جستجوی جاها
با سرویس «مکانها» میتوانید انواع جستجوهای زیر را انجام دهید:
- Find Place from Query مکانی را براساس پُرسمان نوشتاری (برای مثال، نام یا نشانی مکان) برمیگرداند.
- Find Place from Phone Number مکانی را براساس شماره تلفن برمیگرداند.
- جستجوی اطراف (قدیمی) فهرستی از مکانهای اطراف را براساس مکان کاربر برمیگرداند.
- جستجوی نوشتار (قدیمی) فهرستی از مکانهای اطراف را براساس رشته جستجو برمیگرداند، برای مثال. «پیتزا».
- درخواستهای «جزئیات جا» (قدیمی) اطلاعات دقیقتری درباره یک مکان خاص، ازجمله مرورهای کاربر، برمیگرداند.
اطلاعات برگرداندهشده میتواند شامل مؤسساتی مانند رستورانها، فروشگاهها، و دفاتر، و همچنین نتایج «زمینکدیابی» باشد که نشاندهنده نشانیها، مناطق سیاسی مانند شهرکها و شهرها، و دیگر مکانهای جالب است.
درخواستهای «پیدا کردن جا» (قدیمی)
درخواست «پیدا کردن مکان» به شما امکان میدهد مکانی را با پُرسمان نوشتاری یا شماره تلفن جستجو کنید. دو نوع درخواست «یافتن مکان» وجود دارد:
یافتن مکان از پُرسمان
Find Place from Query ورودی نوشتاری دریافت میکند و مکانی را برمیگرداند. ورودی میتواند هر نوع داده «مکان» باشد، برای مثال نام یا نشانی کسبوکار. برای ایجاد
درخواست «یافتن مکان از پُرسمان»،
روش findPlaceFromQuery()
PlacesService را فراخوانی کنید که پارامترهای زیر را میگیرد:
query(الزامی) رشته نوشتاری که باید جستجو شود، برای مثال: «رستوران» یا «خیابان اصلی ۱۲۳». این باید نام مکان، نشانی، یا دسته مؤسسات باشد. هر نوع ورودی دیگری میتواند خطا ایجاد کند و تضمینی برای برگرداندن نتایج معتبر وجود ندارد. Places API مطابقتهای نامزد را براساس این رشته برمیگرداند و نتایج را براساس ارتباط درکشده آنها مرتب میکند.fields(الزامی) یک یا چند فیلد که انواع دادههای «مکان» را برای برگرداندن مشخص میکند.locationBias(اختیاری) مختصاتی که منطقه جستجو را تعریف میکند. این میتواند یکی از موارد زیر باشد:- مجموعهای از مختصات طول/عرض جغرافیایی که بهصورت LatLngLiteral یا شیء LatLng مشخص شده است
- محدوده مستطیلی (دو جفت عرض/طول جغرافیایی، یا یک شیء LatLngBounds)
- شعاع (به متر) با مرکزیت عرض/طول جغرافیایی
همچنین باید یک روش فراخوانی به findPlaceFromQuery() ارسال کنید،
تا شیء نتایج و پاسخ google.maps.places.PlacesServiceStatus را مدیریت کند.
مثال زیر فراخوانی به findPlaceFromQuery() را نشان میدهد که «موزه هنر معاصر استرالیا» را جستجو میکند و شامل فیلدهای name و geometry است.
var map; var service; var infowindow; function initMap() { var sydney = new google.maps.LatLng(-33.867, 151.195); infowindow = new google.maps.InfoWindow(); map = new google.maps.Map( document.getElementById('map'), {center: sydney, zoom: 15}); var request = { query: 'Museum of Contemporary Art Australia', fields: ['name', 'geometry'], }; var service = new google.maps.places.PlacesService(map); service.findPlaceFromQuery(request, function(results, status) { if (status === google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } map.setCenter(results[0].geometry.location); } }); }
پیدا کردن مکان از شماره تلفن
«یافتن مکان از شماره تلفن» شماره تلفنی را میگیرد و مکانی را برمیگرداند. برای
ایجاد درخواست «یافتن مکان از شماره تلفن»،
روش findPlaceFromPhoneNumber() PlacesService را فراخوانی کنید
که پارامترهای زیر را میگیرد:
phoneNumber(الزامی) شماره تلفن، در قالب E.164.fields(الزامی) یک یا چند فیلد که انواع دادههای «مکان» را برای برگرداندن مشخص میکند.locationBias(اختیاری) مختصاتی که منطقه موردنظر را برای جستجو تعریف میکند. این میتواند یکی از موارد زیر باشد:- مجموعهای از مختصات عرض/طول جغرافیایی که بهصورت LatLngLiteral یا شیء LatLng مشخص شده است
- مرزهای مستطیلی (چهار نقطه طول/عرض جغرافیایی، یا یک شیء LatLngBounds)
- شعاع (به متر) با مرکزیت عرض/طول جغرافیایی
همچنین باید یک روش فراخوانی به findPlaceFromPhoneNumber() ارسال کنید،
تا شیء نتایج و پاسخ google.maps.places.PlacesServiceStatus را مدیریت کند.
فیلدها (روشهای «یافتن مکان»)
از پارامتر fields برای مشخص کردن آرایهای از انواع دادههای مکان برای برگرداندن استفاده کنید.
برای مثال: fields: ['formatted_address', 'opening_hours', 'geometry'].
هنگام مشخص کردن مقادیر مرکب، از نقطه استفاده کنید. برای مثال: opening_hours.weekday_text.
فیلدها با نتایج «جستجوی جاها» مطابقت دارند و به سه دسته صورتحساب تقسیم میشوند: «پایه»، «مخاطب»، و «جو». فیلدهای پایه با نرخ پایه صورتحساب میشوند و هزینه اضافی ندارند. فیلدهای «تماس» و «جو» با نرخ بالاتری صورتحساب میشوند. برای اطلاعات بیشتر، برگه قیمتگذاری را ببینید. ارجاعها (html_attributions) همیشه
با هر تماس برگردانده میشوند، صرفنظر از اینکه فیلد
درخواست شده باشد یا نه.
پایه
دسته «پایه» شامل فیلدهای زیر است:
business_status، formatted_address، geometry،
icon،icon_mask_base_uri، icon_background_color،
name، permanently_closed (منسوخشده)،
photos، place_id، plus_code، types
تماس
دسته «مخاطب» شامل فیلد زیر است:opening_hours (منسوخشده در «کتابخانه جاها»، Maps JavaScript API. از درخواست «جزئیات مکان» برای دریافت
opening_hours نتیجه استفاده کنید).
محیط
دسته «محیط» شامل فیلدهای زیر است:price_level، rating، user_ratings_total
روشهای findPlaceFromQuery() و
findPlaceFromPhoneNumber() هرکدام مجموعه یکسانی از
فیلدها را میگیرند و میتوانند فیلدهای یکسانی را در پاسخهای مربوطه خود برگردانند.
تنظیم سوگیری مکان (روشهای «یافتن مکان»)
از پارامتر locationBias استفاده کنید تا «یافتن مکان» نتایج را در منطقهای خاص ترجیح دهد. میتوانید locationBias را به روشهای زیر تنظیم کنید:
نتایج را به منطقهای خاص متمایل کنید:
locationBias: {lat: 37.402105, lng: -122.081974}
منطقهای مستطیلی را برای جستجو مشخص کنید:
locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}
همچنین میتوانید از LatLngBounds استفاده کنید.
شعاعی را برای جستجو (به متر) با مرکزیت منطقهای خاص تعریف کنید:
locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}
درخواستهای جستجوی اطراف
«جستجوی اطراف» به شما امکان میدهد مکانهای موجود در منطقهای مشخص را براساس کلیدواژه یا نوع جستجو کنید. «جستجوی اطراف» همیشه باید شامل مکانی باشد که میتواند به یکی از دو روش زیر مشخص شود:
-
LatLngBounds - منطقهای دایرهای که بهعنوان ترکیبی از ویژگی
locationتعریف شده است — مرکز دایره را بهعنوان شیءLatLngمشخص میکند — و شعاعی که برحسب متر اندازهگیری میشود.
جستجوی «مکانهای اطراف» با فراخوانی روش nearbySearch() مربوط به
PlacesService آغاز میشود که آرایهای از اشیای
PlaceResult را برمیگرداند. توجه داشته باشید که روش nearbySearch()
از نسخه ۳.۹ جایگزین روش search() میشود.
service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback);
این روش درخواستی با فیلدهای زیر دریافت میکند:
- یکی از موارد زیر:
bounds، که باید یک شیءgoogle.maps.LatLngBoundsباشد که منطقه جستجوی مستطیلی را تعریف میکند. حداکثر فاصله قطری پشتیبانیشده برای محدوده تقریباً ۱۰۰٬۰۰۰ متر است.- یک
locationو یکradius؛ اولی یک شیءgoogle.maps.LatLngمیگیرد و دومی یک عدد صحیح ساده میگیرد که نشاندهنده شعاع دایره به متر است. حداکثر شعاع مجاز ۵۰٬۰۰۰ متر است. توجه داشته باشید که وقتیrankByروی DISTANCE تنظیم شده است، بایدlocationرا مشخص کنید اما نمیتوانیدradiusیاboundsرا مشخص کنید.
keyword(اختیاری) — عبارتی که باید با همه فیلدهای دردسترس مطابقت داشته باشد، ازجمله نام، نوع، و نشانی، و همچنین مرورهای مشتری و دیگر محتواهای شخص ثالث.minPriceLevelوmaxPriceLevel(اختیاری) — نتایج را فقط به مکانهای موجود در محدوده مشخصشده محدود میکند. محدوده مقادیر معتبر بین ۰ (مقرونبهصرفهترین) تا ۴ (گرانترین) است.nameمنسوخ شده است. معادلkeyword. مقادیر این فیلد با مقادیر فیلدkeywordترکیب میشود و بهعنوان بخشی از همان رشته جستجو ارسال میشود.-
openNow(اختیاری) — مقدار بولی، نشان میدهد که سرویس «مکانها» فقط باید مکانهایی را برگرداند که در زمان ارسال پُرسمان برای کسبوکار باز هستند. مکانهایی که ساعت کاری آنها در پایگاه داده Google Places مشخص نشده است، اگر این پارامتر را در پُرسمان خود بگنجانید، برگردانده نخواهند شد. تنظیمopenNowرویfalseبیتأثیر است. -
rankBy(اختیاری) — ترتیبی را که نتایج فهرست میشوند مشخص میکند. مقادیر احتمالی عبارتند از:google.maps.places.RankBy.PROMINENCE(پیشفرض). این گزینه نتایج را براساس اهمیتشان مرتب میکند. رتبهبندی، مکانهای برجسته در شعاع تعیینشده را بر مکانهای اطراف که مطابقت دارند اما کمتر برجسته هستند ترجیح میدهد. رتبه مکان در نمایه Google، محبوبیت جهانی، و عوامل دیگر میتواند بر برجستگی تأثیر بگذارد. وقتیgoogle.maps.places.RankBy.PROMINENCEمشخص شده باشد، پارامترradiusالزامی است.google.maps.places.RankBy.DISTANCE. این گزینه نتایج را بهترتیب صعودی براساس فاصلهشان ازlocationمشخصشده (الزامی) مرتب میکند. توجه داشته باشید که اگرRankBy.DISTANCEرا مشخص کنید، نمیتوانیدboundsو/یاradiusسفارشی را مشخص کنید. وقتیRankBy.DISTANCEرا مشخص میکنید، یک یا چند مورد ازkeyword،name، یاtypeلازم است.
type— نتایج را به مکانهایی که با نوع مشخصشده مطابقت دارند محدود میکند. فقط یک نوع میتواند مشخص شود (اگر بیشاز یک نوع ارائه شود، همه انواع پساز ورودی اول نادیده گرفته میشوند). فهرست انواع پشتیبانیشده را ببینید.
همچنین باید روش فراخوانی را به nearbySearch() ارسال کنید تا
شیء نتایج و
پاسخ google.maps.places.PlacesServiceStatus را مدیریت کند.
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433, 151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: 500, type: 'restaurant' }; service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { createMarker(results[i]); } } }
درخواستهای جستجوی نوشتار
سرویس «جستجوی نوشتار Google Places» سرویسی وب است که اطلاعاتی را درباره مجموعهای از مکانها براساس رشتهای برمیگرداند — برای مثال «پیتزا در نیویورک» یا «کفشفروشیهای نزدیک اتاوا». سرویس با فهرستی از مکانهای منطبق با رشته نوشتاری و هرگونه سوگیری مکانی که تنظیم شده است پاسخ میدهد. پاسخ جستجو شامل فهرستی از مکانها خواهد بود. میتوانید درخواست «جزئیات جا» ارسال کنید تا اطلاعات بیشتری درباره هریک از مکانهای موجود در پاسخ دریافت کنید.
«جستجوهای نوشتار» با تماس با روش textSearch() مربوط به PlacesService شروع میشود.
service = new google.maps.places.PlacesService(map); service.textSearch(request, callback);
این روش درخواستی با فیلدهای زیر دریافت میکند:
query(الزامی) رشته نوشتاری که باید در آن جستجو شود، برای مثال: «رستوران» یا «خیابان اصلی ۱۲۳». این باید نام، نشانی، یا دسته مؤسسات باشد. هر نوع ورودی دیگری میتواند خطا ایجاد کند و تضمینی برای برگرداندن نتایج معتبر وجود ندارد. سرویس «مکانها» براساس این رشته، موارد منطبق احتمالی را برمیگرداند و نتایج را براساس میزان ارتباطشان مرتب میکند. اگر پارامترtypeنیز در درخواست جستجو استفاده شود، این پارامتر اختیاری میشود.- اختیاری:
openNow— مقدار بولی، نشان میدهد که سرویس Places باید فقط مکانهایی را برگرداند که در زمان ارسال پُرسمان برای کسبوکار باز هستند. اگر این پارامتر را در پُرسمانتان بگنجانید، مکانهایی که ساعت کاریشان در پایگاه داده «مکانهای Google» مشخص نشده باشد برگردانده نخواهند شد. تنظیمopenNowرویfalseبیتأثیر است.minPriceLevelوmaxPriceLevel— نتایج را فقط به مکانهایی محدود میکند که در سطح قیمت مشخصشده قرار دارند. مقادیر معتبر در محدوده ۰ (مقرونبهصرفهترین) تا ۴ (گرانترین) است.- یکی از موارد زیر:
bounds، که باید شیءgoogle.maps.LatLngBoundsباشد که ناحیه جستجوی مستطیلی را تعریف میکند. حداکثر فاصله قطری پشتیبانیشده برای محدوده منطقه تقریباً ۱۰۰٬۰۰۰ متر است.locationوradius— میتوانید با ارسال پارامترlocationوradius، نتایج را به دایره مشخصی متمایل کنید. این کار به سرویس «مکانها» دستور میدهد که ترجیحاً نتایج را در آن دایره نشان دهد. ممکن است نتایج خارج از منطقه تعریفشده همچنان نمایش داده شود. مکان یک شیءgoogle.maps.LatLngمیگیرد و شعاع یک عدد صحیح ساده میگیرد که نشاندهنده شعاع دایره به متر است. حداکثر شعاع مجاز ۵۰٬۰۰۰ متر است.
type— نتایج را به مکانهایی که با نوع مشخصشده مطابقت دارند محدود میکند. فقط یک نوع میتواند مشخص شود (اگر بیشاز یک نوع ارائه شود، همه انواع پساز ورودی اول نادیده گرفته میشوند). فهرست انواع پشتیبانیشده را ببینید.
همچنین باید یک روش فراخوانی به textSearch() ارسال کنید تا
شیء نتایج و پاسخ
google.maps.places.PlacesServiceStatus را مدیریت کند.
var map; var service; var infowindow; function initialize() { var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316); map = new google.maps.Map(document.getElementById('map'), { center: pyrmont, zoom: 15 }); var request = { location: pyrmont, radius: 500, query: 'restaurant' }; service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); } function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { var place = results[i]; createMarker(results[i]); } } }
پاسخهای جستجو
رمزهای وضعیت
شیء پاسخ PlacesServiceStatus حاوی وضعیت درخواست است و ممکن است حاوی اطلاعات اشکالزدایی باشد تا به شما کمک کند دلیل ناموفق بودن درخواست مکان را ردیابی کنید. مقادیر احتمالی برای وضعیت عبارتند از:
-
INVALID_REQUEST: این درخواست نامعتبر بود. -
OK: پاسخ حاوی نتیجه معتبر است. OVER_QUERY_LIMIT: صفحه وب از سهمیه درخواست خود فراتر رفته است.-
REQUEST_DENIED: این صفحه وب مجاز به استفاده از PlacesService نیست. UNKNOWN_ERROR: درخواست PlacesService بهدلیل خطای سرور پردازش نشد. اگر دوباره امتحان کنید، ممکن است درخواست موفقیتآمیز باشد.ZERO_RESULTS: هیچ نتیجهای برای این درخواست پیدا نشد.
نتایج جستجوی جاها
توابع findPlace()، nearbySearch()، و
textSearch() آرایهای از
اشیاء
PlaceResult را برمیگردانند.
هر شیء PlaceResult ممکن است شامل ویژگیهای زیر باشد:
business_statusنشاندهنده وضعیت فعالیت مکان است، اگر کسبوکار باشد. میتواند حاوی یکی از مقادیر زیر باشد:OPERATIONALCLOSED_TEMPORARILYCLOSED_PERMANENTLY
business_statusبرگردانده نمیشود.formatted_addressرشتهای است که حاوی نشانی قابلخواندن برای انسان این مکان است. ویژگیformatted_addressفقط برای جستجوی نوشتار برگردانده میشود.اغلب این نشانی معادل نشانی پستی است. توجه داشته باشید که برخی کشورها، مانند پادشاهی متحد، بهدلیل محدودیتهای صدور پروانه، اجازه توزیع نشانیهای پستی واقعی را نمیدهند.
نشانی قالببندیشده بهطور منطقی از یک یا چند مؤلفه نشانی تشکیل شده است. برای مثال، نشانی «111 8th Avenue, New York, NY» از مؤلفههای زیر تشکیل شده است: «111» (شماره خیابان)، «8th Avenue» (مسیر)، «New York» (شهر)، و «NY» (ایالت امریکا).
نشانی قالببندیشده را بهصورت برنامهنویسی تجزیه نکنید. درعوض باید از مؤلفههای نشانی تکی استفاده کنید که پاسخ میانای برنامهسازی کاربردی علاوهبر فیلد نشانی قالببندیشده شامل آن است.
geometry: اطلاعات مربوط به هندسه مکان. این شامل موارد زیر میشود:locationطول و عرض جغرافیایی مکان را ارائه میدهد.viewportناحیه نمایش ترجیحی را روی نقشه هنگام مشاهده این مکان تعریف میکند.
permanently_closed(منسوخشده) پرچم بولی است که نشان میدهد آیا مکان بهطور دائم یا موقت بسته شده است (مقدارtrue). ازpermanently_closedاستفاده نکنید. بهجای آن، ازbusiness_statusبرای دریافت وضعیت فعالیت کسبوکارها استفاده کنید.plus_code(به کد مکان باز و کدهای Plus مراجعه کنید) یک مرجع مکان کدگذاریشده است که از مختصات طول و عرض جغرافیایی مشتق شده است و منطقهای را نشان میدهد: ۱/۸۰۰۰ درجه در ۱/۸۰۰۰ درجه (حدود ۱۴ متر در ۱۴ متر در خط استوا) یا کوچکتر. کدهای Plus را میتوان بهعنوان جایگزینی برای نشانی خیابان در مکانهایی که نشانی خیابان وجود ندارد (جایی که ساختمانها شمارهگذاری نشدهاند یا خیابانها نامگذاری نشدهاند) استفاده کرد.Plus Code بهصورت کد جهانی و کد ترکیبی قالببندی میشود:
global_codeپیششمارهای ۴ نویسهای و کد محلی ۶ نویسهای یا طولانیتر است (849VCWC8+R9).compound_codeکد محلی ۶ نویسهای یا طولانیتر با مکان صریح است (CWC8+R9, Mountain View, CA, USA). این محتوا را بهصورت برنامهنویسی تجزیه نکنید.
-
html_attributions: آرایهای از ارجاعها که باید هنگام نمایش نتایج جستجو نمایش دهید. هر ورودی در آرایه حاوی نوشتار HTML برای یک ارجاع است. توجه: این مجموعهای از همه ارجاعها برای کل پاسخ جستجو است. بنابراین، همه اشیایPlaceResultدر پاسخ حاوی فهرستهای ارجاع یکسان هستند. iconنشانی وب را برای نماد PNG رنگی ۷۱ پیکسل در ۷۱ پیکسل برمیگرداند.icon_mask_base_uriنشانی وب پایه را برای نماد غیررنگی، منهای پسوند svg .یا png .برمیگرداند.icon_background_colorکد رنگ HEX پیشفرض را برای دسته مکان برمیگرداند.name: نام مکان.opening_hoursممکن است حاوی اطلاعات زیر باشد:-
open_nowیک مقدار منطقی است که نشان میدهد آیا مکان در زمان فعلی باز است یا نه (منسوخشده در «کتابخانه جاها»، Maps JavaScript API، بهجای آن ازutc_offset_minutesاستفاده کنید).
-
place_idشناسهای نوشتاری است که بهطور منحصربهفرد مکانی را شناسایی میکند. برای بازیابی اطلاعات مربوط به مکان، این شناسه را در درخواست جزئیات مکان ارسال کنید. درباره نحوه ارجاع به مکان با شناسه مکان بیشتر بدانید.ratingحاوی ردهبندی مکان، از ۰٫۰ تا ۵٫۰، براساس مرورهای انبوهیده کاربر است.typesآرایهای از انواع این مکان (مثلاً،["political", "locality"]یا["restaurant", "lodging"]). این آرایه ممکن است حاوی چند مقدار باشد یا ممکن است خالی باشد. ممکن است مقادیر جدیدی بدون اطلاع قبلی معرفی شود. فهرست انواع پشتیبانیشده را ببینید.vicinity: نشانی سادهشده برای مکان، شامل نام خیابان، شماره خیابان، و محل، اما نه استان/ایالت، کد پستی، یا کشور. برای مثال، دفتر Google در سیدنی، استرالیا دارای مقدارvicinity5/48 Pirrama Road, Pyrmontاست.
دسترسی به نتایج بیشتر
بهطور پیشفرض، هر جستجوی جا حداکثر ۲۰ نتیجه برای هر پُرسمان برمیگرداند. بااینحال،
هر جستجو میتواند تا ۶۰ نتیجه را که در سه صفحه تقسیم شدهاند برگرداند.
صفحههای اضافی بااستفاده از شیء PlaceSearchPagination دردسترس است. برای دسترسی به صفحههای بیشتر، باید شیء PlaceSearchPagination را بااستفاده از تابع بازخوانی ضبط کنید. شیء
PlaceSearchPagination بهصورت زیر تعریف میشود:
hasNextPageویژگی بولی که نشان میدهد آیا نتایج بیشتری دردسترس است یا نه.trueوقتی صفحه نتایج دیگری وجود دارد.nextPage()تابعی که مجموعه بعدی نتایج را برمیگرداند. پساز اجرای جستجو، باید دو ثانیه صبر کنید تا صفحه بعدی نتایج دردسترس قرار گیرد.
برای دیدن مجموعه بعدی نتایج، با nextPage تماس بگیرید.
هر صفحه از نتایج باید قبلاز نمایش صفحه بعدی نتایج نمایش داده شود. توجه داشته باشید که هر جستجو بهعنوان یک درخواست واحد در محدودیتهای استفاده شما محاسبه میشود.
مثال زیر نشان میدهد که چگونه تابع بازخوانی را تغییر دهید تا
شیء PlaceSearchPagination را ضبط کنید، تا بتوانید
چندین درخواست جستجو صادر کنید.
TypeScript
// This example requires the Places library. Include the libraries=places // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> function initMap(): void { // Create the map. const pyrmont = { lat: -33.866, lng: 151.196 }; const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { center: pyrmont, zoom: 17, mapId: "8d193001f940fde3", } as google.maps.MapOptions ); // Create the places service. const service = new google.maps.places.PlacesService(map); let getNextPage: () => void | false; const moreButton = document.getElementById("more") as HTMLButtonElement; moreButton.onclick = function () { moreButton.disabled = true; if (getNextPage) { getNextPage(); } }; // Perform a nearby search. service.nearbySearch( { location: pyrmont, radius: 500, type: "store" }, ( results: google.maps.places.PlaceResult[] | null, status: google.maps.places.PlacesServiceStatus, pagination: google.maps.places.PlaceSearchPagination | null ) => { if (status !== "OK" || !results) return; addPlaces(results, map); moreButton.disabled = !pagination || !pagination.hasNextPage; if (pagination && pagination.hasNextPage) { getNextPage = () => { // Note: nextPage will call the same handler function as the initial call pagination.nextPage(); }; } } ); } function addPlaces( places: google.maps.places.PlaceResult[], map: google.maps.Map ) { const placesList = document.getElementById("places") as HTMLElement; for (const place of places) { if (place.geometry && place.geometry.location) { const image = { url: place.icon!, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25), }; new google.maps.Marker({ map, icon: image, title: place.name!, position: place.geometry.location, }); const li = document.createElement("li"); li.textContent = place.name!; placesList.appendChild(li); li.addEventListener("click", () => { map.setCenter(place.geometry!.location!); }); } } } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example requires the Places library. Include the libraries=places // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"> function initMap() { // Create the map. const pyrmont = { lat: -33.866, lng: 151.196 }; const map = new google.maps.Map(document.getElementById("map"), { center: pyrmont, zoom: 17, mapId: "8d193001f940fde3", }); // Create the places service. const service = new google.maps.places.PlacesService(map); let getNextPage; const moreButton = document.getElementById("more"); moreButton.onclick = function () { moreButton.disabled = true; if (getNextPage) { getNextPage(); } }; // Perform a nearby search. service.nearbySearch( { location: pyrmont, radius: 500, type: "store" }, (results, status, pagination) => { if (status !== "OK" || !results) return; addPlaces(results, map); moreButton.disabled = !pagination || !pagination.hasNextPage; if (pagination && pagination.hasNextPage) { getNextPage = () => { // Note: nextPage will call the same handler function as the initial call pagination.nextPage(); }; } }, ); } function addPlaces(places, map) { const placesList = document.getElementById("places"); for (const place of places) { if (place.geometry && place.geometry.location) { const image = { url: place.icon, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25), }; new google.maps.Marker({ map, icon: image, title: place.name, position: place.geometry.location, }); const li = document.createElement("li"); li.textContent = place.name; placesList.appendChild(li); li.addEventListener("click", () => { map.setCenter(place.geometry.location); }); } } } window.initMap = initMap;
جزئیات جا
سرویس «مکانها» علاوهبر ارائه فهرستی از مکانهای موجود در یک منطقه، میتواند اطلاعات دقیقی درباره مکانی خاص نیز برگرداند. وقتی مکانی در پاسخ جستجوی مکان برگردانده شد، میتوان از شناسه مکان آن برای درخواست جزئیات بیشتر درباره آن مکان، مانند نشانی کامل، شماره تلفن، ردهبندی کاربر و مرورها، و غیره استفاده کرد.
درخواستهای جزئیات جا
«جزئیات جا» با تماس با روش getDetails() سرویس درخواست میشود.
service = new google.maps.places.PlacesService(map); service.getDetails(request, callback);
این روش درخواستی را دریافت میکند که حاوی
placeId مکان و فیلدهایی است که نشان میدهد کدام نوع دادههای «مکانها»
باید برگردانده شود. درباره
نحوه ارجاع به مکان با شناسه مکان بیشتر بدانید.
همچنین یک روش فراخوانی را میگیرد که باید کد وضعیت ارسالشده در پاسخ google.maps.places.PlacesServiceStatus و همچنین شیء google.maps.places.PlaceResult را مدیریت کند.
var request = { placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4', fields: ['name', 'rating', 'formatted_phone_number', 'geometry'] }; service = new google.maps.places.PlacesService(map); service.getDetails(request, callback); function callback(place, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { createMarker(place); } }
فیلدها (جزئیات جا)
پارامترfields آرایهای از رشتهها (نام فیلدها) را میگیرد.
از پارامتر fields برای مشخص کردن آرایهای از انواع دادههای مکان برای برگرداندن استفاده کنید.
برای مثال: fields: ['address_components', 'opening_hours', 'geometry'].
هنگام مشخص کردن مقادیر مرکب، از نقطه استفاده کنید. برای مثال: opening_hours.weekday_text.
فیلدها با نتایج «جزئیات مکان» مطابقت دارند و به سه دسته صورتحساب تقسیم میشوند: «پایه»، «تماس»، و «جو». فیلدهای پایه با نرخ پایه صورتحساب میشوند و هیچ هزینه اضافیای ندارند. فیلدهای «تماس» و «جو» با نرخ بالاتری صورتحساب میشوند. برای اطلاعات بیشتر، برگه قیمتگذاری را ببینید. ارجاعها (html_attributions) همیشه
با هر تماس برگردانده میشوند، صرفنظر از اینکه درخواست شده باشند یا نه.
پایه
دسته «پایه» شامل فیلدهای زیر است:
address_components، adr_address، business_status،
formatted_address، geometry، icon،
icon_mask_base_uri، icon_background_color،name،
permanently_closed (منسوخشده)،
photo، place_id، plus_code، type،
url، utc_offset (منسوخشده
در «کتابخانه جاها»، Maps JavaScript API)، utc_offset_minutes،
vicinity
تماس
دسته «مخاطب» شامل فیلدهای زیر است:
formatted_phone_number، international_phone_number،
opening_hours، website
محیط
دسته «محیط» شامل فیلدهای زیر است:
price_level، rating، reviews،
user_ratings_total
درباره فیلدهای مکان بیشتر بدانید. برای اطلاعات بیشتر درباره نحوه صدور صورتحساب برای درخواستهای دادههای «مکان»، به استفاده و صدور صورتحساب مراجعه کنید.
پاسخهای جزئیات جا
رمزهای وضعیت
شیء پاسخ PlacesServiceStatus حاوی وضعیت درخواست است و ممکن است حاوی اطلاعات اشکالزدایی باشد تا به شما کمک کند دلیل ناموفق بودن درخواست «جزئیات جا» را ردیابی کنید. مقادیر احتمالی برای وضعیت عبارتند از:
-
INVALID_REQUEST: این درخواست نامعتبر بود. -
OK: پاسخ حاوی نتیجه معتبر است. OVER_QUERY_LIMIT: صفحه وب از سهمیه درخواست خود فراتر رفته است.NOT_FOUNDمکان ارجاعدادهشده در پایگاه داده «مکانها» پیدا نشد.-
REQUEST_DENIED: این صفحه وب مجاز به استفاده از PlacesService نیست. UNKNOWN_ERROR: درخواست PlacesService بهدلیل خطای سرور پردازش نشد. اگر دوباره امتحان کنید، ممکن است درخواست موفقیتآمیز باشد.ZERO_RESULTS: هیچ نتیجهای برای این درخواست پیدا نشد.
نتایج جزئیات جا
فراخوانی موفق getDetails() یک شیء
PlaceResult با ویژگیهای زیر برمیگرداند:
address_components: آرایهای حاوی بخشهای جداگانه که برای این نشانی قابلاعمال است.هر مؤلفه نشانی معمولاً شامل فیلدهای زیر است:
types[]آرایهای است که نوع مؤلفه نشانی را نشان میدهد. وقتی هیچ نوع شناختهشدهای برای آن مؤلفه نشانی وجود نداشته باشد، مؤلفه نشانی ممکن است آرایه انواع خالی داشته باشد. ممکن است میانای برنامهسازی کاربردی درصورت نیاز مقادیر نوع جدیدی اضافه کند. برای اطلاعات بیشتر، به انواع نشانی و انواع مؤلفه نشانی مراجعه کنید.long_nameشرح نوشتاری کامل یا نام مؤلفه نشانی است که توسط «زمینکدیاب» برگردانده شده است.short_nameنام متنی اختصاری برای مؤلفه نشانی است (درصورت وجود). برای مثال، مؤلفه نشانی برای ایالت آلاسکا ممکن استlong_name«آلاسکا» وshort_name«AK» را بااستفاده از اختصار پستی ۲ حرفی داشته باشد.
به حقایق زیر درباره آرایه
address_components[]توجه کنید:- آرایه مؤلفههای نشانی ممکن است مؤلفههای بیشتری نسبت به
formatted_addressداشته باشد. - این آرایه لزوماً شامل همه نهادهای سیاسی که
حاوی نشانی هستند نمیشود، بهجز آنهایی که در
formatted_addressگنجانده شدهاند. برای بازیابی همه نهادهای سیاسی که حاوی نشانی خاصی هستند، باید از زمینکدیابی معکوس استفاده کنید و طول/عرض جغرافیایی نشانی را بهعنوان پارامتر به درخواست ارسال کنید. - تضمینی وجود ندارد که قالب پاسخ بین درخواستها یکسان باقی بماند. بهویژه، تعداد
address_componentsبراساس نشانی درخواستشده متفاوت است و میتواند درطول زمان برای نشانی یکسان تغییر کند. موقعیت مؤلفه میتواند در آرایه تغییر کند. نوع مؤلفه میتواند تغییر کند. ممکن است مؤلفه خاصی در پاسخ بعدی وجود نداشته باشد.
business_statusنشاندهنده وضعیت فعالیت مکان است، اگر کسبوکار باشد. میتواند حاوی یکی از مقادیر زیر باشد:OPERATIONALCLOSED_TEMPORARILYCLOSED_PERMANENTLY
business_statusبرگردانده نمیشود.-
formatted_address: نشانی قابلخواندن برای انسان این مکان.اغلب این نشانی معادل نشانی پستی است. توجه داشته باشید که برخی کشورها، مانند پادشاهی متحد، بهدلیل محدودیتهای صدور پروانه، اجازه توزیع نشانیهای پستی واقعی را نمیدهند.
نشانی قالببندیشده بهطور منطقی از یک یا چند مؤلفه نشانی تشکیل شده است. برای مثال، نشانی «111 8th Avenue, New York, NY» از مؤلفههای زیر تشکیل شده است: «111» (شماره خیابان)، «8th Avenue» (مسیر)، «New York» (شهر)، و «NY» (ایالت امریکا).
نشانی قالببندیشده را بهصورت برنامهنویسی تجزیه نکنید. درعوض باید از مؤلفههای نشانی تکی استفاده کنید که پاسخ میانای برنامهسازی کاربردی علاوهبر فیلد نشانی قالببندیشده شامل آن است.
formatted_phone_number: شماره تلفن مکان، قالببندیشده طبق قرارداد منطقهای شماره.geometry: اطلاعات مربوط به هندسه مکان. این شامل موارد زیر میشود:locationطول و عرض جغرافیایی مکان را ارائه میدهد.viewportناحیه نمایش ترجیحی را روی نقشه هنگام مشاهده این مکان تعریف میکند.
permanently_closed(منسوخشده) پرچم بولی است که نشان میدهد آیا مکان بهطور دائم یا موقت بسته شده است (مقدارtrue). ازpermanently_closedاستفاده نکنید. بهجای آن، ازbusiness_statusبرای دریافت وضعیت فعالیت کسبوکارها استفاده کنید.plus_code(به کد مکان باز و کدهای Plus مراجعه کنید) یک مرجع مکان کدگذاریشده است که از مختصات طول و عرض جغرافیایی مشتق شده است و منطقهای را نشان میدهد: ۱/۸۰۰۰ درجه در ۱/۸۰۰۰ درجه (حدود ۱۴ متر در ۱۴ متر در خط استوا) یا کوچکتر. کدهای Plus را میتوان بهعنوان جایگزینی برای نشانی خیابان در مکانهایی که نشانی خیابان وجود ندارد (جایی که ساختمانها شمارهگذاری نشدهاند یا خیابانها نامگذاری نشدهاند) استفاده کرد.Plus Code بهصورت کد جهانی و کد ترکیبی قالببندی میشود:
global_codeپیششمارهای ۴ نویسهای و کد محلی ۶ نویسهای یا طولانیتر است (849VCWC8+R9).compound_codeکد محلی ۶ نویسهای یا طولانیتر با مکان صریح است (CWC8+R9, Mountain View, CA, USA). این محتوا را بهصورت برنامهنویسی تجزیه نکنید.
html_attributions: نوشتار انتساب برای نمایش برای این نتیجه مکان.icon: نشانی وب منبع تصویری که میتواند برای نمایش نوع این مکان استفاده شود.international_phone_numberحاوی شماره تلفن مکان در قالب بینالمللی است. قالب بینالمللی شامل کد کشور است و با علامت بهعلاوه (+) شروع میشود. برای مثال،international_phone_numberبرای دفتر Google در سیدنی، استرالیا+61 2 9374 4000است.name: نام مکان.utc_offsetمنسوخشده در «کتابخانه جاها»، Maps JavaScript API، بهجای آن ازutc_offset_minutesاستفاده کنید.utc_offset_minutesحاوی تعداد دقیقههایی است که منطقه زمانی فعلی این مکان از ساعت هماهنگ جهانی (UTC) انحراف دارد. برای مثال، برای مکانهایی در سیدنی، استرالیا درطول ساعت تابستانی، این مقدار ۶۶۰ (۱۱+ ساعت از UTC) خواهد بود، و برای مکانهایی در کالیفرنیا خارج از ساعت تابستانی این مقدار ۴۸۰- (۸- ساعت از UTC) خواهد بود.opening_hoursحاوی اطلاعات زیر است:open_now(منسوخشده در کتابخانه جاها، Maps JavaScript API؛ بهجای آن از opening_hours.isOpen() استفاده کنید. برای نحوه استفاده ازisOpenبا «جزئیات جا»، به ویدیو نحوه دریافت ساعت کاری در Places API (قدیمی) مراجعه کنید .) `open_now` مقدار بولی است که نشان میدهد آیا مکان در زمان فعلی باز است یا نه.periods[]آرایهای از دورههای باز بودن است که هفت روز را پوشش میدهد و از یکشنبه بهترتیب زمانی شروع میشود. هر دوره شامل موارد زیر است:openحاوی یک جفت شیء روز و زمان است که زمان باز شدن مکان را شرح میدهد:dayعددی از ۰ تا ۶، مطابق با روزهای هفته، با شروع از یکشنبه. برای مثال، ۲ یعنی سهشنبه.timeممکن است حاوی زمان روز در قالب ۲۴ ساعته hhmm باشد (مقادیر در محدوده ۰۰۰۰ تا ۲۳۵۹ هستند).timeدر منطقه زمانی مکان گزارش خواهد شد.
closeممکن است حاوی یک جفت شیء روز و زمان باشد که زمان بسته شدن مکان را توصیف میکند. توجه: اگر مکانی همیشه باز باشد، بخشcloseدر پاسخ وجود نخواهد داشت. برنامهها میتوانند به همیشه باز بودن که بهصورت دورهopenحاویdayبا مقدار ۰ وtimeبا مقدار ۰۰۰۰ و بدونcloseنشان داده میشود، اتکا کنند.
weekday_textآرایهای از هفت رشته است که ساعت کاری قالببندیشده را برای هر روز هفته نشان میدهد. اگر پارامترlanguageدر درخواست «جزئیات مکان» مشخص شده باشد، «سرویس مکانها» ساعت کاری را بهطور مناسب برای آن زبان قالببندی و بومیسازی میکند. ترتیب عناصر در این آرایه به پارامترlanguageبستگی دارد. در برخی زبانها هفته از دوشنبه شروع میشود و در برخی دیگر از یکشنبه.
permanently_closed(منسوخشده) پرچم بولی است که نشان میدهد آیا مکان بهطور دائم یا موقت بسته شده است (مقدارtrue). ازpermanently_closedاستفاده نکنید. بهجای آن، ازbusiness_statusبرای دریافت وضعیت فعالیت کسبوکارها استفاده کنید.-
photos[]: آرایهای از اشیایPlacePhoto. ازPlacePhotoمیتوان برای دریافت عکس با روشgetUrl()استفاده کرد، یا میتوانید شیء را برای مقادیر زیر بررسی کنید:height: حداکثر ارتفاع تصویر، به پیکسل.width: حداکثر عرض تصویر، به پیکسل.-
html_attributions: نوشتار انتساب برای نمایش با این عکس مکان.
-
place_id: شناسه متنی که بهطور منحصربهفرد مکانی را شناسایی میکند و میتوان از آن برای بازیابی اطلاعات مربوط به مکان بااستفاده از درخواست جزئیات مکان استفاده کرد. درباره نحوه ارجاع به مکان با شناسه مکان بیشتر بدانید. rating: ردهبندی مکان، از ۰٫۰ تا ۵٫۰، براساس مرورهای انبوهیده کاربر.reviewsآرایهای از حداکثر پنج مرور. هر مرور از چند بخش تشکیل شده است:aspects[]حاوی آرایهای از اشیاءPlaceAspectRatingاست که هرکدام ردهبندی یک ویژگی از مؤسسه را ارائه میدهند. اولین شیء در آرایه بهعنوان جنبه اصلی درنظر گرفته میشود. هرPlaceAspectRatingبهصورت زیر تعریف میشود:typeنام جنبهای که ردهبندی میشود. انواع زیر پشتیبانی میشوند:appeal،atmosphere،decor،facilities،food،overall،qualityوservice.ratingردهبندی کاربر برای این جنبه خاص، از ۰ تا ۳.
author_nameنام کاربری که مرور را ارسال کرده است. مرورهای ناشناس به «کاربر Google» نسبت داده میشود. اگر پارامتر زبان تنظیم شده باشد، عبارت «کاربر Google» رشته بومیسازیشدهای را برمیگرداند.author_urlنشانی وب نمایه Google+ کاربر، درصورت وجود.languageکد زبان IETF که نشاندهنده زبان استفادهشده در مرور کاربر است. این فیلد فقط حاوی برچسب زبان اصلی است و برچسب ثانویه نشاندهنده کشور یا منطقه را ندارد. برای مثال، همه مرورهای انگلیسی با برچسب «en» مشخص میشوند و نه «en-AU» یا «en-UK».ratingردهبندی کلی کاربر برای این مکان. این یک عدد کامل است که از ۱ تا ۵ متغیر است.textمرور کاربر. وقتی مکانی را با Google Places مرور میکنید، مرورهای نوشتاری اختیاری درنظر گرفته میشوند؛ بنابراین، این فیلد ممکن است خالی باشد.
typesآرایهای از انواع این مکان (مثلاً،["political", "locality"]یا["restaurant", "lodging"]). این آرایه ممکن است حاوی چند مقدار باشد یا ممکن است خالی باشد. ممکن است مقادیر جدیدی بدون اطلاع قبلی معرفی شود. فهرست انواع پشتیبانیشده را ببینید.url: نشانی وب صفحه رسمی Google برای این مکان. این صفحه متعلق به Google است و حاوی بهترین اطلاعات موجود درباره مکان است. برنامهها باید در هر صفحهای که نتایج دقیق درباره مکان را به کاربر نشان میدهد، به این صفحه پیوند دهند یا آن را جاسازی کنند.vicinity: نشانی سادهشده برای مکان، شامل نام خیابان، شماره خیابان، و محل، اما نه استان/ایالت، کد پستی، یا کشور. برای مثال، دفتر Google در سیدنی، استرالیا دارای مقدارvicinity5/48 Pirrama Road, Pyrmontاست. خصوصیتvicinityفقط برای جستجوی اطراف برگردانده میشود.websiteوبسایت معتبر این مکان را فهرست میکند، مانند صفحه اصلی کسبوکار.
توجه: ردهبندیهای چندبعدی ممکن است برای همه مکانها دردسترس نباشد. اگر تعداد مرورها خیلی کم باشد، پاسخ جزئیات یا شامل ردهبندی قدیمی در مقیاس ۰٫۰ تا ۵٫۰ (درصورت وجود) خواهد بود یا اصلاً ردهبندی نخواهد داشت.
ارجاع به مکان با شناسه مکان
شناسه مکان مرجع منحصربهفردی برای مکانی در Google Map است. شناسه مکان برای اکثر مکانها، ازجمله کسبوکارها، نشانگرهای مکانی، پارکها، و تقاطعها دردسترس است.
برای استفاده از شناسه جا در برنامهتان، ابتدا باید شناسه را جستجو کنید که
در PlaceResult درخواست «جستجوی جاها» یا «جزئیات» دردسترس است.
سپس میتوانید از این شناسه جا برای جستجوی
جزئیات
جا استفاده کنید.
شناسههای مکان از محدودیتهای ذخیرهسازی موقت ذکرشده در بخش ۳.۲.۳(ب) «شرایط خدمات پلاتفرم Google Maps» معاف هستند. بنابراین میتوانید مقادیر شناسه مکان را برای استفاده بعدی ذخیره کنید. برای روالهای مطلوب هنگام ذخیره کردن شناسههای مکان، به نمای کلی شناسه مکان مراجعه کنید.
var map; function initialize() { // Create a map centered in Pyrmont, Sydney (Australia). map = new google.maps.Map(document.getElementById('map'), { center: {lat: -33.8666, lng: 151.1958}, zoom: 15 }); // Search for Google's office in Australia. var request = { location: map.getCenter(), radius: '500', query: 'Google Sydney' }; var service = new google.maps.places.PlacesService(map); service.textSearch(request, callback); } // Checks that the PlacesServiceStatus is OK, and adds a marker // using the place ID and location from the PlacesService. function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { var marker = new google.maps.Marker({ map: map, place: { placeId: results[0].place_id, location: results[0].geometry.location } }); } } google.maps.event.addDomListener(window, 'load', initialize);
عکس مکان
از ویژگی «عکس مکان» برای افزودن محتوای عکاسی با کیفیت بالا به سایتتان استفاده کنید. سرویس «عکس» به شما امکان میدهد به میلیونها عکس ذخیرهشده در پایگاه داده «اماکن» و Google+ Local دسترسی داشته باشید. وقتی اطلاعات مکانی را بااستفاده از درخواست «جزئیات جا» دریافت میکنید، ارجاعهای عکس برای محتوای عکاسی مربوطه برگردانده میشود. درخواستهای «جستجوی اطراف» و «جستجوی نوشتار» نیز درصورت مرتبط بودن، یک مرجع عکس برای هر مکان برمیگردانند. سپس بااستفاده از سرویس Photo میتوانید به عکسهای ارجاعشده دسترسی پیدا کنید و اندازه تصویر را به اندازه بهینه برای برنامهتان تغییر دهید.
آرایهای از اشیای PlacePhoto بهعنوان بخشی از شیء PlaceResult برای هر درخواست getDetails()، textSearch()، یا nearbySearch() که برای PlacesService انجام شده است برگردانده خواهد شد.
توجه: تعداد عکسهای برگرداندهشده بسته به درخواست متفاوت است.
- «جستجوی اطراف» یا «جستجوی نوشتار» حداکثر یک شیء
PlacePhotoرا برمیگرداند. - درخواست «جزئیات» حداکثر ده شیء
PlacePhotoرا برمیگرداند.
میتوانید نشانی وب تصویر مرتبط را با فراخوانی روش
PlacePhoto.getUrl() و ارسال شیء
PhotoOptions معتبر درخواست کنید. از شیء PhotoOptions برای مشخص کردن حداکثر ارتفاع و عرض تصویر استفاده کنید. اگر
مقداری را برای هر دو maxHeight و maxWidth مشخص کنید،
سرویس عکس اندازه تصویر را به اندازه کوچکتر از بین این دو اندازه تغییر میدهد، درحالیکه
نسبت ابعادی اصلی را حفظ میکند.
قطعه کد زیر شیء مکان را میپذیرد و اگر عکسی وجود داشته باشد، نشانگری به نقشه اضافه میکند. تصویر نشانگر پیشفرض با نسخه کوچکی از عکس جایگزین میشود.
function createPhotoMarker(place) { var photos = place.photos; if (!photos) { return; } var marker = new google.maps.Marker({ map: map, position: place.geometry.location, title: place.name, icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35}) }); }
عکسهایی که «سرویس عکس» برمیگرداند از مکانهای مختلفی گرفته شدهاند،
ازجمله عکسهایی که مالکان کسبوکار و کاربران همیاری کردهاند. در اکثر موارد، این عکسها را میتوان بدون ارجاع استفاده کرد، یا ارجاع لازم بهعنوان بخشی از تصویر گنجانده شده است. بااینحال، اگر عنصر
photo برگرداندهشده حاوی مقداری در فیلد
html_attributions باشد، باید ارجاع اضافی را در هر جایی از برنامهتان که تصویر را نمایش میدهید اضافه کنید.