ngtfkx/laradeck-address-generator

生成真实地址以创建测试数据

1.0.0 2017-09-14 18:14 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:14:35 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

用于开发的真实地址生成。

与Faker不同,生成的地址对每个城市都是真实的,并且可以输出到地图上。现在测试人员不会有疑问,为什么地图上的标记与地址不匹配,如何向客户或客户解释。

安装

通过Composer

$ composer require ngtfkx/laradeck-address-generator

如果需要控制台命令或连接自己的数据源,请将服务提供程序添加到文件 config/app.php(对于版本 <=5.4.*)

Ngtfkx\Laradeck\AddressGenerator\LaradeckAddressGeneratorServiceProvider::class,

使用方法

获取任何包含在包中的城市的随机地址

$generator = new \Ngtfkx\Laradeck\AddressGenerator\Generator();
$address = $generator->getRandomAddress();

获取指定城市的随机地址

$generator = new \Ngtfkx\Laradeck\AddressGenerator\Generator();
$generator->setCities('Tomsk', 'nsk', 'Омск'); // можно передавать массив
$generator->addCity('новосибирск'); // добавит город к ранее установленным
$address = $generator->getRandomAddress(); // адрес будет для какого-то из вышеуказанных 4-х горолдов

文档

获取地址

获取地址的方法如下

  • getRandomAddress($forCity = null): Address - 获取一个地址
  • getRandomAddresses(int $count, $forCity = null): Collection - 获取指定数量地址的集合

默认情况下,随机地址可以针对任何受支持的城市生成(如果未指定城市别名参数)

设置城市

如果需要为特定城市(们)生成地址,则需要强制指定这些城市。为此,可以使用以下方法

  • addCity(string $city): Generator - 根据别名添加城市到使用列表
  • addCities(...$cities): Generator - 添加多个城市(可以用逗号分隔,也可以用数组形式)
  • setCities(...$cities): Generator - 添加多个城市,并覆盖先前添加的城市

Address 类型对象

包含以下方法

  • getFull(): string - 获取完整地址(包含城市、街道和门牌号)
  • getInsideLocality(): string - 获取内部区域地址(仅包含街道和门牌号)
  • getLocality(): string - 获取区域名称
  • getStreet(): string - 获取街道名称
  • getBuilding(): string - 获取门牌号

数据存储结构

用于按城市生成地址的数据存储在 data/ru 文件夹中的 {cityId}.php 文件中,其中 {cityId} 是系统中的城市id http://nominatim.openstreetmap.org/

return [
    "1 Восточный спуск" => ["100", "101", "102"],
    "1-й квартал" => ["13", "2a", "3/1", "4", "5", "6"],
];

支持的城市及其别名的列表存储在 data/ru/cities.php 文件中,形式为数组

return [
    '173343488' => [
        'Омск',
        'Omsk',
    ],
    '173436661' => [
        'Новосибирск',
        'Nsk',
        'Novo-sibirsk',
        'Нск',
    ],
];

连接自定义数据

将具有类似结构(参见数据存储结构)的文件放置在任何位置,并指定从磁盘根目录的绝对路径。然后按照以下方式连接数据

$generator = new Generator();
$generator->loadCustomData(111, 'Нефтебаза', storage_path('app/111.php'));

现在,Neftebaza 的地址可用于生成。

统计信息

要获取有关可用城市和地址的信息,请使用控制台命令 php artisan address:stat

生成自己的数据文件

要生成数据文件,请使用控制台命令 php artisan address:city-address-ru {city} {url} {--limit=0}

支持的城市

  • Омск。地址:27 297
  • Новосибирск。地址:41 052
  • 克拉斯诺亚尔斯克。地址数:14,628
  • 巴伦诺夫。地址数:16,668
  • 图尔茨克。地址数:17,859
  • 苏尔古特。地址数:2,649
  • 别尔哥罗德。地址数:13,524
  • 布良斯克。地址数:14,844
  • 伊万诺沃。地址数:18,333
  • 索契。地址数:6,885
  • 马格尼托哥尔斯克。地址数:7,846
  • 塔维尔。地址数:12,494
  • 乌兰乌德。地址数:14,229
  • 斯塔夫罗波尔。地址数:8,204
  • 库尔斯克。地址数:2,327
  • 卡利宁格拉德。地址数:13,618
  • 图拉。地址数:12,081
  • 切博克萨雷。地址数:7,315
  • 基洛夫。地址数:8,966
  • 利佩茨克。地址数:14,182
  • 彼尔姆。地址数:18,877
  • 纳扎尔内·切尔内。地址数:4,947
  • 阿斯特拉罕。地址数:35,539
  • 梁赞。地址数:10,751
  • 诺沃库兹涅茨克。地址数:22,101
  • 库兹涅茨克。地址数:20,679
  • 奥伦堡。地址数:17,617
  • 马哈奇卡拉。地址数:1,100
  • 符拉迪沃斯托克。地址数:7,739
  • 亚罗斯拉夫尔。地址数:14,571
  • 哈巴罗夫斯克。地址数:16,990
  • 伊尔库茨克。地址数:15,746
  • 乌里扬诺夫斯克。地址数:12,533
  • 伊热夫斯克。地址数:13,636
  • 托利亚蒂。地址数:8,107
  • 图门。地址数:18,074
  • 萨马拉特。地址数:16,236
  • 克拉斯诺达尔。地址数:6,143
  • 伏尔加格勒。地址数:37,421
  • 沃罗涅日。地址数:22,383
  • 佩尔姆。地址数:4,495
  • 乌法。地址数:19,805
  • 罗斯托夫-纳-顿河。地址数:37,131
  • 萨马拉。地址数:19,083
  • 切列彭斯克。地址数:23,013
  • 喀山。地址数:30,572
  • 下诺夫哥罗德。地址数:22,949
  • 叶卡捷琳堡。地址数:4,936
  • 圣彼得堡。地址数:20,138
  • 莫斯科。地址数:34,015

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

致谢

里程碑

  • 版本 1:基本功能
  • 版本 2:连接国家,本地化,地理坐标,翻译成英语
  • 版本 3:脱离框架

许可证

MIT 许可证 (MIT)。请参阅许可证文件以获取更多信息。