در حال بارگذاری

پرش به مطلب اصلی

سرویس جستجوی مکان‌مبنا (Search API)

اطلاع

صفحه‌ای که در حال مشاهده آن هستید، حاوی مستندات آخرین نسخه سرویس جستجوی مکان‌مبنا می‌باشد. مستندات مرتبط با نسخه قدیمی این سرویس را در صفحه نسخه 1.0.0 می‌توانید مشاهده کنید.

وب‌سرویس جستجوی مکان‌مبنا، با توجه به یک نقطه‌ مرجع (مختصات جغرافیایی)، بهترین نتایج ممکن را برای جستجوی نام خیابان‌ها، اماکن و کسب‌وکارها در اختیار شما قرار می‌دهد. این سرویس یکی از کامل‌ترین سرویس‌های جستجوی موقعیت‌محور در ایران است که با پشتیبانی کامل از زبان فارسی، نتایج را بر اساس فاصله از نقطه مرجع مرتب کرده و در هر درخواست، حداکثر ۳۰ نتیجه مرتبط را باز می‌گرداند.

نکته

برای فعال سازی این سرویس لطفا از طریق ارسال تیکت در پنل کاربری با پشتیبانی تماس بگیرید.

اطلاع
  1. ۱

    اولین قدم ثبت‌نام و دریافت API KEY برای اپلیکیشنی است که قصد دارید در آن از Map Api نشان استفاده کنید. کافیست در لینک فوق فرم مربوطه را تکمیل کنید تا بلافاصله API KEY را دریافت نمایید.

  2. ۲

    Api Key دریافتی از پنل توسعه‌دهندگان نشان را به صورتی که در ادامه مشاهده می‌کنید از طریق کلید Api-Key در header درخواست سرویس بگنجانید.

  3. ۳

    درخواست خود را با توجه به پارامترهایی که مربوط به سرویس موردنظرتان است با متد GET فراخوانی کنید.

  4. ۴

    چنانچه درخواست شما با موفقیت پردازش و پاسخ داده شود، خروجی با فرمت JSON دریافت خواهید کرد و چنانچه به هر دلیل خطایی رخ دهد، کد خطا بصورت HTTP Status Code و نوع آن با فرمت JSON ارسال می‌گردد. کدهای خطای احتمالی نیز در ادامه به صورت کامل توضیح داده شده‌اند.

شیوه‌ فراخوانی

آدرس Endpoint

برای استفاده از این سرویس، یک درخواست GET به اندپوینت زیر ارسال کنید:

https://api.neshan.org/v3/search

هدرهای درخواست (Headers)

Api-Key: <YOUR_API_KEY>

پارامترهای ورودی

پارامتر اصلی ورودی q است که حاوی یک آبجکت JSON شامل عبارت جستجو و مختصات نقطه مرجع است. این آبجکت باید پیش از ارسال، URL-encode شود.

پارامترتوضیحاتنوع پارامتر
qرشته JSON شامل پارامترهای جستجو.اجباری

اجزای آبجکت q

پارامترتوضیحاتنوع پارامتر
termعبارت مورد نظر برای جستجو.اجباری
centerیک آبجکت شامل مختصات نقطه مرجع برای مرکز جستجو.اجباری

اجزای آبجکت center (درون q)

پارامترتوضیحاتنوع پارامتر
latitudeعرض جغرافیایی نقطه مرجع.اجباری
longitudeطول جغرافیایی نقطه مرجع.اجباری
نکته

نقطه‌ مرجع می‌تواند موقعیت فعلی کاربر یا مرکز نقشه‌ای باشد که در حال مشاهده آن است. ارسال این پارامتر برای نمایش موقعیت‌های اطراف الزامی می‌باشد.

نمونه درخواست

# آدرس درخواست به‌صورت decode‌شده:
# https://api.neshan.org/v3/search?q={"term":"تهران، میدان تجریش","center":{"latitude":35.8069995955,"longitude":51.428789156}}

