Background
بازگشت به بلاگ

اطلاعات جامع مکان

۱۴۰۵/۷/۷
تیم ژئوتاژک
اطلاعات جامع مکان

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

کاربردها

  • ارزیابی موقعیت ملک برای خرید، اجاره یا سرمایه‌گذاری
  • بررسی دسترسی شعبه یا انبار جدید
  • غنی‌سازی پرونده مشتریان با اطلاعات محیطی

دریافت توکن

  1. وارد داشبورد ژئوتاژک کلود شوید و با خرید بسته ژئوکوین کیف پول خود را شارژ کنید (با تایید شماره موبایل، ۲۰۰ هزار ژئوکوین هدیه می‌گیرید).
  2. در بخش توکن‌های API یک توکن بسازید، دسترسی «اطلاعات جامع مکان» را به آن بدهید و بخشی از موجودی کیف پول را به آن اختصاص دهید.
  3. کلید توکن را کپی کنید و در هدر Authorization بفرستید.

هزینه هر درخواست در صفحه سرویس‌ها درج شده و از اعتبار همان توکن کم می‌شود؛ خرید جداگانه برای هر سرویس لازم نیست.

آدرس سرویس

POST https://cloud.geotajak.ir/api/geo/location-info

توکن را در هدر Authorization بفرستید:

Authorization: Bearer YOUR_TOKEN

(هدر X-API-Key: YOUR_TOKEN یا پارامتر ?api_key=YOUR_TOKEN هم پذیرفته می‌شود.)

بدنه درخواست (JSON)

فیلدنوعتوضیح
lat + lonعددیک نقطه (عرض و طول جغرافیایی)
polygon[[lat, lon], ...]یک محدوده بسته؛ حداقل ۳ نقطه، حلقه خودکار بسته می‌شود
line[[lat, lon], ...]یک خط؛ حداقل ۲ نقطه
radius_mعدد صحیحشعاع جستجو به متر برای نقطه و خط (پیش‌فرض 1000)
profileمتننوع جابه‌جایی برای فاصله‌ها: auto (خودرو)، pedestrian (پیاده)، bicycle (دوچرخه)

فقط یکی از سه حالت نقطه، polygon یا line را بفرستید. توجه کنید ترتیب مختصات در این سرویس‌ها [lat, lon] است (نه [lon, lat] مانند GeoJSON).

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

cURL

curl -X POST "https://cloud.geotajak.ir/api/geo/location-info" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"lat": 35.6892, "lon": 51.389, "radius_m": 1000, "profile": "auto"}'

Python

import requests

TOKEN = "YOUR_TOKEN"
resp = requests.post(
    "https://cloud.geotajak.ir/api/geo/location-info",
    json={"lat": 35.6892, "lon": 51.389, "radius_m": 1000, "profile": "auto"},
    headers={"Authorization": f"Bearer {TOKEN}"},
    timeout=60,
)
resp.raise_for_status()
print(resp.json())
print("اعتبار باقی‌مانده توکن:", resp.headers.get("X-Credit-Remaining"))

JavaScript

const TOKEN = "YOUR_TOKEN";
const res = await fetch("https://cloud.geotajak.ir/api/geo/location-info", {
  method: "POST",
  headers: { Authorization: `Bearer ${TOKEN}`, "Content-Type": "application/json" },
  body: JSON.stringify({"lat": 35.6892, "lon": 51.389, "radius_m": 1000, "profile": "auto"}),
});
const data = await res.json();
console.log(data, res.headers.get("X-Credit-Remaining"));

نمونه پاسخ

{
  "geocode": {
    "lat": 35.6891, "lon": 51.3887,
    "display_name": "خیابان امام خمینی، منطقه ۱۱، تهران، ایران",
    "address": {"road": "خیابان امام خمینی", "city": "تهران", "state": "استان تهران", "country": "ایران"},
    "osm_type": "way"
  },
  "nearby_pois": [
    {"name": "بیمارستان سینا", "type": "hospital", "lat": 35.6863, "lon": 51.4120},
    {"name": "بانک سپه", "type": "bank", "lat": 35.6890, "lon": 51.3910}
  ],
  "distances_to_references": [
    {"label": "Tehran", "distance_km": 10.5, "duration_min": 9.7, "profile": "auto"},
    {"label": "Tehran Province", "distance_km": 59.9, "duration_min": 60.1, "profile": "auto"}
  ]
}
فیلدتوضیح
geocodeآدرس نقطه
nearby_poisحداکثر ۳۰ نقطه مهم در شعاع radius_m
distances_to_referencesفاصله و زمان تا مراکز تقسیمات کشوری

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

هزینه و هدرهای پاسخ

هزینه هر درخواست موفق از اعتبار توکن کم می‌شود. در هر پاسخ این هدرها برگردانده می‌شوند:

هدرتوضیح
X-Request-Costهزینه همین درخواست (ژئوکوین)
X-Credit-Remainingاعتبار باقی‌مانده توکن (ژئوکوین)

نمایش آماده در سایت (بدون کدنویسی)

اگر به آدرس همین سرویس ui=true اضافه کنید، به‌جای JSON یک صفحه آماده (نقشه، نمودار و جدول نتیجه) برمی‌گردد که در <iframe> سایت شما قرار می‌گیرد و با رنگ‌های توکن شما ساخته می‌شود. هزینه آن با درخواست معمولی یکی است. جزئیات در راهنمای شروع و نمونه زنده در «آزمایشگاه سرویس» صفحه هر سرویس.

خطاها

کدخطاتوضیحهزینه کسر می‌شود؟
401missing_token / invalid_tokenتوکن ارسال نشده یا نامعتبر استخیر
401token_disabledتوکن غیرفعال شده استخیر
402insufficient_creditاعتبار توکن تمام شده است؛ از کیف پول به آن اعتبار اضافه کنیدخیر
403service_not_allowedاین توکن به این سرویس دسترسی نداردخیر
403token_expiredتاریخ انقضای توکن گذشته استخیر
403ip_not_allowed / domain_not_allowedدرخواست از آی‌پی یا دامنه‌ای غیر از موارد مجاز توکن آمده استخیر
405method_not_allowedمتد HTTP اشتباه استخیر
429rate_limitedسقف درخواست ساعتی توکن پر شده استخیر
502upstream_unavailableسرویس موقتا در دسترس نیستخیر
5xx—خطای داخلی سرویسخیر
404—مختصات خارج از محدوده داده استبله

پاسخ خطا به این شکل است:

{"error": "insufficient_credit", "message": "اعتبار این توکن تمام شده است؛ از کیف پول خود به آن اعتبار اضافه کنید"}

نکته‌ها

  • زمان پاسخ حدود نیم ثانیه است؛ در صفحات پرتردد نتیجه را کش کنید.

سوالی دارید؟ از بخش تیکت‌ها در داشبورد با ما در ارتباط باشید.

APIتحلیل مکانPOI