ژئوکدینگ معکوس یک مکان نقشه را به یک آدرس قابل خواندن توسط انسان ترجمه می کند. شما مکان نقشه را با مختصات طول و عرض جغرافیایی مکان نشان می دهید.
هنگامی که ژئوکد مکانی را معکوس می کنید، پاسخ شامل موارد زیر است:
- شناسه محل آدرس
- کدهای بعلاوه آدرس
- جزئیات آدرس
این API انواع مختلفی از آدرسها را برمیگرداند، از مشخصترین آدرس خیابان گرفته تا نهادهای سیاسی کمتر خاص مانند محلهها، شهرها، شهرستانها و ایالتها. دقیق ترین آدرس عموما اولین نتیجه است. اگر می خواهید نوع خاصی از آدرس را مطابقت دهید، از پارامتر types
استفاده کنید.
درخواست ژئوکدینگ معکوس
درخواست geocoding معکوس یک درخواست HTTP GET است. می توانید مکان را به عنوان یک رشته بدون ساختار مشخص کنید:
https://geocode.googleapis.com/v4beta/geocode/location/LATITUDE,LONGITUDE
یا به عنوان مجموعه ای ساختار یافته از مختصات طول و عرض جغرافیایی که با پارامترهای پرس و جو نشان داده می شود:
https://geocode.googleapis.com/v4beta/geocode/location?location.latitude=LATITUDE&location.longitude=LONGITUDE
معمولاً هنگام پردازش اجزای مکان که در فرم HTML گرفته شده اند از قالب ساختاریافته استفاده می کنید.
همه پارامترهای دیگر را به عنوان پارامترهای URL یا برای پارامترهایی مانند کلید API یا ماسک فیلد در سرصفحه ها به عنوان بخشی از درخواست GET ارسال کنید. به عنوان مثال:
یک رشته مکان بدون ساختار را پاس کنید
مکان بدون ساختار مکانی است که به صورت رشته ای از مختصات طول و عرض جغرافیایی جدا شده با کاما شکل می گیرد:
https://geocode.googleapis.com/v4beta/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/v4beta/geocode/location/37.4225508,-122.0846338"
از یک مکان ساختاریافته عبور کنید
مکان ساخت یافته را با استفاده از پارامتر پرس و جوی location
، از نوع LatLng
مشخص کنید. شی LatLng
به شما امکان می دهد طول و عرض جغرافیایی را به عنوان پارامترهای پرس و جو جداگانه مشخص کنید:
https://geocode.googleapis.com/v4beta/geocode/location?location.latitude=37.4225508&location.longitude=-122.0846338 &key=API_KEY
از OAuth برای درخواست استفاده کنید
Geocoding API v4 از 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
scope عمومی برای تمام نقاط پایانی Geocoding API استفاده کنید. این محدوده در طول توسعه مفید است، اما نه تولید، زیرا یک محدوده کلی است که اجازه دسترسی به تمام نقاط پایانی را می دهد.
برای اطلاعات بیشتر و مثالها، استفاده از OAuth را ببینید.
پاسخ ژئوکدینگ معکوس
ژئوکدینگ معکوس یک شی GeocodeLocationResponse
را برمی گرداند که حاوی:
آرایه
results
از اشیاءGeocodeResult
که مکان را نشان می دهد.ژئوکدر معکوس بیش از یک نتیجه را در آرایه
results
برمی گرداند. نتایج فقط آدرسهای پستی نیستند، بلکه هر روشی برای نامگذاری جغرافیایی یک مکان هستند. به عنوان مثال، هنگام کدگذاری جغرافیایی یک نقطه در شهر شیکاگو، نقطه جغرافیایی ممکن است به عنوان آدرس خیابان، به عنوان شهر (شیکاگو)، به عنوان ایالت آن (ایلینویز) یا به عنوان یک کشور (ایالات متحده) مشخص شود. همه "آدرس" به geocoder هستند. ژئوکدر معکوس هر یک از این انواع را به عنوان نتایج معتبر برمی گرداند.فیلد
plusCode
، از نوعPlusCode
، حاوی کد پلاس است که بهترین تقریب طول و عرض جغرافیایی در درخواست را دارد. علاوه بر این، هر عنصر از آرایهresults
حاوی کد پلاس است. فاصله بین کد پلاس رمزگشایی شده و نقطه درخواست زیر 10 متر است.
شیء کامل 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" } }
پارامترهای مورد نیاز
مکان
مختصات طول و عرض جغرافیایی که مشخص می کند نزدیک ترین آدرس و قابل خواندن برای انسان کجا را می خواهید.
پارامترهای اختیاری
کد زبان
زبانی که در آن نتایج را برگرداند.
- لیست زبان های پشتیبانی شده را ببینید. Google اغلب زبان های پشتیبانی شده را به روز می کند، بنابراین این فهرست ممکن است جامع نباشد.
- اگر
languageCode
ارائه نشده باشد، API پیشفرضen
را انتخاب میکند. اگر کد زبان نامعتبر را مشخص کنید، API یک خطایINVALID_ARGUMENT
را برمیگرداند. - API تمام تلاش خود را می کند تا آدرس خیابانی را ارائه دهد که هم برای کاربر و هم برای افراد محلی قابل خواندن باشد. برای دستیابی به این هدف، آدرسهای خیابان را به زبان محلی برمیگرداند و به اسکریپتی که در صورت لزوم توسط کاربر قابل خواندن است، با رعایت زبان ترجیحی، ترجمه میشود. همه آدرس های دیگر به زبان ترجیحی برگردانده می شوند. اجزای آدرس همه به یک زبان بازگردانده می شوند که از جزء اول انتخاب شده است.
- اگر نامی در زبان ترجیحی موجود نباشد، API از نزدیکترین تطابق استفاده می کند.
- زبان ترجیحی تأثیر کمی بر مجموعه نتایجی که API برای برگرداندن آنها انتخاب میکند و ترتیب بازگرداندن آنها دارد. geocoder بسته به زبان، اختصارات را متفاوت تفسیر می کند، مانند اختصارات انواع خیابان، یا مترادف هایی که ممکن است در یک زبان معتبر باشند اما در زبان دیگر معتبر نیستند.
منطقه کد
کد منطقه به عنوان یک مقدار کد CLDR دو کاراکتری . هیچ مقدار پیش فرض وجود ندارد. اکثر کدهای CLDR با کدهای ISO 3166-1 یکسان هستند.
هنگام کدگذاری جغرافیایی یک آدرس، کدگذاری جغرافیایی فوروارد ، این پارامتر می تواند بر نتایج سرویس به منطقه مشخص شده تأثیر بگذارد، اما به طور کامل محدود نمی شود. هنگام کدگذاری جغرافیایی یک مکان یا مکان، رمزگذاری جغرافیایی معکوس یا کدگذاری جغرافیایی مکان ، می توان از این پارامتر برای قالب بندی آدرس استفاده کرد. در همه موارد، این پارامتر می تواند بر نتایج بر اساس قانون قابل اجرا تأثیر بگذارد.
دانه بندی
یک یا چند جزئیات مکان، که به عنوان پارامترهای جستار جداگانه مشخص شده است، همانطور که توسط
Granularity
تعریف شده است. اگر چندین پارامترgranularity
را مشخص کنید، API همه آدرسهایی را که با هر یک از جزئیات مطابقت دارند برمیگرداند.پارامتر
granularity
جستجو را به جزئیات مکان مشخص محدود نمی کند. در عوض،granularity
به عنوان یک فیلتر پس از جستجو عمل می کند. API همه نتایج را برایlocation
مشخص شده واکشی می کند، سپس نتایجی را که با جزئیات مکان مشخص مطابقت ندارند کنار می گذارد.اگر هر دو
types
وgranularity
را مشخص کنید، API فقط نتایجی را برمیگرداند که با هر دو مطابقت دارند. به عنوان مثال:https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338?granularity=ROOFTOP
&granularity=GEOMETRIC_CENTER &key=API_KEY انواع
یک یا چند نوع آدرس که به عنوان پارامترهای پرس و جو جداگانه مشخص شده است. اگر چندین پارامتر
types
را مشخص کنید، API همه آدرسهایی را که با هر یک از انواع مطابقت دارند را برمیگرداند.پارامتر
types
جستجو را به نوع(های) آدرس مشخص شده محدود نمی کند. در عوض،types
به عنوان یک فیلتر پس از جستجو عمل می کند. API همه نتایج را برای مکان مشخص شده واکشی می کند، سپس آن دسته از نتایجی را که با نوع(های) آدرس مشخص شده مطابقت ندارند، کنار می گذارد.اگر هر دو
types
وgranularity
را مشخص کنید، API فقط نتایجی را برمیگرداند که با هر دو مطابقت دارند. به عنوان مثال:https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338?types=administrative_area_level_2
&types=locality &key=API_KEY مقادیر زیر پشتیبانی می شوند:
انواع آدرس و انواع اجزای آدرس
آرایه
types
در بدنهGeocodeResult
در پاسخ نشان دهنده نوع آدرس است. نمونههایی از انواع آدرسها عبارتند از آدرس خیابان، کشور یا یک نهاد سیاسی. آرایهtypes
در قسمتAddressComponents
بدنهGeocodeResult
نوع هر قسمت از آدرس را نشان می دهد. به عنوان مثال می توان به شماره خیابان یا کشور اشاره کرد.آدرس ها ممکن است انواع مختلفی داشته باشند. انواع ممکن است "برچسب" در نظر گرفته شوند. به عنوان مثال، بسیاری از شهرها با انواع
political
وlocality
برچسب گذاری شده اند.انواع زیر در هر دو آرایه نوع آدرس و نوع جزء آدرس پشتیبانی و برگردانده می شوند:
نوع آدرس توضیحات street_address
آدرس خیابان دقیق route
یک مسیر نامگذاری شده (مانند "US 101"). intersection
یک تقاطع اصلی، معمولاً از دو جاده اصلی. political
یک نهاد سیاسی معمولاً این نوع نشان دهنده چند ضلعی برخی از مدیریت شهری است. country
نهاد سیاسی ملی، و معمولاً بالاترین نوع است که توسط Geocoder بازگردانده می شود. administrative_area_level_1
یک نهاد مدنی درجه یک زیر سطح کشور. در داخل ایالات متحده، این سطوح اداری ایالت ها هستند. همه کشورها این سطوح اداری را نشان نمی دهند. در بیشتر موارد، نامهای کوتاه administrative_area_level_1
با زیربخشهای ISO 3166-2 و سایر فهرستهای پرتیراژ بسیار مطابقت دارند. با این حال، این تضمین نمی شود، زیرا نتایج جغرافیایی ما بر اساس سیگنال های مختلف و داده های مکان است.administrative_area_level_2
یک نهاد مدنی درجه دوم زیر سطح کشور. در داخل ایالات متحده، این سطوح اداری شهرستان ها هستند. همه کشورها این سطوح اداری را نشان نمی دهند. administrative_area_level_3
یک نهاد مدنی درجه سوم زیر سطح کشور. این نوع نشان دهنده یک تقسیم مدنی جزئی است. همه کشورها این سطوح اداری را نشان نمی دهند. administrative_area_level_4
یک نهاد مدنی درجه چهارم زیر سطح کشور. این نوع نشان دهنده یک تقسیم مدنی جزئی است. همه کشورها این سطوح اداری را نشان نمی دهند. administrative_area_level_5
یک نهاد مدنی درجه پنجم زیر سطح کشور. این نوع نشان دهنده یک تقسیم مدنی جزئی است. همه کشورها این سطوح اداری را نشان نمی دهند. administrative_area_level_6
یک نهاد مدنی درجه شش زیر سطح کشور. این نوع نشان دهنده یک تقسیم مدنی جزئی است. همه کشورها این سطوح اداری را نشان نمی دهند. administrative_area_level_7
یک نهاد مدنی درجه هفتم زیر سطح کشور. این نوع نشان دهنده یک تقسیم مدنی جزئی است. همه کشورها این سطوح اداری را نشان نمی دهند. colloquial_area
یک نام جایگزین رایج برای نهاد. locality
یک نهاد سیاسی یک شهر یا شهرک. sublocality
یک نهاد مدنی درجه یک در زیر یک منطقه. برای برخی مکانها ممکن است یکی از انواع اضافی دریافت شود: sublocality_level_1
تاsublocality_level_5
. هر سطح فرعی یک نهاد مدنی است. اعداد بزرگتر نشان دهنده یک منطقه جغرافیایی کوچکتر است.neighborhood
محله ای به نام premise
یک مکان نامگذاری شده، معمولاً یک ساختمان یا مجموعه ای از ساختمان ها با نام مشترک. subpremise
موجودی قابل آدرس دهی در زیر سطح محل، مانند آپارتمان، واحد یا سوئیت. plus_code
مرجع مکان کدگذاری شده، برگرفته از طول و عرض جغرافیایی. کدهای پلاس می توانند به عنوان جایگزینی برای آدرس های خیابان ها در مکان هایی که وجود ندارند (جایی که ساختمان ها شماره گذاری نشده اند یا خیابان ها نامگذاری نشده اند) استفاده شود. برای جزئیات بیشتر به https://plus.codes مراجعه کنید. postal_code
کد پستی که برای آدرس دهی نامه های پستی در داخل کشور استفاده می شود. natural_feature
یک ویژگی طبیعی بارز. airport
یک فرودگاه park
پارکی به نام point_of_interest
یک نقطه مورد علاقه با نام به طور معمول، این "POI" نهادهای محلی برجسته ای هستند که به راحتی در دسته بندی دیگری مانند "امپایر استیت بیلدینگ" یا "برج ایفل" قرار نمی گیرند. یک لیست خالی از انواع نشان می دهد که هیچ نوع شناخته شده ای برای جزء آدرس خاص وجود ندارد (به عنوان مثال، Lieu-dit در فرانسه).