curl --location --globoff 'https://api.neshan.org/v3/search?q=%7B%22term%22%3A%22%D8%AA%D9%87%D8%B1%D8%A7%D9%86%D8%8C%20%D9%85%DB%8C%D8%AF%D8%A7%D9%86%20%D8%AA%D8%AC%D8%B1%DB%8C%D8%B4%22%2C%22center%22%3A%7B%22latitude%22%3A35.8069995955%2C%22longitude%22%3A51.428789156%7D%7D' \
--header 'Api-Key: <YOUR_API_KEY>'

فرمت پاسخ

پاسخ سرویس در قالب یک آبجکت JSON بازگردانده می‌شود. در نمونه‌ زیر، برای اختصار ۸ نتیجه‌ اول از ۱۹ نتیجه‌ بازگشتی این درخواست نمایش داده شده است.

{
"count": 19,
"items": [
{
"title": "میدان تجریش",
"address": "میدان تجریش",
"category": "place",
"type": "town_square",
"region": "تهران، استان تهران",
"neighbourhood": "",
"location": {
"x": 51.42885773612889,
"y": 35.80698735620152
},
"poiHash": "m9ycZYMyEDXwGRNsy-HfJjy0crsnk-fP-3_xgWA53DErRHSpAiiLu-lym_JX0iaq1c9Q8pWsLl8scjIDdT7gxw"
},
{
"title": "ایستگاه پلیس میدان تجریش",
"address": "ولیعصر، دربندی",
"category": "place",
"type": "police",
"region": "تهران، استان تهران",
"neighbourhood": "محله تجریش",
"location": {
"x": 51.42926825823118,
"y": 35.806566737765394
},
"poiHash": "yNa-B1Wc9u5sRxeXELqi7AeYt8ZwpIjJrCXm0wWGG9crRHSpAiiLu-lym_JX0iaq5w2-tKkN-wXcUQN9KD928A"
},
{
"title": "داروخانه میدان تجریش",
"address": "شهرداری، زعیم",
"category": "place",
"type": "pharmacy",
"region": "تهران، استان تهران",
"neighbourhood": "",
"location": {
"x": 51.429683597299295,
"y": 35.806801040812374
},
"poiHash": "wXtqMQxZnBicNffFbj37mUMdyo_92YTV2jf6sB110zUrRHSpAiiLu-lym_JX0iaqr5QiD7k_I9F9qz-w0HI5Qg"
},
{
"title": "فروشگاه کفش ملی شعبه میدان تجریش",
"address": "شهرداری، زعیم",
"category": "place",
"type": "shoe_store",
"region": "تهران، استان تهران",
"neighbourhood": "",
"location": {
"x": 51.42972451415558,
"y": 35.806768135174806
},
"poiHash": "CtUlXVF7hBl4wanBUJc7f3l_JwrVGDPAIqz5h7xeYJQrRHSpAiiLu-lym_JX0iaq1Dd1XTJYrYRXGqr_ccnnSw"
},
{
"title": "بیمه ایران میدان تجریش",
"address": "شهرداری، زعیم",
"category": "place",
"type": "insurance_agency",
"region": "تهران، استان تهران",
"neighbourhood": "محله تجریش",
"location": {
"x": 51.43005370858895,
"y": 35.806404429269236
},
"poiHash": "ggB6afGcJRUXfc4BzLbK_KrhqMEf0sUFt36hJFBcrDkrRHSpAiiLu-lym_JX0iaqucCnJDzkjskySJIIWwnc_g"
},
{
"title": "بازار میوه و تره بار تجریش",
"address": "ولیعصر، جلالوند",
"category": "place",
"type": "vegetable_market",
"region": "تهران، استان تهران",
"neighbourhood": "",
"location": {
"x": 51.42828510000002,
"y": 35.808315700000016
},
"poiHash": "kxLx0a1gT_0JWI5iJ_nXs32QU70Gx4nFTUJ2hIW3oRIrRHSpAiiLu-lym_JX0iaq83PESnXEWB3RoNMf2YSmUQ"
},
{
"title": "بانک تجارت (میدان تجریش)",
"address": "شهرداری",
"category": "place",
"type": "bank",
"region": "تهران، استان تهران",
"neighbourhood": "محله تجریش",
"location": {
"x": 51.43192291259766,
"y": 35.80565643310546
},
"poiHash": "7g0UsSjHVgzXvTTh_ctDr-b-Dszz8jembz0iP557Zy0rRHSpAiiLu-lym_JX0iaq0Hjz2H-H5mMkGEq3o-ulYg"
},
{
"title": "میدان قدس",
"address": "باهنر",
"category": "municipal",
"type": "roundabout",
"region": "تهران، استان تهران",
"neighbourhood": "محله تجریش",
"location": {
"x": 51.4340203,
"y": 35.8047944
},
"poiHash": "K0R0qQIoi7vpcpvyV9Imqsr2rD0JInXAHUSOFGu6wF4"
}
]
}

