تعتبر Geocode من أهم الخدمات التي تقدمها لنا منصة خرائط غوغل (Google Maps Api) كونها تمكننا من الحصول معلومات جغرافية هامة كإحداثيات موقع ما (Latitude & Longitude) انطلاقا من العنوان أو اسم المنطقة، والعكس صحيح، أي أن Geocoding Api تمكننا كذلك من الحصول على عنوان نقطة ما على الخريطة انطلاقا من إحداثياتها.

الحصول على الإحداثيات انطلاقا من العنوان

يتم الحصول على هذه المعلومات من geocode بطريقة غير متزامنة (Asynchronous) وبالتالي فدالة geocode تقبل عاملين (بارامترين) الأول عبارة عن كائن (litteral object) يحتوي على المعلومات التي نود إرسالها لمنصة geocode api، أما البارامتر الثاني فهو عبارة عن دالة callback وفي داخلها نقوم باستقبال المعلومات التي أتتنا من geocode.

هذه الإجابة تأتينا على شكل مصفوفة (Array) تضم العديد من المعلومات كالعنوان الكامل، الإحداثيات، إسم المكان، …إلخ
ونحن ما يهمنا الآن هي الإحدثيات (Latitude & Longitude) ويتم استخراجها من المصفوفة كالتالي :

أولا قمنا بإنشاء خريطة جديدة كما تعلمنا في الدرس الأول وذلك وسط الدالة initialize حيث أنشأنا كذلك كائن اسمه geocoder من الكلاس google.maps.Geocoder. بعد ذلك أنشأنا دالة أسميناها codeAddress تنفذ عند الضغط على الزر (inupt button) بعد أن نقوم بأخذ النص الموجود داخل حقل العنوان (input address) ونقوم بتمريره لدالة geocoder.geocode.

اقرأ أيضا :  تعرف على منصة Google Maps Api - الجزء الأول

بعد ذلك، في داخل دالة الرد (callback) نقوم بعمل شرط من أجل التأكد من نجاح عملية اتصال geocoder بخوادم غوغل، ثم نأخذ الإحداثيات من المصفوفة التي تأتينا في الجواب ونستعملها حسب الحاجة.
*في هذا المثال، أضفنا علامة(Marker) إلى الخريطة مستغلين الإحداثيات التي حصلنا عليها، والنتيجة في هذا الرابط.

الحصول على العنوان انطلاقا من الإحداثيات

خدمة Geocoding تمكننا كذلك من عكس العملية، أي الحصول على عنوان نصي لمكان معين (human-readable address) انطلاقا من إحداثياته.

نلاحظ في المثال الثاني، أننا مررنا هذه المرة بارامتر الإحداثيات (Latitude & Longitude) عوض العنوان في المثال الأول، وداخل دالة الرد callback نقوم مرة أخرى بالتأكد من نجاح عملية الإتصال، تماما كما رأينا في المثال الأول، وبعد ذلك نقوم باسترجاع العنوان الذي يأتينا على عدة هيئات وأشكال نختار منها الشكل الذي يناسبنا.

اقرأ أيضا :  function overloading في لغة الجافاسكريبت

المثال السابق يعطينا لائحة عناوين كما يلي :

ونحن اخترنا منها العنوان الثاني :

ويمكنكم تجربة سكريبت المثال الثاني على هذا الرابط.

وهكذا نكون قد كوننا فكرة عن أهمية خدمة Geocoding وما المثالين السابقين إلا جزء يسير مما يمكن فعله بواسطتها ولاكتشاف المزيد من مزاياها أقترح عليكم زيارة هذا الرابط.
إلى درس آخر إن شاء الله في سلسلة Google Maps Api.

لا تنسوا الإشتراك في قائمتنا البريدية أسفله للتوصل بآخر الدروس والمقالات.

 

 

ترك الرد

Please enter your comment!
Please enter your name here