عميل PHP لـ Nominatim، محرك البحث لبيانات OpenStreetMap.
يبني | مستقر | رخصة |
---|---|---|
إذا كان Composer مثبتًا بالفعل
composer require riverside/php-nominatim
إذا لم يتم تثبيت Composer على نظامك بعد، فيمكنك المضي قدمًا وتثبيته باستخدام سطر الأوامر هذا:
$ curl -sS https://getcomposer.org/installer | php
بعد ذلك، أضف ما يلي يتطلب الإدخال إلى ملف Composer.json في جذر مشروعك.
{"تتطلب" : {"riverside/php-nominatim" : "^2.0"} }
أخيرًا، استخدم Composer لتثبيت php-nominatim وتبعياته:
$ php composer.phar install
تتطلب __DIR__ . '/vendor/autoload.php';
ابحث عن موقع من الوصف النصي أو العنوان.
$client = new RiversideNominatimClient();try {$response = $client->search('Madison Square Garden, NY');if ($response->isOK()) {echo $response->getLat(0) . "،" . $response->getLng(0); } else {echo "لم يتم العثور على الموقع."; } } Catch (InvalidArgumentException $e) {echo $e->getMessage(); } Catch (Exception $e) {echo $e->getMessage(); }
يولد عنوانا من خطوط الطول والعرض.
$client = new RiversideNominatimClient();try {$response = $client->reverse(48.8539373, 2.2825966);if ($response->isOK()) {echo $response->getAddress(0); } else {echo "لم يتم العثور على العنوان"; } } Catch (InvalidArgumentException $e) {echo $e->getMessage(); } Catch (Exception $e) {echo $e->getMessage(); }
استعلم عن العنوان والتفاصيل الأخرى لكائن OSM واحد أو عدة كائنات مثل العقدة أو الطريق أو العلاقة.
$client = new RiversideNominatimClient();try {$client->setAddressDetails(1);$response = $client->lookup('R146656,W104393803,N240109189');if ($response->isOK()) {echo ' <pre>';print_r($response->toArray()); } else {echo "لم يتم العثور على العنوان"; } } Catch (InvalidArgumentException $e) {echo $e->getMessage(); } Catch (Exception $e) {echo $e->getMessage(); }
إظهار كافة التفاصيل حول مكان واحد محفوظ في قاعدة البيانات.
$client = new RiversideNominatimClient();try {$client->setAddressDetails(1);$response = $client->details(199375150);if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo "لم يتم العثور على المكان"; } } Catch (InvalidArgumentException $e) {echo $e->getMessage(); } Catch (Exception $e) {echo $e->getMessage(); }
تحقق مما إذا كانت الخدمة وقاعدة البيانات قيد التشغيل، ومتى تم تحديث قاعدة البيانات آخر مرة.
$client = new RiversideNominatimClient();try {$response = $client->status();if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo "لم يتم العثور على الحالة"; } } Catch (InvalidArgumentException $e) {echo $e->getMessage(); } Catch (Exception $e) {echo $e->getMessage(); }
قم بإدراج الكائنات التي تم حذفها في OSM ولكن تم تعليقها في Nominatim في حالة ما إذا كان الحذف عرضيًا.
$client = new RiversideNominatimClient();حاول {$response = $client->deletable();if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo "لم يتم العثور على الكائنات القابلة للحذف"; } } Catch (InvalidArgumentException $e) {echo $e->getMessage(); } Catch (Exception $e) {echo $e->getMessage(); }
قائمة المضلعات المكسورة التي اكتشفها Nominatim.
$client = new RiversideNominatimClient();حاول {$response = $client->polygons();if ($response->isOK()) {echo '<pre>';print_r($response->toArray()); } else {echo "لم يتم العثور على المضلعات"; } } Catch (InvalidArgumentException $e) {echo $e->getMessage(); } Catch (Exception $e) {echo $e->getMessage(); }
https://wiki.openstreetmap.org/wiki/Nominatim
https://github.com/openstreetmap/Nominatim
https://nominatim.openstreetmap.org/
https://nominatim.org/