اجزای پاسخ

پارامترتوضیحات
countتعداد کل نتایج یافت‌شده.
itemsآرایه‌ای از نتایج یافت‌شده.

آبجکت item

پارامترتوضیحات
titleعنوان نتیجه یافت‌شده.
addressآدرس کامل مکان یا معبر.
neighbourhoodنام محله (در صورت وجود).
regionنام شهر و استان.
typeنوع رکورد یافت‌شده (مثلاً: مسجد، خیابان، بزرگراه، میدان).
categoryدسته‌بندی اصلی رکورد که یکی از مقادیر زیر است: place (مکان)، municipal (معبر شهری)، region (شهر، روستا، استان).
locationیک آبجکت شامل مختصات جغرافیایی نتیجه.
poiHashهش منحصربه‌فرد مکان (برای مکان‌های تاییدشده در نشان). این مقدار ورودی سرویس دریافت اطلاعات مکان‌های شاخص است.
نکته

با استفاده از مقدار poiHash هر نتیجه می‌توانید جزئیات کامل آن مکان (شماره تماس، وبسایت، ساعات کاری، دسته‌بندی و …) را از سرویس دریافت اطلاعات مکان‌های شاخص بگیرید.

آبجکت location

پارامترتوضیحات
xطول جغرافیایی (Longitude).
yعرض جغرافیایی (Latitude).

کد خطاهای سرویس

HTTP CodeStatusDescription
400INVALID_ARGUMENTخطا در پارامتر های ورودی
470CoordinateParseErrorچنانچه مختصات جغرافیایی ارسالی معتبر نباشد رخ خواهد داد.
480KeyNotFoundدر صورتی که در فراخوانی وب‌سرویس از یک Api Key نامعتبر استفاده کنید یا Api Key خود را در header ارسال نکنید رخ خواهد داد.
481LimitExceededدر صورتی که تعداد فراخوانی وب‌سرویس‌ها از میزان مجازی که برای شما تعیین شده‌است عبور کند رخ خواهد داد.
482RateExceededچنانچه تعداد درخواست وب‌سرویس در دقیقه از حد مجاز عبور کند رخ خواهد داد.
483ApiKeyTypeErrorکلید دسترسی استفاده شده با سرویس فراخوانی شده همخوانی ندارد. بایستی از کلید دسترسی مرتبط با سرویس مورد نظر استفاده کنید.
484ApiWhiteListErrorبا توجه به اسکوپ تعریف‌شده برای این کلید، شما مجاز به استفاده نیستید.
485ApiServiceListErrorسرویس فراخوانی شده با سرویس‌های تعریف‌شده برای این کلید دسترسی همخوانی ندارد.
500GenericErrorوقوع خطای ناشناخته