Where Y'at? (google map test)
Project Description
"Mapping-related web services had been available for some time from GIS vendors such as ESRI as well as from MapQuest and Microsoft MapPoint. But Google Maps set the world on fire because of its simplicity. While experimenting with any of the formal vendor-supported web services required a formal contract between the parties, the way Google Maps was implemented left the data for the taking, and hackers soon found ways to creatively re-use that data." -Tim O'ReillySince the release of the Google Maps API * on 29 June, 2005, the web development community has embraced the use of the Google Map interface as a way of displaying data in geographical terms. The Where Y'at? application allows members of the Tulane/New Orleans community to indicate where they've spent their time since evacuation from Hurricane Katrina and leave a note as to the reasons why. These responses are collected in a database, then mapped using the Google Map API. Users may also browse the map or search for a particular person in the database and see that person's information mapped.
This type of application is being called a "mash-up" because it takes an existing technology/data source and combines it with another technology/data source, created by a third party developer to serve a need exclusive of the original developer's intent. In the case of Where Y'at?, I am "mashing-up" the Google Map with my own data source (names, addresses and notes entered by our users), though many "mash-ups" are created from sources distinct from the developer (see HousingMaps, a "mash-up" of Google Maps and real estate listings taken from Craig's List).
Project Applications
Beyond the normal function of finding a street address, the Google Map API can be used to visualize geographic data. Basically, any pre-existing data set that has a geographical component can be mapped using the Google Map API. Possible applications cross the academic/administrative boundary: maps could be created with data from Social Work studies just as easily as data from admissions on incoming students.Furthermore, the Google Map API can be used to collect data as well. In the current application, I am asking users to enter data via a web form, but it is possible to have data collected through a point-and-click interface directly on the map itself. For instance, imagine a geography test where the answers are given by clicking on the map at a particular point.
Lastly, there are applications that go beyond the simple display of geographic data. An application that points toward these possibilities is the Google Map-based game, Brewster Jennings Protects America. Functionally, this is very much like other Google Maps, but the game-based logic transforms it from a simple geographic tool into an interactive narrative.
Technical Description
Google Maps are Ajax-based ** applications for the most part: mixtures of HTML, JavaScript, CSS (Cascading Style Sheets), and some sort of data source. In many cases, the data source is XML-based. Because I have access to ColdFusion servers and ColdFusion is an application framework within which I am comfortable, Where Y'at? uses an AJAX, ColdFusion, and a MySQL database to produce its maps.The second technical consideration when working with maps is geocoding. Geocoding is the process by which a street address is turned into longitude and latitude coordinates so that it can be mapped. Google uses a proprietary geocoding service which is not available to developers using the Google Map API. There are certainly for-profit companies who provide geocoding services, but this is unrealistic for most developers. Google (in an effort to facilitate development using its API) suggests the free web service from Geocoder.us.
The Where Y'at? application receives a new address from a user and passes it to Geocoder.us, requesting that the address be translated into longitude/latitude coordinates. Geocoder.us either responds with the coordinates or a message that it has been unsuccessful. Where Y'at? then maps the coordinates and saves them with the user's information in the database. While this is happening, Where Y'at? retrieves all user information from the database and populates the map accordingly.
Future Development
I've recently found VGmap, a new code library, which will allow Macromedia Flash content to be incorporated into Google Maps. I look forward to exploring the potential in this technology.Just as I was finishing the Where Y'at? application, Yahoo! Maps announced a new Beta Map product which incorporates Macromedia Flash as well as their own publicly available APIs so developers can use this technology as we can with Google Maps. This too looks very promising since Flash is here a native API for the maps whereas VGmap has been written by third-party developers to essentially sit on top of the Google Map. Yahoo! is also providing its own geocoding API which may in the end be more stable that the geocoding service I have employed for Where Y'at?.
Other Google Map Uses
Hurricane Katrina Information MapSightseeing with Google Satellite Maps
Google Sightseeing
Brewster Jennings Protects America (Web-based game)
HousingMaps (Real estate listings)
Since initially writing this, I've found a more comprehensive list of Google Map applications
including a specific Google Map Game list. (edit 15 Nov 2005) * Definition: An API (or Application Program Interface) is the codebase through which developers can utilize pre-existing applications. APIs are the doors (many times limited) through which a developer can hook their own projects into other applications and data sources. The proliferation of open APIs is a testament to the changing dynamics of application development and one factor on which Tim O'Reilly has based his definition of Web 2.0.
** Jesse James Garrett of Adaptive Path defines Ajax:
Ajax isn't a technology. It's really several technologies, each flourishing in its own right, coming together in powerful new ways. Ajax incorporates:
- standards-based presentation using XHTML and CSS;
- dynamic display and interaction using the Document Object Model;
- data interchange and manipulation using XML and XSLT;
- and JavaScript binding everything together.
-
asynchronous data retrieval using XMLHttpRequest;