سرویس جستجوی مستقیم

جستجوی آدرس متنی به معنای جستجوی مکانی است که آدرس متنی به آن تعلق دارد. این سرویس، آدرس متنی بر روی نقشه را با در نظر گرفتن پیچیدگی‌های خاص زبان فارسی و انواع ساختارهای آدرس‌دهی به مختصات جغرافیایی تبدیل می‌کند. هر آدرس متنی دارای یک یا چند جز است که هر جز متعلق به یک مکان است. به عنوان مثال خیابان ولیعصر، نرسیده به بهشتی، بیمارستان هاجر یک آدرس متنی سه جزیی است.

سرویس جستجوی مستقیم، متناسب شده برای درخواست‌های تعاملی جستجوی آدرس است و برای کاربرانی مناسب است که بر روی نقشه در حال جستجوی آدرس مورد نظرشان هستند. این سرویس دارای سه امکان جستجوی ساده، جستجوی آدرس کوتاه و جستجوی آدرس کامل است.

  • جستجوی ساده: آدرس‌های یک بخشی، دو بخشی و یا حداکثر تا بخش دوم آدرس چند بخشی را جستجو می‌کند. مانند : پردیس سینمایی آزادی، سازمان مدیریت و برنامه‌ریزی استان تهران، خیابان ولیعصر نبش مطهری. در آدرس‌های بیش از دو بخش مانند فاز ۱ شهرک غرب، خ. مهستان، بعد از بن هوافضا، خ. گلستان شمالی، ک. سیصد و چهار غربی، پلاک ۱۲، تنها فاز۱ شهرک غرب، خ. مهستان را جستجو می‌کند.

  • جستجوی آدرس کوتاه: آدرس‌های سه بخشی و یا حداکثر تا بخش سوم آدرس‌های چند بخشی را جستجو می‌کند. مانند: خیابان ولیعصر بعد از خیابان زرتشت شرقی نبش خیابان جاوید و یا خ ولیعصر نرسیده به خ خدامی خ شریفی. در آدرس‌های بیش از سه بخش مانند فاز ۱ شهرک غرب، خ. مهستان، بعد از بن هوافضا، خ. گلستان شمالی، ک. سیصد و چهار غربی، پلاک ۱۲، تنها فاز۱ شهرک غرب، خ. مهستان، بعد از بن هوافضا را جستجو می‌کند.

  • جستجوی آدرس کامل: آدرس‌یابی پلاک‌دار و جستجوی آدرس‌های متنی دارای چهار جز و یا بیشتر را انجام می‌دهد. مانند: فاز ۱ شهرک غرب، خ. مهستان، بعد از بن هوافضا، خ. گلستان شمالی، ک. سیصد و چهار غربی، پلاک ۱۲. برای جستجوی آدرس کامل در این سرویس، آدرس‌ها باید به صورت تعاملی بر روی نقشه ارسال شوند.

اگر آدرس کامل به سرویس ارسال شود و کاربر جستجوی ساده و یا کوتاه را درخواست کند، جستجو به‌ترتیب تا بخش دوم و سوم آدرس انجام می‌شود.

برای جستجوی آدرس و مکان‌ها نیاز است تا کاربر یکی از تقسیمات کشوری شامل استان، شهرستان، بخش و یا شهری که جستجو باید در آن صورت گیرد را مشخص کند. به یکی از چهار روش‌ زیر می‌توان شهر و یا استان مورد نظر را تعیین کرد:

  • ارسال کد مرکز آمار تقسیمات کشوری

  • ارسال کد یکتای تقسیمات کشوری در سامانه پارسی‌مپ

  • ارسال عنوان متنی تقسیمات کشوری به صورت تکی و یا ترکیبی (به عنوان مثال: شهر نایین و یا استان اصفهان شهر نایین )

  • ارسال مختصات جغرافیایی

قابلیت‌های سرویس

جستجوی آدرس متنی و تبدیل آن به مختصات.
آدرس‌یابی پلاک دار.
جستجوی آدرس تنها در استان، شهرستان، بخش و یا شهر موردنظر بدون درنظر گرفتن تقسیمات کشوری وارد شده در متن جستجو.
تبدیل آدرس متنی به مختصات به همراه ارائه گروهی که موقعیت فوق به آن تعلق دارد. به‌عنوان مثال: خیابان، Poi، پارسل و ...
تبدیل آدرس متنی به مختصات به همراه ارائه تقسیمات کشوری در موقعیت درخواستی.

