Tuesday, January 27, 2009

Validation on address info

I have been thinking of creating an application which validates multiple addresses using existing public resources like Google Maps API, in a batch.

This application is a client application running on PC with internet connection. It walks through a list of addresses, and queries through Google Maps and analyzes the results returned by Google Maps. After the validation, this application will create a KML file with placemarks of the addresses, and list those not passing the validation.

As I don't want to reinvent the wheel, I searched the internet to find out whether some people had done similar or related job using MS .NET technologies. The closed one I found was Google
Earth KML API
for .NET hosted at sourceforge.net. However, I found the quality of the project was quite poor, for example, the classes contains tons of public data memebers, and there was no unit tests. Using Code Analyzer, I found tons of quality defects.

So, I was thinking of developing a .NET library to parsing KML documents. I would call this project as KMLDotNet.

Basic measurements of quality assurance will include the following:
  • The codes must past the Code Analyzer.
  • Automatic unit tests, with guideline of abstract test cases of KML.

Basic features of the library:
  • Parse KML into DOM
  • Queries against GeoCoding using multiple threads
  • Produce KML documents from DOM.
Short term goal:
Support a subset of KML which is well enough for address book applications.

Long term goal:
Suport most or all elements of KML, and the design should be good enough for others to add more elements.



Resources:
Geocoding Though the document indicates a key is needed, however, when I tested using a URL without the key in a web browser, Google Maps still returned correct results.
KML Standard
Google's KML Reference
KML 2.2 Reference - An OGC Best Practice (PDF)
OGC KML (PDF)
KML Developer Support
Java library for KML (gekmllib)
Official KML Samples