كل ما يلزم لإجراء أول استدعاء وقراءة جوابه: عنوان الأساس، وصيغتا التوثيق، وكيف يُنسب التشغيل إلى عضو، وحقول كل نقطة نهاية واستجابتها ومثال curl لها.
يذهب كل استدعاء إلى عنوان الأساس هذا مع إضافة مقطع الأداة نفسها — وهو الجزء الأخير من كل مسار معروض أدناه. وأمثلة curl تحمل العنوان كاملًا جاهزًا للّصق.
https://haiyz.net/api/enterprise/v1/gisتستخدم الاستجابات غلاف المنصة القياسي: الحقل ok يبيّن ما إذا نجح الاستدعاء، و code معرّف ثابت يقرؤه الحاسوب، و message نص موجّه للإنسان، و data يحمل نتيجة الأداة نفسها.
{
"ok": true,
"statusCode": 200,
"code": "SUCCESS",
"data": {
"key": "gis/2026/08/… .geojson",
"inputKey": "gis/2026/08/… .zip",
"filename": "parcels.geojson"
},
"path": "/enterprise/v1/gis/validate-convert",
"method": "POST",
"timestamp": "2026-08-17T09:41:22.104Z"
}الأدوات التي تنتج ملفًا تعيد مفتاح تخزين له لا عنوانًا عامًا. ويُخزَّن المخرج باسم العضو الذي نُسب إليه التشغيل ويظهر في سجل ملفاته داخل التطبيق، حيث يمكن تنزيله أو تمريره إلى بقية منتجات حيّز.
أرسل بيانات اعتمادك كترويسات في كل طلب:
X-Api-Key — مفتاحك العام (يبدأ بـ haiyz_pk_).X-Api-Secret — مفتاحك السري (يبدأ بـ haiyz_sk_).X-Api-User — اختياري؛ بريد العضو المعيّن لنسب الاستدعاء إليه. الافتراضي هو مالك المؤسسة.يمكن استبدال زوج الترويسات بترويسة Authorization واحدة تحمل المفتاح العام والمفتاح السري وبينهما نقطتان رأسيتان. والتوثيق متطابق في الحالتين، فاختر ما يسهل ضبطه في عميلك.
curl -X POST https://haiyz.net/api/enterprise/v1/gis/validate-convert \
-H "Authorization: Bearer haiyz_pk_live_xxxxxxxxxxxx:haiyz_sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-F "[email protected]" \
-F "target_format=geojson"احتفظ بالمفتاح السري في الخادم
أي عضو في مؤسستك يعود إليه التشغيل.
جميع النقاط POST ضمن /enterprise/v1/gis. أجسام الطلب والاستجابة مطابقة لأدوات GIS في التطبيق.
يعرض كل قسم أدناه عقد الاتصال: الحقول التي يحملها الطلب، وما الذي يعود، ومثال curl يمكنك لصقه بعد استبدال بيانات الاعتماد التجريبية.
/enterprise/v1/gis/validate-convertتحقّق من ملف Shapefile أو GeoJSON أو KML وحوّله
يقرأ الملف المتجهي المرفوع، ويتأكد من سلامة بنيته، ثم يكتبه بالصيغة التي طلبتها. وهذه أول ما يستدعيه خط الاستقبال، لتفترض كل المراحل اللاحقة صيغة واحدة.
filetarget_formatتعيد مفتاح تخزين الملف المحوّل، ومفتاح المدخل الذي أُنتج منه، واسم ملف المخرج.
curl -X POST https://haiyz.net/api/enterprise/v1/gis/validate-convert \
-H "X-Api-Key: haiyz_pk_live_xxxxxxxxxxxx" \
-H "X-Api-Secret: haiyz_sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-F "[email protected]" \
-F "target_format=geojson"/enterprise/v1/gis/transform-crs/jsonأعد إسقاط أزواج الإحداثيات (مدخل ومخرج JSON)
تأخذ أزواج الإحداثيات في جسم الطلب وتعيدها في نظام الإحداثيات الهدف. ولا تنتج ملفًا، ولذلك فهي أخف استدعاء على هذا السطح: تُحتسب بملف واحد على النافذة مهما بلغ عدد النقاط.
source_crstarget_crspointsتعيد الأزواج بعد إعادة إسقاطها بالترتيب نفسه الذي أُرسلت به، في transformedPoints.
curl -X POST https://haiyz.net/api/enterprise/v1/gis/transform-crs/json \
-H "X-Api-Key: haiyz_pk_live_xxxxxxxxxxxx" \
-H "X-Api-Secret: haiyz_sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "X-Api-User: [email protected]" \
-H "Content-Type: application/json" \
-d '{
"source_crs": "EPSG:4326",
"target_crs": "EPSG:3857",
"points": [{ "x": 46.72, "y": 24.68 }]
}'/enterprise/v1/gis/transform-crs/csvأعد إسقاط ملف CSV من الإحداثيات
إعادة الإسقاط نفسها لملف إحداثيات: ارفع ملف CSV، وحدّد نظامي الإحداثيات، فيُكتب ملف CSV محوّل.
filesource_crstarget_crsتعيد مفتاحي تخزين المخرج والمدخل، واسم ملف المخرج، وعدد النقاط التي حُوّلت.
curl -X POST https://haiyz.net/api/enterprise/v1/gis/transform-crs/csv \
-H "X-Api-Key: haiyz_pk_live_xxxxxxxxxxxx" \
-H "X-Api-Secret: haiyz_sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-F "[email protected]" \
-F "source_crs=EPSG:4326" \
-F "target_crs=EPSG:32638"/enterprise/v1/gis/bufferأنشئ نطاقًا حول الأشكال الهندسية بمسافة محدّدة
يوسّع كل شكل هندسي في الملف بمسافة بالأمتار — نطاقات حماية، وارتدادات، وحلقات تغذية. فعّل dissolve حين يجب أن تصبح الحلقات المتداخلة مساحة واحدة بدل عدة مساحات.
filedistance_mtarget_formatdissolveتعيد مفتاح تخزين ملف النطاقات، ومفتاح المدخل، واسم ملف المخرج.
curl -X POST https://haiyz.net/api/enterprise/v1/gis/buffer \
-H "X-Api-Key: haiyz_pk_live_xxxxxxxxxxxx" \
-H "X-Api-Secret: haiyz_sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-F "[email protected]" \
-F "distance_m=100" \
-F "target_format=geojson" \
-F "dissolve=false"/enterprise/v1/gis/mergeادمج عدة ملفات متجهية
تجمع عدة ملفات متجهية في ملف واحد. وهذا هو الاستدعاء المناسب للبيانات التي تصل مقسّمة حسب الحي أو اللوحة أو المقاول بينما تتوقع المراحل اللاحقة طبقة واحدة.
filestarget_formatتعيد مفتاح تخزين الملف المدموج واسم ملفه.
curl -X POST https://haiyz.net/api/enterprise/v1/gis/merge \
-H "X-Api-Key: haiyz_pk_live_xxxxxxxxxxxx" \
-H "X-Api-Secret: haiyz_sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-F "[email protected]" \
-F "[email protected]" \
-F "target_format=geojson"/enterprise/v1/gis/simplifyبسّط الأشكال الهندسية وفق حد تفاوت
تقلّل عدد الرؤوس وفق حد تفاوت — وهو الاستدعاء الذي يجعل طبقة حدود ثقيلة قابلة للاستخدام على الويب. أبقِ preserve_topology مفعّلًا ما لم تكن التقاطعات الذاتية مقبولة في المخرج.
filetolerancetarget_formatpreserve_topologyتعيد مفتاح تخزين الملف المبسّط، ومفتاح المدخل، واسم ملف المخرج.
curl -X POST https://haiyz.net/api/enterprise/v1/gis/simplify \
-H "X-Api-Key: haiyz_pk_live_xxxxxxxxxxxx" \
-H "X-Api-Secret: haiyz_sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-F "[email protected]" \
-F "tolerance=0.001" \
-F "target_format=geojson" \
-F "preserve_topology=true"/enterprise/v1/gis/extract-exifاستخرج بيانات GPS من الصور إلى GeoJSON
تقرأ بيانات EXIF من صور JPEG المرفوعة وتحوّل ما تجده من إحداثيات GPS إلى نقاط. والصور التي لا تحمل موقعًا يُبلَّغ عنها بدل إسقاطها، ليرى الفريق الميداني الصور التي تحتاج إلى معالجة.
filesتعيد صفًا لكل صورة — اسم الملف، وهل حملت GPS، وخط العرض وخط الطول والارتفاع والتوقيت — إضافة إلى عدد الصور الموسومة وإجمالي الصور ومفتاح ملف GeoJSON المنتَج.
curl -X POST https://haiyz.net/api/enterprise/v1/gis/extract-exif \
-H "X-Api-Key: haiyz_pk_live_xxxxxxxxxxxx" \
-H "X-Api-Secret: haiyz_sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-F "[email protected]" \
-F "[email protected]"الإخفاقات التي تعيدها هذه الواجهة، ونافذة الملفات المتجدّدة، وسقوف الأحجام، وسلوك إعادة المحاولة.