ساختار کلی سرویس

get
/geocode/forward?parameters

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

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

پارامتر توضیحات
search_text متن آدرس و یا محل مورد جستجو را مشخص می‌کند.
district استان، شهرستان، بخش و یا شهری که جستجو باید در آن صورت گیرد را مشخص می‌کند. برای تعیین آن می‌توان یکی از چهار روش زیر را استفاده کرد:
  • ارسال کد مرکز آمار تقسیمات کشوری. به‌عنوان مثال ST۲۳۰۱۰۲۱۵۷۶ کد مرکز آمار شهر تهران است. 
  • ارسال کد یکتای تقسیمات کشوری در سامانه پارسی‌مپ. به‌عنوان مثال، کد جستجو در استان و شهر تهران در سامانه پارسی‌مپ به ترتیب ۱۰۰۱ و ۱۰۵۱۱۱۳۳ است.
  • ارسال عنوان متنی تقسیمات کشوری به صورت تکی و یا ترکیبی. برای جستجوی هرچه دقیق‌تر آدرس و مکان‌ها پیشنهاد می‌شود پیشوند استان، شهرستان، بخش و یا شهر در کنار عنوان آن‌ها ارسال شود. به عنوان مثال استان اصفهان شهر نایین. 
  • ارسال مختصات جغرافیایی محدوده‌ای که جستجو باید در آن صورت گیرد.
برای اطلاع از کد هر یک از تقسیمات کشوری شامل، استان، شهرستان، بخش و شهر در سامانه پارسی مپ، با ارسال یک درخواست به سرویس آدرس‌یابی معکوس این کدها در اختیارتان قرار خواهد گرفت. در پاسخ سرویس آدرس‌یابی معکوس می‌توان کد تقسیمات کشوری را دریافت نمود و از آن در ارسال درخواست آدرس‌یابی مستقیم بهره برد.

پارامترهای اختیاری

پارامترهای اختیاری آپشن‌ها و امکانات مختلف سرویس را ارائه می‌دهند. ارسال آن‌ها جهت استفاده از سرویس اجباری نیست.

پارامتر توضیحات مقدار پیش‌فرض
search_precision نوع جستجو را مشخص می‌کند. که شامل جستجوی ساده، جستجوی آدرس کوتاه و جستجوی آدرس کامل است:
در صورت درخواست جستجوی ساده برای آدرس‌های یک بخشی، دو بخشی و یا جستجو تا بخش دوم آدرس چند بخشی، مقدار این پارامتر باید simple باشد.
در صورت درخواست جستجوی آدرس کوتاه برای آدرس‌های سه بخشی و یا جستجوی تا بخش سوم آدرس چند بخشی مقدار این پارامتر باید short_address وارد شود.
در صورت درخواست جستجوی آدرس کامل مقدار این پارامتر باید full_address وارد شود.
برای جستجو تا بخش دوم و یا سوم آدرس‌های چند بخشی این پارامتر باید ارسال شود.
در صورت مشخص نکردن مقدار این پارامتر، به طور خودکار طبق تعداد اجزای آدرس، جستجو را انجام می‌دهد.
only_in_district جستجو را تنها در district (استان، شهرستان، بخش و یا شهر) مشخص شده در ورودی انجام می‌دهد. اگر مقدار این پارامتر true باشد، سرویس شهر و استانی که در متن  آدرس وارد شده است را درنظر نمی‌گیرد و تنها در district درخواستی جستجو می‌کند. اگر مقدار این پارامتر false باشد، جستجو در district درخواستی و تقسیمات کشوری نوشته شده در متن آدرس انجام می‌شود.
به‌عنوان مثال اگر در district کد ۱۰۰۱ و در متن آدرس شیراز وارد شود، در صورتیکه این پارامتر true باشد، در استان تهران بلوار صیاد شیرازی، خیابان شیراز شمالی، میدان شیراز، خ شیراز در افسریه و خ بهار شیراز را پیدا می‌کند و اگر مقدار این پارامتر false باشد، جستجو هم در شهر شیراز و هم در استان تهران انجام می‌گیرد.
مقدار پیش‌فرض false است.
plate جستجوی آدرس پلاک‌دار را انجام می‌دهد. اگر مقدار این پارامتر true باشد، آدرس‌یابی پلاک‌دار انجام می‌گیرد. اگر بخواهید جستجو بدون درنظر گرفتن پلاک صورت گیرد، مقدار این پارامتر باید false باشد. مقدار پیش‌فرض false است.
subdivision تقسیمات سیاسی کشوری مربوط به نقطه درخواستی را مشخص می‌کند. اگر مقدار این پارامتر true باشد، استان، شهرستان، بخش و یا شهری که جستجو در آن صورت گرفته است تعیین می‌شوند. در غیر این صورت اگر مقداری در این پارامتر وارد نشده باشد و یا مقدار آن false باشد، تقسیمات کشوری برای نقطه مورد نظر نمایش داده نمی‌شوند. مقدار پیش‌فرض false است.
request_id در صورت ست شدن پارامتر فوق، به صورت یکتا در روز می‌توان برای پیگیری استفاده نمود. به صورت پیش‌فرض، عدم پیگیری در روز است.

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

