elliotsawyer/nzstreets

使用LINZ地址数据的新西兰街道地址数据库

安装: 140

依赖关系: 0

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 0

开放问题: 2

类型:silverstripe-vendormodule

1.0.0 2019-08-27 05:05 UTC

This package is auto-updated.

Last update: 2024-08-29 00:28:44 UTC


README

使用LINZ地址数据进行地址查找。

使用0.0.x标签为SilverStripe 3安装。SilverStripe 4支持将从0.1.x版本处理。

安装

将仓库添加到您的composer.json文件中

    "repositories": [
        {
            "type": "vcs",
            "url": "git@github.com:elliot-sawyer/silverstripe-nzstreets.git"
        }
    ]

将项目添加到composer.json的require部分

    "require": {
    ...
        "elliot-sawyer/nzstreets": "^0.1"
    ... 

设置

Composer应将仓库放置在您的webroot中。

在routes.yml中创建一个新的路由。您可以将address更改为任何满足您需求的url_segment

SilverStripe\Control\Director:
  rules:
    'address//$Action/$ID/$Name': 'ElliotSawyer\NZStreets\NZStreetAddressController' 

https://data.linz.govt.nz/layer/3353-nz-street-address/data/下载CSV数据源

这是一个非常大的文件(解压后500+ MB)并包含超过190万条记录。提供的导入器将工作,但速度非常慢:您应仅用于较小的文件子集,或作为最后手段使用整个集合。为了获得最快的结果,请使用mysqladmin或类似数据库工具将其侧载。

使用方法

此模块是为了填充到自动建议地址查找而创建的,适合此目的。

现在您可以搜索以您的查询开始的地址。例如

默认限制为10个结果。您可以在config.yml中覆盖此限制

ElliotSawyer\NZStreets\NZStreetAddressController:
  search_limit: 5 

每个搜索结果都包含一个AddressID。要获取有关地址的更多详细信息,您可以按该ID进行查询

侧载

使用dev/build命令构建表。您可以使用以下查询将CSV文件侧载到MySQL中

LOAD DATA LOCAL INFILE '/path/to/your/nz-street-address.csv'
INTO TABLE NZStreetAddress
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(WKT,AddressID,ChangeID,AddressType,UnitValue,AddressNumber,AddressNumberSuffix,AddressNumberHigh,WaterRouteName,WaterName,SuburbLocality,TownCity,FullAddressNumber,FullRoadName,FullAddress,RoadSectionID,Longitude,Latitude,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,ShapeX,ShapeY)
SET ClassName="ElliotSawyer\\NZStreets\\NZStreetAddress", LastEdited=NOW(), Created=NOW();

MySQL的新版本将此过程视为安全风险,因此您可能需要在服务器和客户端上启用一些功能才能使其发生。在侧载过程完成后,请考虑撤销这些更改;

在MySQL数据库级别(必须是root) SET GLOBAL local_infile=1;

退出MySQL并使用客户端上的标志重新连接: mysql -u root -p --local-infile=1

贡献

非常欢迎贡献!请在Github仓库中提出一些问题或创建拉取请求。

支持

需要更多帮助或只是喜欢我的工作?如果您觉得这个模块帮您解决了问题,请考虑给我买杯咖啡或小额捐赠。我接受以下地址的加密货币

  • 比特币:12gSxkqVNr9QMLQMMJdWemBaRRNPghmS3p
  • 比特币现金:1QETPtssFRM981TGjVg74uUX8kShcA44ni
  • 莱特币:LbyhaTESx3uQvwwd9So4sGSpi4tTJLKBdz
  • 以太坊:0x0694E0704c70D8d178dd2e9522FC59EBBEe86748