أكواد PHP – مكتبة Geocoder للإحداثيات الجغرافية

السلام عليكم

أقدم في هذه التدوينة مكتبة مميزة ومعرفة هي مكتبة Geocoder. المكتبة تقدم دوال وكلاسات تساعد على التحكم بالإحداثيات الجغرافية لأي منطقة بسلاسة ومرونة. تعتمد المكتبة على مقدمي الخدمة Providers والذي يساعد على استعمال خدمات مختلفة مثل Google maps، Bing Maps، TomTom وغيرها من الخدمات.

 

مثال على الكود:

<?php
$lookfor = 'Laan van Meerdervoort, Den Haag, Nederland';

$adapter  = new \Geocoder\HttpAdapter\CurlHttpAdapter();
$geocoder = new \Geocoder\Geocoder();
$geocoder->registerProvider(new \Geocoder\Provider\GoogleMapsProvider($adapter));

$result = $geocoder->geocode($lookfor);
?>

هذا الكود سوف ينتج هذه البيانات:

Geocoder\Result\Geocoded#1
(
    [*:latitude] => 52.0739343
    [*:longitude] => 4.2636776
    [*:bounds] => array
    (
        'south' => 52.0610866
        'west' => 4.2262026
        'north' => 52.0868446
        'east' => 4.3008719
    )
    [*:streetNumber] => null
    [*:streetName] => 'Laan Van Meerdervoort'
    [*:cityDistrict] => null
    [*:city] => 'The Hague'
    [*:zipcode] => null
    [*:county] => 'The Hague'
    [*:countyCode] => 'THE HAGUE'
    [*:region] => 'South Holland'
    [*:regionCode] => 'ZH'
    [*:country] => 'The Netherlands'
    [*:countryCode] => 'NL'
    [*:timezone] => null
)

وعادة تكون هذه البيانات متشابهة في حال استعملت عنواناً ثابتاً أو إحداثيات جغرافية.

ويمكنك أيضاً استعمال أكثر من مقدم خدمة حيث أنه يمكنك استعمال دالة Chain للقيام بذلك. مثال على ذلك:

<?php
// استدعاء مكتبة CURL
$adapter  = new \Geocoder\HttpAdapter\CurlHttpAdapter();
// إنشاء الكائن
$geocoder = new \Geocoder\Geocoder();

// قائمة بمقدمي الخدمة
$chain    = new \Geocoder\Provider\ChainProvider([
  new \Geocoder\Provider\OpenStreetMapProvider($adapter),
  new \Geocoder\Provider\GoogleMapsProvider($adapter),
  new \Geocoder\Provider\BingMapsProvider($adapter, $bingApiKey),
]);

// تسجيل مقدمي الخدمة
$geocoder->registerProvider($chain);
?>

وسوف تقوم المكتبة باستعمال المقدمي واحداً تلو الآخر وتتوقف عند الحصول على نتيجة. ولذلك يجب عليك ترتيب المقدمين بحسب رغبتك في استعمال مقدمي الخدمة.

ويمكن أيضاً استعمال هذه الدالة لاستعمال الإحداثيات مكان العنوان.

$result = $geocoder->reverse(52.155247, 5.387452);

 

يمكن الإطلاع على القائمة الكاملة للدوال من هنا.

ولتحميل المكتبة:

[box type=”download” align=”center” width=”200px”]تحميل مكتبة Geocoder[/box]

اترك تعليقاً

الحقول المطلوبة موسومة بالعلامة *.