الترميز الجغرافي الأمامي

حوّل النص إلى إحداثيات. يقبل العناوين الكاملة والعناوين الجزئية والرموز البريدية وأسماء الأماكن ونقاط الاهتمام، بأي لغة.

GEThttps://api.mygeocode.com/v1/forward

المعاملات

المعاملالنوعالوصف
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 بأحرف صغيرة.

ملاحظات

الاستعلام نفسه بصيغ المزوّدين الآخرين

إذا كان لديك كود مكتوب بالفعل لأحد هؤلاء المزوّدين فاحتفظ به: يقبل المضيف البديل المتوافق المسار والمعاملات نفسها ويجيب بشكل استجابة ذلك المزوّد، وخلفه نقطة النهاية هذه. راجع كيف تعمل المضيفات البديلة المتوافقة.

المزوّدالمضيفالمسار
منصة Google Maps Platformgapi.mygeocode.com/maps/api/geocode/json?address=...
خدمات Bing Maps RESTbing.mygeocode.com/REST/v1/Locations?q=...
/REST/v1/Locations?countryRegion=...&locality=...&addressLine=...
الترميز الجغرافي والبحث من HEREhere.mygeocode.com/v1/geocode?q=...
/v1/geocode?qq=street=...;city=...
Mapbox Geocodingmapbox.mygeocode.com/geocoding/v5/mapbox.places/{query}.json
/search/geocode/v6/forward?q=...
Geocode.Farmfarm.mygeocode.com/forward/?addr=...
/v3/json/forward/?addr=...
OpenStreetMap Nominatimosm.mygeocode.com/search?q=...&format=json
/search?street=...&city=...&country=...&format=json
OpenCageopencage.mygeocode.com/geocode/v1/json?q=...
/geocode/v1/geojson?q=...
LocationIQlocationiq.mygeocode.com/v1/search?q=...&format=json
Geoapifygeoapify.mygeocode.com/v1/geocode/search?text=...
TomTom Searchtomtom.mygeocode.com/search/2/geocode/{query}.json
/search/2/structuredGeocode.json?countryCode=...&streetName=...
MapQuest Geocodingmapquest.mygeocode.com/geocoding/v1/address?location=...
/geocoding/v1/batch?location=...&location=...
Geocodiogeocodio.mygeocode.com/v1.7/geocode?q=...
/v1.7/geocode (POST, JSON array)
PositionStackpositionstack.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 مشوّهة الصيغة. راجع الأخطاء لمعرفة البقية.