شاخص دسترسی به خدمات

برای یک نقطه یا محدوده، وضعیت دسترسی به ۸ دسته خدمات شهری را بسنجید: برای هر دسته فاصله تا نزدیکترین مورد، نام آن و تعداد موارد در محدوده برگردانده میشود.
کاربردها
- امتیازدهی به موقعیت ملک در سامانههای املاک
- شناسایی مناطق کمبرخوردار برای برنامهریزی شهری
- انتخاب محل مناسب برای خدمات جدید
دریافت توکن
- وارد داشبورد ژئوتاژک کلود شوید و با خرید بسته ژئوکوین کیف پول خود را شارژ کنید (با تایید شماره موبایل، ۲۰۰ هزار ژئوکوین هدیه میگیرید).
- در بخش توکنهای API یک توکن بسازید، دسترسی «شاخص دسترسی به خدمات» را به آن بدهید و بخشی از موجودی کیف پول را به آن اختصاص دهید.
- کلید توکن را کپی کنید و در هدر
Authorizationبفرستید.
هزینه هر درخواست در صفحه سرویسها درج شده و از اعتبار همان توکن کم میشود؛ خرید جداگانه برای هر سرویس لازم نیست.
آدرس سرویس
POST https://cloud.geotajak.ir/api/geo/service-access
توکن را در هدر 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/service-access" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"lat": 35.6892, "lon": 51.389, "radius_m": 1500}'
Python
import requests
TOKEN = "YOUR_TOKEN"
resp = requests.post(
"https://cloud.geotajak.ir/api/geo/service-access",
json={"lat": 35.6892, "lon": 51.389, "radius_m": 1500},
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/service-access", {
method: "POST",
headers: { Authorization: `Bearer ${TOKEN}`, "Content-Type": "application/json" },
body: JSON.stringify({"lat": 35.6892, "lon": 51.389, "radius_m": 1500}),
});
const data = await res.json();
console.log(data, res.headers.get("X-Credit-Remaining"));
نمونه پاسخ
{
"reference": [35.6892, 51.389],
"scope": "point",
"services": [
{"type": "educational", "fatype": "آموزشی", "nearest_distance_m": 210.4, "nearest_name": "دبستان سینا", "count": 7},
{"type": "health", "fatype": "بهداشتی و درمانی", "nearest_distance_m": 540.1, "nearest_name": "بیمارستان سینا", "count": 4},
{"type": "financial", "fatype": "مالی", "nearest_distance_m": 95.0, "nearest_name": "بانک ملی", "count": 12}
]
}
دسته (type) | عنوان | شامل |
|---|---|---|
educational | آموزشی | مدرسه، دانشگاه، کالج، مهدکودک |
health | بهداشتی و درمانی | بیمارستان، درمانگاه، داروخانه، پزشک، دندانپزشک |
financial | مالی | بانک، خودپرداز |
transport | حمل و نقل | ایستگاه اتوبوس، قطار، مترو، پمپبنزین، تاکسی |
shopping | خرید | سوپرمارکت، مرکز خرید، فروشگاه |
leisure | تفریحی | پارک، ورزشگاه، زمین بازی، مجموعه ورزشی |
safety | ایمنی | پلیس، آتشنشانی |
worship | مذهبی | مسجد و اماکن مذهبی |
اگر در محدوده موردی نباشد nearest_distance_m و nearest_name برابر null و count صفر است.
هزینه و هدرهای پاسخ
هزینه هر درخواست موفق از اعتبار توکن کم میشود. در هر پاسخ این هدرها برگردانده میشوند:
| هدر | توضیح |
|---|---|
X-Request-Cost | هزینه همین درخواست (ژئوکوین) |
X-Credit-Remaining | اعتبار باقیمانده توکن (ژئوکوین) |
نمایش آماده در سایت (بدون کدنویسی)
اگر به آدرس همین سرویس ui=true اضافه کنید، بهجای JSON یک صفحه آماده (نقشه، نمودار و جدول نتیجه) برمیگردد که در <iframe> سایت شما قرار میگیرد و با رنگهای توکن شما ساخته میشود. هزینه آن با درخواست معمولی یکی است. جزئیات در راهنمای شروع و نمونه زنده در «آزمایشگاه سرویس» صفحه هر سرویس.
خطاها
| کد | خطا | توضیح | هزینه کسر میشود؟ |
|---|---|---|---|
| 401 | missing_token / invalid_token | توکن ارسال نشده یا نامعتبر است | خیر |
| 401 | token_disabled | توکن غیرفعال شده است | خیر |
| 402 | insufficient_credit | اعتبار توکن تمام شده است؛ از کیف پول به آن اعتبار اضافه کنید | خیر |
| 403 | service_not_allowed | این توکن به این سرویس دسترسی ندارد | خیر |
| 403 | token_expired | تاریخ انقضای توکن گذشته است | خیر |
| 403 | ip_not_allowed / domain_not_allowed | درخواست از آیپی یا دامنهای غیر از موارد مجاز توکن آمده است | خیر |
| 405 | method_not_allowed | متد HTTP اشتباه است | خیر |
| 429 | rate_limited | سقف درخواست ساعتی توکن پر شده است | خیر |
| 502 | upstream_unavailable | سرویس موقتا در دسترس نیست | خیر |
| 5xx | — | خطای داخلی سرویس | خیر |
| 400 | — | هندسهای ارسال نشده است | بله |
پاسخ خطا به این شکل است:
{"error": "insufficient_credit", "message": "اعتبار این توکن تمام شده است؛ از کیف پول خود به آن اعتبار اضافه کنید"}
سوالی دارید؟ از بخش تیکتها در داشبورد با ما در ارتباط باشید.
