New Geocoder 3.0 Boosts Speed and Performance

The BC Physical Address Geocoder, our web service that pinpoints locations on a map using address data, has experienced phenomenal use in the last six months, processing over 100 million addresses out of a total of 258 million since the service launched in January 2013. In response to this level of interest and growth rate we have thoroughly redesigned the latest release of the Geocoder (version 3.0) for speed, scalability, geo-redundancy, improved reference data and geocoding capabilities.


More Speed

Compared to the previous version, the Online Geocoder is twenty percent faster and the Batch Geocoder is four times faster. Our tests have shown that the Batch Geocoder can process massive batch jobs containing six million addresses in just over one hour. Clients, such as developers, can now process larger address lists in less time leading to more efficient address locating, address standardization and quality assurance.


More Uptime

Geocoder 3.0 is load balanced across a number of servers and geo-redundant across the B.C. Government’s two data centres. This deployment pattern makes the service more resilient and also enables us to deploy future releases without interrupting service. We have put this deployment pattern to the test using multi-million record address lists as well as simulated server outages.


More Current Reference Data

Starting with Geocoder 3.0, we will be updating the service’s roads and address data monthly to coincide with the monthly release of the B.C. Digital Road Atlas. We overhauled the address preparation tools so that it only takes a couple of days to prepare the geocoder’s route and address data files. This process sifts through a number of datasets to find the best fit to the Digital Road Atlas and previously took over a week to complete.

The process of address range generation has also been transformed – improving quality and memory usage – and has helped significantly reduce the Geocoder’s start-up time, enabling a more modular deployment pattern.

Geocoder 3.0 takes advantage of over 1.8 million addresses, up 50,000 from the previous release. The increase is mainly due to the inclusion of address data provided by the Integrated Cadastral Information Society.

In the previous version, few highway addresses were loaded successfully primarily due to street name conflicts between the Digital Road Atlas and local address authorities. For example, Hwy 97 in the Atlas was called Cariboo Hwy 97 in Clinton.

The following screenshot of Geocoder 2.0.2 results illustrates the problem, showing there are no addresses on Hwy 97 in Clinton:



Now, with Geocoder 3.0 that problem is solved and all addresses on Hwy 97 are accounted for:



More Capabilities

The online geocoder API was extended, without breaking pre-existing capabilities, as follows:

A new excludeUnits parameter was added to the following REST resources: sites/within, sites/nearest, and sites/near. These resources have a maximum results limit (currently set to 200) so a single building with many units could easily become the only result returned. Here is a geocoder 2.0.2 screenshot that illustrates the problem of a sites/within request with an area that includes an apartment building containing over 200 units:



And here is the same area with excludeUnits set to true in Geocoder 3.0, showing many more address sites now that the apartment units are excluded:



To improve on results and ease of use we have also improved requests for occupant data. For example, in the following REST resources: occupants/nearest, occupants/near, and occupants/within, the tags parameter is now optional. If not specified, occupants are included in results regardless of their tags.


Tell Us What You Think

We have moved the Geocoder’s issue tracker into GitHub to help encourage user feedback and adoption. More information about Geocoder 3.0, including matchPrevision, xhtml response and street names for highways can be found on GitHub here.

We’re also making greater use of GitHub beyond the Geocoder to include projects such as the Geomark Web Service, the B.C. Route Planner and the Concurrent Processing Framework.

The DataBC Team wishes to thank the active users of the B.C. Physical Address Geocoder that have contributed – directly or indirectly – to Geocoder 3.0. Check back here and on GitHub for information about the next release of the Geocoder.


– The DataBC Team