Tony Hirst published a highly inspiring article about doing a Google Maps mashup without JavaScript.
There is http-version of Google Maps geocoder. Send a request:
http://maps.google.com/maps/geo?q=1600+Amphitheatre+Parkway,+Mountain+View,+CA&output=xml
and you get a full-blown XML response. With parameter output=csv you get a simplified response
200,6,42.730070,-73.690570 Status, accuracy, lat, lng, as a four cell csv text response, yahoo!
Google Spreadsheets can import csv-data by =ImportData()formula. So why don't we make it fetch coordinates of the address in the next cell.
The order of the parameters is not convenient for us, so we change it. The query-parameter 'q' shall be the last one. We type in the first cell of Spreadsheets:
http://maps.google.com/maps/geo?output=csv&q=
In the next cell we type the requested address like Helsinki.
The third cell will add together the two previous cells and ask for data by ImportData() formula:
=ImportData(CONCATENATE(A2,B2))
When you finished typing that, you will see a miracle in the next cells: '200' (http status), '4' (Google accuracy parameter), 60.169879 (latitude of Helsinki) and 24.938408(longitude of Helsinki). Did we ask anything more?
And they say that there is no geocoding in Google Spreadsheets. Plus think how it can import and export. Hold my hat!
There is also automatic googling to get input data.
=GoogleLookup(entity,attribute)
can fetch your POI (entity) address(attribute), and you geocode that as above.
You can use the output via a variety of feeds or read it by ajax-api as JSON. You can for instance preload your pages GClientGeocoder cache to know the POIs. Your visitors don't find the POI by geocoding unless you took care of it.
A test spreadsheet and its csv-feed.
What happens when all the pages read each other in a loop.