2017 © Pedro Peláez
 

silverstripe-module nzstreets

Database of New Zealand street addresses using LINZ address data

image

elliot-sawyer/nzstreets

Database of New Zealand street addresses using LINZ address data

  • Friday, November 17, 2017
  • by silverstripe-elliot
  • Repository
  • 1 Watchers
  • 1 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • -67 % Grown

The README.md

NZ Street Address module for SilverStripe

Address lookup using LINZ Address Data., (*1)

Use the 0.0.x tags for SilverStripe 3 installations. SilverStripe 4 support will be handled from versions 0.1.x., (*2)

Installation

Add the repository to your composer.json file, (*3)

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

Add the project to the require section of composer.json, (*4)

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

Setup

Composer should place the repository in your webroot., (*5)

Create a new route in routes.yml. You can change address to any url_segment that meets your needs, (*6)

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

Download the CSV data source from https://data.linz.govt.nz/layer/3353-nz-street-address/data/, (*7)

This is a massive file (500+ MB once extracted) and contains over 1.9 million records. The supplied importer will work but it's very slow: you should only use it for a smaller subset of files, or as a last resort for the entire set. For the fastest results, sideload it using mysqladmin or a similar database tool., (*8)

Usage

This module was created to feed into an autosuggest address lookup and is suitable for that purpose., (*9)

You can now search for addresses that start with your query. For example:
* https://yoursite/address/search?q=101-103 * https://yoursite/address/search?q=2/133 * https://yoursite/address/search?q=14+L, (*10)

The default limit is 10 results. You can override this in your config.yml:, (*11)

ElliotSawyer\NZStreets\NZStreetAddressController:
  search_limit: 5 

Each search result contains an AddressID. For more details about an address, you can query by that ID: * http://yoursite/address/details?AddressID=1579100, (*12)

Sideloading

Build the table using the dev/build command. You can sideload the CSV file into MySQL with the following query:, (*13)

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();

Newer versions of MySQL treat this process as a security risk, so you might need to enable a few things on the server and the client to make it happen. Consider reverting these changes after the sideloading process is completed;, (*14)

Within MySQL at the database level (must be root) SET GLOBAL local_infile=1;, (*15)

Exit out of MySQL and reconnect with a flag on your client: mysql -u root -p --local-infile=1, (*16)

Contributing

Contributions are more than welcome! Please raise some issues or create pull requests on the Github repo., (*17)

Support

Need some extra help or just love my work? Consider shouting me a coffee or a small donation if this module helped you solve a problem. I accept cryptocurrency at the following addresses: * Bitcoin: 12gSxkqVNr9QMLQMMJdWemBaRRNPghmS3p * Bitcoin Cash: 1QETPtssFRM981TGjVg74uUX8kShcA44ni * Litecoin: LbyhaTESx3uQvwwd9So4sGSpi4tTJLKBdz * Ethereum: 0x0694E0704c70D8d178dd2e9522FC59EBBEe86748, (*18)

The Versions

17/11 2017

dev-master

9999999-dev http://silverstripe.org

Database of New Zealand street addresses using LINZ address data

  Sources   Download

BSD-3-Clause

The Requires

 

by elliot sawyer

address silverstripe lookup geocode new zealand nz

17/11 2017

0.2.1

0.2.1.0 http://silverstripe.org

Database of New Zealand street addresses using LINZ address data

  Sources   Download

BSD-3-Clause

The Requires

 

by elliot sawyer

address silverstripe lookup geocode new zealand nz

17/11 2017

0.2.0

0.2.0.0 http://silverstripe.org

Database of New Zealand street addresses using LINZ address data

  Sources   Download

BSD-3-Clause

The Requires

 

by elliot sawyer

address silverstripe lookup geocode new zealand nz

10/11 2017

0.1.0

0.1.0.0 http://silverstripe.org

Database of New Zealand street addresses using LINZ address data

  Sources   Download

BSD-3-Clause

The Requires

 

by elliot sawyer

address silverstripe lookup geocode new zealand nz

10/11 2017

0.0.1

0.0.1.0 http://silverstripe.org

Database of New Zealand street addresses using LINZ address data

  Sources   Download

BSD-3-Clause

The Requires

 

by elliot sawyer

address silverstripe lookup geocode new zealand nz