This is a request for comments and opinions concerning a set of modules I have recently developed.

** I originally posted to comp.lang.perl.modules by mistake. I got one response and will be posting it here to perl.module-authors. **

I propose to release the beginning of a large repository of geographic data made available on a high-level through perl objects. Currently the data I have organized and modularized is local to the United States. The data is ZCTA (Census Zip Code Tabulation Area, essentialy Zip Codes), States, Counties, Places (Cities and others), Airports (including baloonports and others), and Airport Runways. I intend to include other parts of the world as time permits.

The intent of this data is for general purpose geographic comparison - not graphical mapping! Every data type has a single longitude, latitude, name, and id. Each data type may from there add whatever additional information. Airports for example have 40 additional fields. Each module is linked in to my Geo::Distance module so that you can do something like $place->closest(50=>'mile','US::Airport'); to find the closest airports within a 50 mile radius of the place. Also, $place->distance($other_place,'mile');.

The Makefile.PLs will include the ability to download the latest data file from my server for the particular module being installed. I intend to make bundles for downloading groups of these modules.

This first version of the modules will be considered unstable, with the prediction that the API will be changeing until the stable release is ready. Currently I'm using my own Class::DBI-like Class for these modules, but I would like to officially move to Class::DBI at some point. Also, this first version is most likely using MySQL specific sql. This will also change as the modules get closer to stable status.

The proposed namespaces are:

Geo::Data::*
Geo::Data::Country
Geo::Data::US::State
Geo::Data::US::County
Geo::Data::US::ZCTA
Geo::Data::US::Place
Geo::Data::US::Airport
Geo::Data::US::Runway

Bundle::Geo::Data
Bundle::Geo::Data::US
Class::GeoData

I want to hear people either cry or laugh hysterically before I actually show some code (I need to pod and do some organizing on it too). So, anyone find this intriguing?

Also, are these namespaces ok?


Aran





Reply via email to