الترميز الجغرافي الأمامي
حوّل النص إلى إحداثيات. يقبل العناوين الكاملة والعناوين الجزئية والرموز البريدية وأسماء الأماكن ونقاط الاهتمام، بأي لغة.
المعاملات
| المعامل | النوع | الوصف |
|---|---|---|
qمطلوب* | سلسلة نصية | نص حر للترميز الجغرافي. حتى 256 حرف. |
street, city, state, postcode, country | سلسلة نصية | *بديل منظَّم عن q. استخدمه عندما يكون العنوان لديك في حقول بالفعل. يلزم حقل واحد على الأقل إذا غاب q. country هنا رمز ISO 3166-1 alpha-2. |
place_id | سلسلة نصية | *قيمة place_id من الإكمال التلقائي. يعيد ذلك المكان وحده مع المكونات الكاملة والحدود. يتجاوز q. |
limitاختياري | عدد صحيح | الحد الأقصى للنتائج، من 1 إلى 10. القيمة الافتراضية 5. |
countriesاختياري | سلسلة نصية | رموز ISO 3166-1 alpha-2 مفصولة بفواصل. لا تُعاد إلا النتائج الواقعة في هذه الدول. مثال: gb,ie. |
boundsاختياري | سلسلة نصية | south,west,north,east بالدرجات العشرية. تأتي النتائج الواقعة داخل المربع أولًا. أضف strict=1 لاستبعاد النتائج الواقعة خارجه. |
proximityاختياري | سلسلة نصية | lat,lon. تأتي النتائج القريبة من هذه النقطة أولًا. |
langاختياري | سلسلة نصية | رمز ISO 639-1 للأسماء في الاستجابة. القيمة الافتراضية en. |
keyاختياري | سلسلة نصية | مفتاح API، إذا لم يُرسل في الترويسة X-API-Key. |
مثال
$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/forward?q=Dam+1,+Amsterdam&countries=nl&limit=1"const url = new URL("https://api.mygeocode.com/v1/forward");
url.searchParams.set("q", "Dam 1, Amsterdam");
url.searchParams.set("countries", "nl");
url.searchParams.set("limit", "1");
const data = await (await fetch(url, { headers: { "X-API-Key": "YOUR_KEY" } })).json();
console.log(data.results[0]);import requests
r = requests.get("https://api.mygeocode.com/v1/forward",
params={"q": "Dam 1, Amsterdam", "countries": "nl", "limit": 1}, headers={"X-API-Key": "YOUR_KEY"}, timeout=10)
print(r.json()["results"][0]){
"status": "ok",
"query": "Dam 1, Amsterdam",
"results": [
{
"formatted": "Dam 1, 1012 JS Amsterdam, Netherlands",
"lat": 52.373119,
"lon": 4.893604,
"type": "address",
"precision": "house",
"confidence": 0.98,
"place_id": "nl.addr.c21d40e8",
"components": {
"house_number": "1",
"road": "Dam",
"neighbourhood": "Centrum",
"city": "Amsterdam",
"state": "North Holland",
"state_code": "NH",
"postcode": "1012 JS",
"country": "Netherlands",
"country_code": "nl"
},
"bounds": { "north": 52.373519, "south": 52.372719, "east": 4.894204, "west": 4.893004 }
}
]
}حقول الاستجابة
| الحقل | النوع | الوصف |
|---|---|---|
query | سلسلة نصية | النص الذي فسّرناه، بعد حذف المسافات الزائدة. |
results | مصفوفة | التطابقات، الأفضل أولًا. فارغة إذا لم يتطابق شيء. |
results[].formatted | سلسلة نصية | العنوان الكامل بالتنسيق المعتاد في الدولة. |
results[].lat, lon | رقم | درجات عشرية وفق WGS 84. |
results[].type | سلسلة نصية | address, street, postcode, city, region, country, poi. |
results[].precision | سلسلة نصية | house أو street أو postcode أو admin. ما تمثّله النقطة. راجع التغطية. |
results[].confidence | رقم | من 0 إلى 1. مدى تطابق النتيجة مع الاستعلام. ما دون 0.5 يعني أننا خمّنّا. |
results[].place_id | سلسلة نصية | معرّف ثابت لهذا المكان. |
results[].components | كائن | أجزاء العنوان. راجع أدناه. |
results[].bounds | كائن | north وsouth وeast وwest للعنصر المطابق. |
مفاتيح المكونات
لا توجد إلا المفاتيح التي تنطبق. وتُستخدم المفاتيح نفسها في كل الدول.
| المفتاح | المعنى |
|---|---|
name | اسم نقطة الاهتمام أو المبنى، عندما يكون التطابق كذلك. |
house_number | بما في ذلك الأحرف والنطاقات: 221B و12-14. |
road | اسم الشارع مع نوعه: Baker Street وAvenue Anatole France. |
neighbourhood, suburb | المناطق داخل المدينة، حيث تستخدمها الدولة. |
city | مدينة أو بلدة أو قرية. |
county | مقاطعة أو قضاء. |
state, state_code | الولاية أو المحافظة أو الإقليم، ولاحقة ISO 3166-2 الخاصة به حيثما وُجدت. |
postcode | الرمز البريدي، منسّقًا كما تنسّقه هيئة البريد. |
country, country_code | اسم الدولة ورمز ISO 3166-1 alpha-2 بأحرف صغيرة. |
ملاحظات
- تُرتَّب النتائج وفق مزيج من الثقة والدقة والقرب. النتيجة الأولى هي التي تُستخدم ما لم تكن تعرض قائمة اختيار.
- عندما يتعذر العثور على رقم منزل في شارع معروف، تحمل النتيجة
type: streetوprecision: streetمع استيفاء الرقم حيث تسمح البيانات. تحقق منprecisionإن كان ذلك يهمك. - الرموز البريدية وحدها مقبولة في
q. لأحمال العمل المقتصرة على الرموز البريدية تكون نقطة نهاية الرمز البريدي أسرع وتعيد اسم المكان المعتمد لدى هيئة البريد. - يعمل الاستعلام المكتوب بنظام كتابة لمكان يستخدم نظامًا آخر (بالسيريلية لعنوان ياباني مثلًا)، لكن
langهو ما يحدد نظام الكتابة في الاستجابة.
الاستعلام نفسه بصيغ المزوّدين الآخرين
إذا كان لديك كود مكتوب بالفعل لأحد هؤلاء المزوّدين فاحتفظ به: يقبل المضيف البديل المتوافق المسار والمعاملات نفسها ويجيب بشكل استجابة ذلك المزوّد، وخلفه نقطة النهاية هذه. راجع كيف تعمل المضيفات البديلة المتوافقة.
| المزوّد | المضيف | المسار |
|---|---|---|
| منصة Google Maps Platform | gapi.mygeocode.com | /maps/api/geocode/json?address=... |
| خدمات Bing Maps REST | bing.mygeocode.com | /REST/v1/Locations?q=.../REST/v1/Locations?countryRegion=...&locality=...&addressLine=... |
| الترميز الجغرافي والبحث من HERE | here.mygeocode.com | /v1/geocode?q=.../v1/geocode?qq=street=...;city=... |
| Mapbox Geocoding | mapbox.mygeocode.com | /geocoding/v5/mapbox.places/{query}.json/search/geocode/v6/forward?q=... |
| Geocode.Farm | farm.mygeocode.com | /forward/?addr=.../v3/json/forward/?addr=... |
| OpenStreetMap Nominatim | osm.mygeocode.com | /search?q=...&format=json/search?street=...&city=...&country=...&format=json |
| OpenCage | opencage.mygeocode.com | /geocode/v1/json?q=.../geocode/v1/geojson?q=... |
| LocationIQ | locationiq.mygeocode.com | /v1/search?q=...&format=json |
| Geoapify | geoapify.mygeocode.com | /v1/geocode/search?text=... |
| TomTom Search | tomtom.mygeocode.com | /search/2/geocode/{query}.json/search/2/structuredGeocode.json?countryCode=...&streetName=... |
| MapQuest Geocoding | mapquest.mygeocode.com | /geocoding/v1/address?location=.../geocoding/v1/batch?location=...&location=... |
| Geocodio | geocodio.mygeocode.com | /v1.7/geocode?q=.../v1.7/geocode (POST, JSON array) |
| PositionStack | positionstack.mygeocode.com | /v1/forward?query=... |
الاستعلامات المجمّعة
أرسل جسم JSON إلى المسار نفسه بطريقة POST يحتوي على queries، وهي مصفوفة تضم حتى 100 عنوان، وستحمل الإجابة مصفوفة results فيها إدخال واحد لكل استعلام بترتيب الإرسال. يُحتسب كل إدخال طلبًا واحدًا، والدفعة الأكبر مما تبقى من الحصة تُرفض كاملة.
$ curl -X POST "https://api.mygeocode.com/v1/forward" -H "Content-Type: application/json" -d '{"queries": ["Brandenburg Gate, Berlin", "Bahnhofstrasse 1, Zurich"]}'الأخطاء
400 invalid_request عندما لا يوجد q ولا حقل منظَّم ولا place_id، أو عندما تكون limit خارج النطاق من 1 إلى 10، أو عندما تكون bounds أو proximity مشوّهة الصيغة. راجع الأخطاء لمعرفة البقية.