I want to create a rather complex address field/widget with informations about Country, State, Region, Zip, Placename
It should work like that:
- As it should only be possible to add addresses from one or more specific countries this should be predefined in the controlpanel.
- A user can then enter one or more informations to a select widget with text input for Country, State, Region, Zip or Placename
- All inputs should work bi-directional and change the others if one is entered
1.) entering a zip code should update the Placename, Region, State and Country if valid
2.) entering a Placename (in Austria we have plenty of the same in different regions and states - e.g. there are 123 "Hof" which is roughly translatable to "yard") it should reduce zips, regions, states where they are found/possible
3.) entering a state reduces the lists of possible Regions, Zips and Placenames
4.) and so on.
5.) some sort of output (a map or a simple string for the presentation of the found location)
I found http://www.geonames.org, which has a json-api to grab those informations based on your entries.
What i want to achieve:
1.) A geolocation controlpanel to add:
- your username (the one you registered at geonames)
- Countr(y|ies) you want to be used
- Fields you want to use (Country, State, Region, Zip, Placename)
2.) A dexterity behaviour to add upon contenttypes
which can use the general configuration from the controlpanel
or define its own per contenttype
indexable so one can search the catalog for content with a address (again: Country, State, Region, Zip, Placename)
The field widget inputs should be selfupdating selects with the ability to write text for filtering the existing list of entries. Not to add new entries. Only valid entries are supported.
1.) is there already something similar?
2.) any experiences with geonames.org?
3.) is there already a widget i can use for autocomplete/filter
4.) shall i make it a "collective.behavior.geolocation" or a "plone.app.geolocationbehavior" package
5.) anyone able to help a little (pointing to docs, code samples, ...)?
6.) anyone interested in contributing?