درخواست جستجوی ساده

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

https://api.parsimap.ir/geocode/forward?key=PMI_API_TOKEN&search_text=ملاصدرا، بیمارستان بقیه الله اعظم&district=10511133&only_in_district=true&subdivision=false&plate=false&request_id=false&search_precision=simple

نمونه پاسخ

{
  "results": [
    {
      "geo_location": {
        "south_west": {
          "lat": 35.753257,
          "lng": 51.392479
        },
        "north_east": {
          "lat": 35.756538,
          "lng": 51.396522
        },
        "center": {
          "lat": 35.754898,
          "lng": 51.394501
        },
        "title": "بیمارستان بقیه الله الاعظم",
        "category": "Poi"
      },
      "description": "تهران، ملاصدرا، بیمارستان بقیه الله الاعظم"
    }
  ],
  "search_type": "simple",
  "status": "OK"
}

پارامترهای خروجی

پارامتر توضیحات
results مشخصات موقعیت جغرافیایی یافت را نشان می‌دهد. شامل بخش‌های زیر است:


- geo_location: مشخصات جغرافیایی عارضه و یا مقصد یافت شده است که شامل مختصات جغرافیایی مرکز نتیجه جستجو و شمال شرق و جنوب غرب آن (مرز مکان یافت شده) است.
- title: عنوان عارضه و یا مقصد یافت شده است.
- category: گروه عارضه و یا مقصد یافت شده است. عوارض و مقصدها در پنج گروه زیر دسته‌بندی می‌شوند: district، Neighborhood، Street، Poi و Parcel

description آدرس متنی عارضه و یا مقصد یافت شده است.
search_type نوع جستجوی صورت گرفته را نشان می‌دهد. 
status نتیجه درخواست را نشان می‌دهد. برای مثال نتیجه این درخواست OK است که به معنی موفق بودن درخواست است. نتیجه پاسخ به درخواست ارسالی توسط کاربر در قالب جدول زیر ارائه شده است: جدول

درخواست جستجوی آدرس کوتاه

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

https://api.parsimap.ir/geocode/forward?key=PMI_API_TOKEN&search_text=خ. ولیعصر، بعد از بل میرداماد، خ. قبادیان غربی&district=10511133&only_in_district=true&subdivision=false&plate=false&request_id=false&search_precision=short_address

نمونه پاسخ

{
  "results": [
    {
      "geo_location": {
        "south_west": {
          "lat": 35.76228,
          "lng": 51.408073
        },
        "north_east": {
          "lat": 35.765925,
          "lng": 51.412565
        },
        "center": {
          "lat": 35.764102,
          "lng": 51.410319
        },
        "title": "خ. قبادیان غربی",
        "category": "Street"
      },
      "description": "تهران، خ. ولیعصر، بعد از بل میرداماد، خ. قبادیان غربی"
    }
  ],
  "search_type": "short_address",
  "status": "OK"
}

درخواست جستجوی آدرس کامل

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

https://api.parsimap.ir/geocode/forward?key=PMI_API_TOKEN&search_text=شهرآرا، خ ستارخان، بین خ کوثر و خ نیایش، خ افسر، پلاک 5 &district=10511133&only_in_district=true&subdivision=false&plate=true&request_id=false&search_precision=full_address

نمونه پاسخ

{
  "results": [
    {
      "geo_location": {
        "south_west": {
          "lat": 35.714179,
          "lng": 51.366528
        },
        "north_east": {
          "lat": 35.717461,
          "lng": 51.37057
        },
        "center": {
          "lat": 35.71582,
          "lng": 51.368549
        },
        "title": "پلاک 5",
        "category": "Parcel"
      }
    }
  ],
  "search_type": "full-address",
  "status": "OK"
}

