زمینکدیابی معکوس مکان نقشه را به نشانی قابلخواندن برای انسان ترجمه میکند. مکان نقشه را با مختصات طول و عرض جغرافیایی مکان نشان میدهید.
وقتی مکانی را زمینکدیابی معکوس میکنید، پاسخ حاوی موارد زیر است:
- شناسه جا نشانی
- Plus Codes نشانی
- جزئیات نشانی
این API انواع مختلفی از نشانیها را برمیگرداند، از نشانی خیابان که دقیقترین نشانی است تا نهادهای سیاسی با دقت کمتر مثل محلهها، شهرها، شهرستانها، و ایالتها. دقیقترین نشانی معمولاً اولین نتیجه است. اگر
میخواهید نوع خاصی از نشانی را مطابقت دهید، از پارامتر
types استفاده کنید.
درخواست زمینکدیابی معکوس
درخواست زمینکدیابی معکوس یک درخواست HTTP GET است. میتوانید مکان را بهصورت رشته بدون ساختار مشخص کنید:
https://geocode.googleapis.com/v4/geocode/location/LATITUDE,LONGITUDE
یا بهعنوان مجموعهای ساختاریافته از مختصات طول و عرض جغرافیایی که با پارامترهای پُرسمان نشان داده میشود:
https://geocode.googleapis.com/v4/geocode/location?location.latitude=LATITUDE&location.longitude=LONGITUDE
معمولاً هنگام پردازش مؤلفههای مکان ضبطشده در فرم HTML، از قالب ساختاریافته استفاده میکنید.
همه پارامترهای دیگر را بهعنوان پارامترهای نشانی وب یا، برای پارامترهایی مثل کلید API یا پوشش فیلد، در سرایندها بهعنوان بخشی از درخواست GET ارسال کنید. برای مثال:
رشته مکان ساختارنیافته را ارسال کنید
مکان بدون ساختار مکانی است که بهصورت رشتهای از مختصات عرض و طول جغرافیایی با جداکننده کاما قالببندی شده است:
https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?key=API_KEY
یا در فرمان curl:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338"
ارسال مکان ساختاریافته
مکان ساختاریافته را بااستفاده از پارامتر پُرسمان location از نوع
LatLng مشخص کنید.
شیء LatLng به شما امکان میدهد عرض و طول جغرافیایی را بهعنوان پارامترهای پُرسمان جداگانه مشخص کنید:
https://geocode.googleapis.com/v4/geocode/location?location.latitude=37.4225508&location.longitude=-122.0846338 &key=API_KEY
استفاده از OAuth برای درخواست دادن
Geocoding API نسخه ۴ از OAuth 2.0 برای اصالتسنجی پشتیبانی میکند. برای استفاده از OAuth با Geocoding API، باید محدوده صحیح به کد OAuth اختصاص داده شود. Geocoding API از دامنههای زیر برای استفاده با geocoding معکوس پشتیبانی میکند:
https://www.googleapis.com/auth/maps-platform.geocode— با همه روشهای Geocoding API استفاده کنید.https://www.googleapis.com/auth/maps-platform.geocode.location— فقط باGeocodeLocationبرای زمینکدیابی معکوس استفاده کنید.
همچنین میتوانید از https://www.googleapis.com/auth/cloud-platform
دامنه عمومی برای همه روشهای Geocoding API استفاده کنید. این دامنه درطول توسعه مفید است، اما نه در تولید، زیرا دامنهای عمومی است که دسترسی به همه روشها را امکانپذیر میکند.
برای اطلاعات بیشتر و مثالها، به استفاده از OAuth مراجعه کنید.
پاسخ زمینکدیابی معکوس
زمینکدیابی معکوس یک شیء
GeocodeLocationResponse
برمیگرداند که حاوی موارد زیر است:
-
آرایه
resultsاز اشیاءGeocodeResultکه نشاندهنده مکان است.پاسخهای Geocoding API شامل
typesآرایه در دو مکان اصلی درGeocodeResultاست:GeocodeResult.types: این آرایه نوع(های) کلی نتیجه را نشان میدهد. مقادیر ممکن از انواع «مکان» استفادهشده توسط Places API گرفته میشود. برای اطلاعات بیشتر، جدولهای A و B انواع مکان را ببینید.GeocodeResult.addressComponents[].types: هر مؤلفه نشانی دارای یک آرایهtypesاست که نوع آن بخش خاص از نشانی را نشان میدهد. این مقادیر از جدول انواع نشانی و انواع مؤلفه نشانی که توسط Places API استفاده میشود گرفته شدهاند.
«زمینکد معکوس» بیشاز یک نتیجه در آرایه
resultsبرمیگرداند. نتایج فقط نشانیهای پستی نیستند، بلکه هر روشی برای نامگذاری جغرافیایی مکان را شامل میشوند. برای مثال، هنگام زمینکد کردن نقطهای در شهر شیکاگو، نقطه زمینکدشده ممکن است بهعنوان نشانی خیابان، بهعنوان شهر (شیکاگو)، بهعنوان ایالت (ایلینوی)، یا بهعنوان کشور (ایالات متحده) نشان داده شود. همه «نشانیها» برای زمینکدیاب هستند. زمینکدیاب معکوس هرکدام از این انواع را بهعنوان نتایج معتبر برمیگرداند. -
فیلد
plusCode، از نوعPlusCode، حاوی Plus Code است که بهترین تقریب را برای عرض و طول جغرافیایی در درخواست ارائه میدهد. علاوهبراین، هر عنصر آرایهresultsحاوی یک Plus Code است. فاصله بین «کد پلاس» رمزگشاییشده و نقطه درخواست کمتر از ۱۰ متر باشد.توجه: «میانای برنامهسازی کاربردی» همیشه «کدهای پلاس» را برنمیگرداند.
شیء JSON کامل در فرم است:
{ "results": [ { "place": "//places.googleapis.com/places/ChIJV-FZF7i7j4ARo4ZOUoecZFU", "placeId": "ChIJV-FZF7i7j4ARo4ZOUoecZFU", "location": { "latitude": 37.422588300000008, "longitude": -122.0846489 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.421239319708512, "longitude": -122.0859978802915 }, "high": { "latitude": 37.423937280291511, "longitude": -122.08329991970851 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "addressComponents": [ { "longText": "1600", "shortText": "1600", "types": [ "street_number" ] }, { "longText": "Amphitheatre Parkway", "shortText": "Amphitheatre Pkwy", "types": [ "route" ], "languageCode": "en" }, { "longText": "Mountain View", "shortText": "Mountain View", "types": [ "locality", "political" ], "languageCode": "en" }, { "longText": "Santa Clara County", "shortText": "Santa Clara County", "types": [ "administrative_area_level_2", "political" ], "languageCode": "en" }, { "longText": "California", "shortText": "CA", "types": [ "administrative_area_level_1", "political" ], "languageCode": "en" }, { "longText": "United States", "shortText": "US", "types": [ "country", "political" ], "languageCode": "en" }, { "longText": "94043", "shortText": "94043", "types": [ "postal_code" ] } ], "types": [ "street_address" ], "plusCode": { "globalCode": "849VCW83+PM", "compoundCode": "CW83+PM Mountain View, CA, USA" } }, { "place": "//places.googleapis.com/places/ChIJj61dQgK6j4AR4GeTYWZsKWw", "placeId": "ChIJj61dQgK6j4AR4GeTYWZsKWw", "location": { "latitude": 37.4220541, "longitude": -122.08532419999999 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.4207051197085, "longitude": -122.08667318029148 }, "high": { "latitude": 37.423403080291493, "longitude": -122.08397521970851 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "addressComponents": [ { "longText": "1600", "shortText": "1600", "types": [ "street_number" ] }, { "longText": "Amphitheatre Parkway", "shortText": "Amphitheatre Pkwy", "types": [ "route" ], "languageCode": "en" }, { "longText": "Mountain View", "shortText": "Mountain View", "types": [ "locality", "political" ], "languageCode": "en" }, { "longText": "Santa Clara County", "shortText": "Santa Clara County", "types": [ "administrative_area_level_2", "political" ], "languageCode": "en" }, { "longText": "California", "shortText": "CA", "types": [ "administrative_area_level_1", "political" ], "languageCode": "en" }, { "longText": "United States", "shortText": "US", "types": [ "country", "political" ], "languageCode": "en" }, { "longText": "94043", "shortText": "94043", "types": [ "postal_code" ] } ], "types": [ "establishment", "point_of_interest" ], "plusCode": { "globalCode": "849VCWC7+RV", "compoundCode": "CWC7+RV Mountain View, CA, USA" } }, ... ], "plusCode": { "globalCode": "849VCWF8+24H", "compoundCode": "CWF8+24H Mountain View, CA, USA" } }
پارامترهای الزامی
مکان
مختصات طول و عرض جغرافیایی که مشخص میکند نزدیکترین نشانی قابلخواندن برای انسان را کجا میخواهید.
پارامترهای اختیاری
languageCode
زبانی که نتایج به آن برگردانده میشود.
- فهرست زبانهای پشتیبانیشده را ببینید. Google اغلب زبانهای پشتیبانیشده را بهروز میکند، بنابراین این فهرست ممکن است کامل نباشد.
-
اگر
languageCodeارائه نشده باشد، API بهطور پیشفرض از زبان محلی و نویسههای مکان استفاده میکند. اگر کد زبان نامعتبری را مشخص کنید، API خطایINVALID_ARGUMENTرا برمیگرداند. - این API تلاش میکند نشانی خیابانی ارائه دهد که هم برای کاربر و هم برای افراد محلی خوانا باشد. برای رسیدن به این هدف، نشانیهای خیابان را به زبان محلی برمیگرداند و درصورت لزوم، با رعایت زبان ترجیحی کاربر، آن را به خطی که کاربر بتواند بخواند آوانویسی میکند. همه نشانیهای دیگر به زبان ترجیحی برگردانده میشوند. همه مؤلفههای نشانی به همان زبانی برگردانده میشوند که از مؤلفه اول انتخاب شده است.
- اگر نامی به زبان ترجیحی دردسترس نباشد، API از نزدیکترین مطابقت استفاده میکند.
- زبان ترجیحی تأثیر کمی بر مجموعه نتایجی دارد که میانای برنامهسازی کاربردی برای برگرداندن انتخاب میکند و ترتیبی که در آن برگردانده میشوند. کدبند براساس زبان، مخففها را بهشکل متفاوتی تفسیر میکند، برای مثال، مخففهای انواع خیابان، یا مترادفهایی که ممکن است در یک زبان معتبر باشند اما در زبان دیگر معتبر نباشند.
regionCode
کد منطقه بهعنوان مقدار کد دوحرفی CLDR. مقدار پیشفرضی وجود ندارد. بیشتر کدهای CLDR با کدهای ISO 3166-1 یکسان هستند.
هنگام زمینکدیابی نشانی، زمینکدیابی مستقیم، این پارامتر میتواند بر نتایج سرویس در منطقه مشخصشده تأثیر بگذارد، اما نمیتواند آنها را بهطور کامل محدود کند. هنگام زمینکدیابی مکان یا مکان، زمینکدیابی معکوس یا زمینکدیابی مکان، از این پارامتر میتوان برای قالببندی نشانی استفاده کرد. در همه موارد، این پارامتر میتواند براساس قانون ذیربط بر نتایج تأثیر بگذارد.
دانهبندی
یک یا چند دانه موقعیت مکانی، که بهعنوان پارامترهای پرسمان جداگانه مشخص شدهاند، همانطور که توسط
Granularityتعریف شده است. اگر چند پارامترgranularityمشخص کنید، «میانای برنامهسازی کاربردی» همه نشانیهایی را که با هریک از جزئیات مطابقت دارد برمیگرداند.پارامتر
granularityجستجو را به دانهبندیهای مکان مشخصشده محدود نمیکند. بلکه،granularityبهعنوان فیلتر پساز جستجو عمل میکند. API همه نتایج را برایlocationمشخصشده واکشی میکند، سپس نتایجی را که با دانهبندیهای مکان مشخصشده مطابقت ندارند کنار میگذارد.اگر هم
typesو همgranularityرا مشخص کنید، میانای برنامهسازی کاربردی فقط نتایجی را برمیگرداند که با هر دو مطابقت داشته باشد. برای مثال:https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?granularity=ROOFTOP
&granularity=GEOMETRIC_CENTER &key=API_KEY انواع
یک یا چند نوع نشانی که بهعنوان پارامترهای پُرسمان جداگانه مشخص شدهاند. مقادیر ممکن از جدول انواع نشانی و انواع عنصر نشانی در صفحه «انواع مکان (جدید)» گرفته میشود. اگر چند پارامتر
typesرا مشخص کنید، API همه نشانیهایی را که با هریک از انواع مطابقت داشته باشد برمیگرداند.پارامتر
typesجستجو را به نوع(های) نشانی مشخصشده محدود نمیکند. بلکه،typesبهعنوان فیلتر پساز جستجو عمل میکند. این API همه نتایج را برای مکان مشخصشده واکشی میکند، سپس نتایجی را که با نوع(های) نشانی مشخصشده مطابقت ندارند دور میاندازد.اگر هم
typesو همgranularityرا مشخص کنید، میانای برنامهسازی کاربردی فقط نتایجی را برمیگرداند که با هر دو مطابقت داشته باشد. برای مثال:https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?types=administrative_area_level_2
&types=locality &key=API_KEY -
FieldMask
ماسک فیلد پاسخ ایجاد کنید تا فیلدهایی را که باید در پاسخ برگردانده شوند مشخص کنید. ماسک فیلد پاسخ را بااستفاده از پارامتر نشانی وب
$fieldsیاfields، یا بااستفاده از سرصفحه HTTPX-Goog-FieldMaskبه روش ارسال کنید. برای مثال، درخواست زیر فقط فیلدهایplaceIDپاسخ را برمیگرداند. پاسخ:curl -X GET -H 'Content-Type: application/json' \ -H 'X-Goog-FieldMask: results.placeId' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338"
{ "results": [ { "placeId": "ChIJHRNUiQK6j4ARJ__Hrbt6qsE" }, { "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g" }, { "placeId": "ChIJ1yjFJ1-7j4ARG_RVqFD1h7k" }, { "placeId": "ChIJ09H2YwK6j4ARoF7qfCBxhB8" }, ... ] }
برای جزئیات بیشتر، انتخاب فیلدها برای برگرداندن را ببینید.