ngtfkx / laradeck-address-generator
生成真实地址以创建测试数据
1.0.0
2017-09-14 18:14 UTC
Requires
- php: ~7.0
- illuminate/support: ~5.1
Requires (Dev)
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
README
用于开发的真实地址生成。
与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}
- {city} - 系统中的城市id http://nominatim.openstreetmap.org/
- {url} - 城市列表页面的第一个页面,其中包含网站 http://www.city-address.ru/ 上的街道列表,例如 这样
- {--limit=0} - 处理的页面数量(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)。请参阅许可证文件以获取更多信息。