korén-软件/ehak-locations

PHP 库,用于将位置转换为 EHAK 分类代码,反之亦然

1.8.1 2023-04-20 10:04 UTC

README

Actions Status Coverage Status Latest Stable Version Total Downloads License

EHAK 位置

PHP 库,用于将位置转换为 EHAK 分类代码,反之亦然

安装

composer require koren-software/ehak-locations

用法

use \Koren\EHAK\EHAK;

$ehak = new EHAK(); // init EHAK instance on latest data

// Get EHAK code from location
$countyCode = $ehak->getCode(EHAK::COUNTIES, 'EST', 'Harju maakond'); // 0037

$cityCode = $ehak->getCode(EHAK::CITIES, $countyCode, 'Tallinn'); // 0784
$ehak->getCode(EHAK::CITY_DISTRICTS, $cityCode, 'Haabersti linnaosa'); // 0176

$parishCode = $ehak->getCode(EHAK::PARISHES, $countyCode, 'Anija vald'); // 0141
$ehak->getCode(EHAK::VILLAGES, $parishCode, 'Aegviidu alev'); // 1088

// Get EHAK location from code
$ehak->getLocation(EHAK::COUNTIES, 'EST', '0037'); // Harju maakond

$ehak->getLocation(EHAK::CITIES, '0037', '0784'); // Tallinn
$ehak->getLocation(EHAK::CITY_DISTRICTS, '0784', '0176'); // Haabersti linnaosa

$ehak->getLocation(EHAK::PARISHES, '0037', '0141'); // Anija vald
$ehak->getLocation(EHAK::VILLAGES, '0141', '1088'); // Aegviidu alev

// Get full location from EHAK code
$ehak->getFullLocation('0176');

//Gives:
[
    'counties' => 'Harju maakond',
    'cities' => 'Tallinn',
    'city_districts' => 'Haabersti linnaosa',
    'parishes' => '',
    'villages' => '',
]

// Get code from full location
$ehak->getCodeFromFullLocation([
    EHAK::COUNTIES => 'Harju maakond',
    EHAK::CITIES => 'Tallinn',
    EHAK::CITY_DISTRICTS => 'Haabersti linnaosa',
    EHAK::PARISHES => '',
    EHAK::VILLAGES => '',
]); // 0176

开发

更新数据

src/data 目录包含不同版本的 EHAK 数据。要保存新版本或更新旧版本,请运行

bin/update.php --path "EHAK XLSX PATH HERE"

选项

  • --output="FILENAME" / -o FILENAME - 设置不同的输出目的地
  • --debug / -d - 启用调试