درخواست جستجوی آدرس تنها در استان، شهرستان، بخش و یا شهر تعیین شده در ورودی

با وارد کردن آدرس متنی درخواستی و تعیین یکی از تقسیمات کشوری شامل استان، شهرستان، بخش و یا شهری که جستجو باید در آن صورت گیرد، در صورتیکه only_in_district true باشد، جستجوی آدرس تنها در district تعیین شده انجام می‌گیرد. در مثال زیر از سرویس درخواست شده تا تنها در شهر تهران آدرس "گرگان م امام" را جستجو کند. درنتیجه در خروجی میدان، خیابان و محله‌ای در تهران که گرگان نام دارند برگردانده شده است و جستجوی آدرس فوق در شهر گرگان انجام نمی‌شود.

https://api.parsimap.ir/geocode/forward?key=PMI_API_TOKEN&search_text=گرگان م امام&district=10511133&only_in_district=true&subdivision=false&plate=false&request_id=false

نمونه پاسخ

{
  "results": [
    {
      "geo_location": {
        "south_west": {
          "lat": 35.702409,
          "lng": 51.443034
        },
        "north_east": {
          "lat": 35.71763,
          "lng": 51.458273
        },
        "center": {
          "lat": 35.71002,
          "lng": 51.451432
        },
        "title": "محله گرگان",
        "category": "Neighborhood"
      },
      "description": "تهران، محله گرگان"
    },
    {
      "geo_location": {
        "south_west": {
          "lat": 35.698945,
          "lng": 51.437426
        },
        "north_east": {
          "lat": 35.717603,
          "lng": 51.456496
        },
        "center": {
          "lat": 35.708339,
          "lng": 51.446989
        },
        "title": "خ. گرگان",
        "category": "Street"
      },
      "description": "تهران، خ. گرگان"
    },
    {
      "geo_location": {
        "south_west": {
          "lat": 35.71476,
          "lng": 51.453159
        },
        "north_east": {
          "lat": 35.718406,
          "lng": 51.457643
        },
        "center": {
          "lat": 35.716449,
          "lng": 51.455581
        },
        "title": "م. گرگان",
        "category": "Street"
      },
      "description": "تهران، نظام آباد، م. گرگان"
    }
  ],
  "search_type": "simple",
  "status": "OK"
}

درخواست تبدیل آدرس متنی به مختصات به‌ همراه ارائه تقسیمات کشوری

با ارسال آدرس متنی و تقسیمات کشوری مورد نظر و مشخص کردن یکی از تقسمات کشوری شامل استان، شهرستان، بخش و یا شهری که جستجو باید در آن صورت گیرد، مختصات جغرافیایی و تقسیمات کشوری آدرس فوق در پاسخ برگردانده می‌شوند.

https://api.parsimap.ir/geocode/forward?key=PMI_API_TOKEN&search_text=پاساژ آسمان ونک&district=10511133&only_in_district=true&subdivision=true&plate=false&request_id=false

نمونه پاسخ

{
  "results": [
    {
      "geo_location": {
        "south_west": {
          "lat": 35.756365,
          "lng": 51.40624
        },
        "north_east": {
          "lat": 35.76001,
          "lng": 51.410732
        },
        "center": {
          "lat": 35.758187,
          "lng": 51.408486
        },
        "title": "مرکز خرید آسمان ونک",
        "category": "Poi"
      },
      "description": "تهران، مرکز خرید آسمان ونک",
      "subdivision": {
        "id": 10511133,
        "title": "شهر تهران",
        "code": "2301021576",
        "type": "shahr"
      }
    }
  ],
  "search_type": "simple",
  "status": "OK"
}

پارامترهای خروجی

پارامتر توضیحات
subdivision تقسیمات سیاسی کشوری در نقطه درخواستی است. این پارامتر شامل چهار بخش‌ استان (ostan)، شهرستان (sharestan)، بخش (bakhsh)، شهر (shahr) و یا روستا (rusta) است. هر بخش نیز شامل موارد زیر است:
  • id: کد تقسیمات کشوری در سامانه پارسی‌مپ برای استان، شهرستان، بخش و شهر است.
  • title: عنوان تقسیمات کشوری شامل استان، شهرستان، بخش و شهر است.
  • code: کد مرکز آمار تقسیمات کشوری برای سطح استان، شهرستان، بخش و شهر است.
  • type: تقسیمات کشوری شامل استان، شهرستان، بخش و شهر است.