...
Code Block |
---|
{ "inputAddressString": "100 Main St", "inputZipCodeString": "94105", "spatialReference": { "wkid": 4326 }, "foundMatch": true, "foundEasMatch": false, "candidates": [ { "address": "100 MAIN ST", "location": "POINT (-122.3948959209805700 37.7917552676099080)", "score": null, "attributes": { "StreetName": "MAIN", "StreetType": "ST" }, "addressNumber": "100", "street": { "streetNamePrimary": { "base_street_name": "MAIN", "street_type": "ST" }, "streetNameAliases": [], "l_f_add": 101, "l_t_add": 199, "r_f_add": 100, "r_t_add": 198, "seg_cnn": 8628000, "geometry": "MULTILINESTRING ((-122.3949402377882200 37.7918420903234780, -122.3934079394635700 37.7906126704266400))" }, "zipCode": "94105", "jurisdiction": "SF MAIN" } ], "validations": [], "didYouMean": [] } |
Results
...
and Performance
We have tested the DEV implementation against all the Treasurers data with these results:of the Treasurer/Tax Collector addresses; here are the results.
found street match | found eas match | count | percent |
---|---|---|---|
false | false | 1444 | 2.72 |
true | false | 6481 | 12.24 |
true | true | 44996 | 85.02 |
52921 | 100 |
The service processes about 500 addresses per minute which should be fine for our purposes.
We have done no performance optimization so we can probably make it faster if you have a compelling reason.
We have written
Technical Details
If you are interested in technical details you can find the code mostly in 2 places.
More or less...
And in an effort to set a good example we have written real unit tests which you can see here.!
Examples
The nominal example:
...