PHP code example of naif / saudiaddress

1. Go to this page and download the library: Download naif/saudiaddress library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

naif / saudiaddress example snippets


'providers' => [
    Naif\Saudiaddress\SaudiAddressServiceProvider::class,
],

'aliases' => [
    'SaudiAddress' => Naif\Saudiaddress\Facades\SaudiAddress::class,
],

use Naif\Saudiaddress\Facades\SaudiAddress;

$regions = SaudiAddress::regions();

// In English
$regions = SaudiAddress::regions('E');

// All cities
$cities = SaudiAddress::cities();

// Cities in a specific region
$cities = SaudiAddress::cities(1);

// In English
$cities = SaudiAddress::cities(1, 'E');

// Districts within a city
$districts = SaudiAddress::districts(3);

// In English
$districts = SaudiAddress::districts(3, 'E');

$address = SaudiAddress::geoCode(24.774265, 46.738586);

// Access properties
echo $address->BuildingNumber; // "7596"
echo $address->Street;         // "الديوان"
echo $address->District;       // "Al Hamra Dist.,حي الحمراء"
echo $address->City;           // "RIYADH,الرياض"
echo $address->PostCode;       // "13216"

$isValid = SaudiAddress::verify(7596, 13216, 2802);

if ($isValid) {
    echo 'Address is valid!';
}

$addresses = SaudiAddress::freeTextSearch('Riyadh Olaya');

// With pagination (10 results per page)
$addresses = SaudiAddress::freeTextSearch('Riyadh Olaya', 2);

// In English
$addresses = SaudiAddress::freeTextSearch('Riyadh Olaya', 1, 'E');

$addresses = SaudiAddress::fixedSearch([
    'CityId' => 3,
    'DistrictId' => 100,
    'StreetName' => 'King Fahd',
]);

// With pagination
$addresses = SaudiAddress::fixedSearch(['CityId' => 3], 2);

$addresses = SaudiAddress::bulkSearch([
    'Riyadh, Olaya, 1234',
    'Jeddah, Al Hamra, 5678',
]);

$addresses = SaudiAddress::shortAddress('ABCD1234');

$isValid = SaudiAddress::verifyShortAddress('ABCD1234');

if ($isValid) {
    echo 'Short address is valid!';
}

$results = SaudiAddress::poiFreeTextSearch('hospital');

// With pagination
$results = SaudiAddress::poiFreeTextSearch('hospital', 2);

$results = SaudiAddress::poiFixedSearch('school', 1);

// With optional filters
$results = SaudiAddress::poiFixedSearch('school', 1, ['CityId' => 3]);

$results = SaudiAddress::nearestPoi(24.774265, 46.738586);

// With custom radius (km)
$results = SaudiAddress::nearestPoi(24.774265, 46.738586, 2.0);

$categories = SaudiAddress::serviceCategories();

// In English
$categories = SaudiAddress::serviceCategories('E');

$subCategories = SaudiAddress::serviceSubCategories(1);

$response = SaudiAddress::sendOtp('STORE001', '0501234567');

$addresses = SaudiAddress::addressByPhone('STORE001', '0501234567', '1234');

// Valid layers: regions, cities, districts, streets, zipcodes
$extents = SaudiAddress::featureExtents('regions', '1');

echo $extents->xmin;
echo $extents->ymin;
echo $extents->xmax;
echo $extents->ymax;

use Naif\Saudiaddress\Exceptions\SaudiAddressException;
use Naif\Saudiaddress\Exceptions\ApiRequestException;
use Naif\Saudiaddress\Exceptions\InvalidResponseException;
use Naif\Saudiaddress\Exceptions\AddressNotFoundException;
use Naif\Saudiaddress\Exceptions\InvalidConfigurationException;

try {
    $address = SaudiAddress::geoCode(24.774265, 46.738586);
} catch (AddressNotFoundException $e) {
    // No address found at these coordinates
} catch (ApiRequestException $e) {
    // Network error or API returned an error
} catch (InvalidResponseException $e) {
    // API returned unexpected data
} catch (SaudiAddressException $e) {
    // Catch-all for any Saudi Address related error
}
bash
php artisan vendor:publish --tag=saudiaddress-config