Google Maps API

37
USGS GIS Workshop 2008 G Introduction To the Go By Gregory L. Gunthe GOOGLE MAPS API oogle Maps API er

Transcript of Google Maps API

Page 1: Google Maps API

USGS GIS Workshop 2008

GOOGLE MAPS

Introduction To the Google Maps API

By Gregory L. Gunther

GOOGLE MAPS API

Introduction To the Google Maps API

Gunther

Page 2: Google Maps API

USGS GIS Workshop 2008

Importance of Google Maps API

¨ “Gateway to the Geoweb ¨ Attack of the NeoGeos ¨ Interface To Google Maps for Application

Developers ¨ JavaScript Library ¨ Simple, quick deployment ¨ Provides Geocoder (Version 2)

¤ Version 1 required Mashup with other

¨ Implementation of AJAX/DHTML

Introduction to the Google Maps API: By Gregory L.

Importance of Google Maps API

Geoweb”

Interface To Google Maps for Application

Simple, quick deployment (Version 2)

with other geocoding service

Implementation of AJAX/DHTML

Introduction to the Google Maps API: By Gregory L. Gunther

Page 3: Google Maps API

USGS GIS Workshop 2008

Google Maps Key

¨ Requires Google Account and is free ¤ http://code.google.com/apis/maps/signup.html

¨ Key good for a single directory on server and all sub directories—usually a host

¨ Typically looks like ¤ http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAS

hF...

¨ Generic for local file system (no server, I think???) ¤ http://maps.google.com/maps?file=js&v=2.x

Introduction to the Google Maps API: By Gregory L.

Google Maps Key

Requires Google Account and is free http://code.google.com/apis/maps/signup.html

Key good for a single directory on server and all usually a host

http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAS

Generic for local file system (no server, I think???) http://maps.google.com/maps?file=js&v=2.x

Introduction to the Google Maps API: By Gregory L. Gunther

Page 4: Google Maps API

USGS GIS Workshop 2008

Google Maps Key Continued

¨ Trick ¤ V=2 àCurrent 2.77 ¤ V=2.xàLatest 2.88 ¤ V=2.77àFixed to specific version

¨ http://groups.google.com/group/Google API/web/api-version-changes?version=10

¨ Reserves the right to upgrade at any time ¤ Will run both for “about a month” ¤ Then old one will be turned off

¨ Will implement bug fixes “transparently” ¤ Refer to discussion forum for help

Introduction to the Google Maps API: By Gregory L.

Google Maps Key Continued

Fixed to specific version http://groups.google.com/group/Google-Maps-

changes?version=10 Reserves the right to upgrade at any time

Will run both for “about a month” Then old one will be turned off

Will implement bug fixes “transparently” Refer to discussion forum for help

Introduction to the Google Maps API: By Gregory L. Gunther

Page 5: Google Maps API

USGS GIS Workshop 2008

Terms of Use (Back in 2007)

¨ No limit on page views ¤ Request notification if over 500,000

¨ Limit of 50,000 geocode ¨ Does not include advertising ¨ Must be available to the public ¤ Google Maps for Enterprise Internally

¨ Can’t alter “Google” Logos on images ¨ They can upgrade of change library at anytime

Introduction to the Google Maps API: By Gregory L.

Terms of Use (Back in 2007)

Request notification if over 500,000

requests per day Does not include advertising – YET!!! Must be available to the public

Google Maps for Enterprise Internally

Can’t alter “Google” Logos on images They can upgrade of change library at anytime

Introduction to the Google Maps API: By Gregory L. Gunther

Page 6: Google Maps API

USGS GIS Workshop 2008

GMap2 class

Introduction to the Google Maps API: By Gregory L.

¨ An instance of GMap2 represents a single map on the page.

¨ You can create as many instances of this class as you want (one for each map on the page).

Introduction to the Google Maps API: By Gregory L. Gunther

Page 7: Google Maps API

USGS GIS Workshop 2008 Introduction to the Google Maps API: By Gregory L.

Google Maps “Hello World”

<script src="http://maps.google.com/maps?file=api&v=2&key=.....“ type="text/javascript"></script>

function load() if (GBrowserIsCompatible()) var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(37.4419,

•GBrowserIsCompatible(): Checks to see if browser in compatible •GMap2 (): Main map object constructor •setCenter(): sets the starting center location of the map, must be called, also sets zoom ( •Call function which loads map using onLoad event in body

<body onload=“load()”></body> <div id="map" style="width: 500px; height: 300px"></div>

Introduction to the Google Maps API: By Gregory L. Gunther

Google Maps “Hello World”

="http://maps.google.com/maps?file=api&v=2&key=.....“

var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(37.4419, ­122.1419), 13);

(): Checks to see if browser in compatible

(): sets the starting center location of the map, must be called, also sets zoom (ie. 13) event in body à Critical

<div id="map" style="width: 500px; height: 300px"></div>

Page 8: Google Maps API

USGS GIS Workshop 2008

Quick Demo and Exercise 2

Introduction to the Google Maps API: By Gregory L.

Quick Demo and Exercise 2

Introduction to the Google Maps API: By Gregory L. Gunther

Page 9: Google Maps API

USGS GIS Workshop 2008

Overlaysà Adding Your Own Data

¨ Points, lines, Polygons, InfoWindow ¤ XML, JSON, REST API

¨ KML, GeoRSS (GGeoXMLà ¤ Not AJAX

¨ WMS ¤ 3 rd Party ¤ Some other work arounds>>Not Native

¨ GML (Open Layers) ¤ Really just XML Parsing

¨ ArcGIS (9.3 JS API Preview) ¨ Others???

Introduction to the Google Maps API: By Gregory L.

Adding Your Own Data

InfoWindow

àGoogle Server Upload)

>>Not Native

(9.3 JS API Preview)

Introduction to the Google Maps API: By Gregory L. Gunther

Page 10: Google Maps API

USGS GIS Workshop 2008

Markers

¨ Point on a map ¨ Added Using GMarker

Object ¤ Takes GLatLng argument

¨ Uses default G_DEFAULT_ICON ¤ Can create custom icons

Introduction to the Google Maps API: By Gregory L.

var point = new GLatLng(43.65654,-79.90138); var marker = new GMarker(point); map.addOverlay(marker);

argument

Introduction to the Google Maps API: By Gregory L. Gunther

79.90138);

Page 11: Google Maps API

USGS GIS Workshop 2008

Custom Marker Icons

Introduction to the Google Maps API: By Gregory L.

var icon = new GIcon(); icon.image = "http://.../ridefinder/images/mm_20_red.png"; icon.shadow = "http://.../ridefinder/images/mm_20_shadow.png"; icon.iconSize = new GSize(12, 20); icon.shadowSize = new GSize(22, 20); icon.iconAnchor = new GPoint(6, 20); icon.infoWindowAnchor = new GPoint(5, 1);

……….

map.addOverlay(new GMarker(point, icon));

Custom Marker Icons

Introduction to the Google Maps API: By Gregory L. Gunther

/images/mm_20_red.png"; /images/mm_20_shadow.png";

(5, 1);

(point, icon));

Page 12: Google Maps API

USGS GIS Workshop 2008

Polylines and Polygons

¨ GPolygon(points, strokeColor strokeOpacity?, fillColor?, fillOpacity

¨ GPolyline(points, color?, weight?, opacity?) ¨ IE Requires VML Namespace

Introduction to the Google Maps API: By Gregory L.

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml

………………… var pl = new GPolyline([new GPoint(-107.395492, 42.893307

new GPoint(-107.398249, 42.891117)], "#EC4F18", 4, 1);

map.addOverlay(pl);

and Polygons

strokeColor?, strokeWeight?, fillOpacity?)

(points, color?, weight?, opacity?) IE Requires VML Namespace

Introduction to the Google Maps API: By Gregory L. Gunther

="http://www.w3.org/1999/xhtml" com:vml">

107.395492, 42.893307), 107.398249, 42.891117)],

Page 13: Google Maps API

USGS GIS Workshop 2008

InfoWindows

Introduction to the Google Maps API: By Gregory L.

•Regular or Tabbed •HTML or DOM •Stand Alone of Event Driven •Bind to any feature (map, marker)

Introduction to the Google Maps API: By Gregory L. Gunther

Page 14: Google Maps API

USGS GIS Workshop 2008

InfoWindows with Markers

Introduction to the Google Maps API: By Gregory L.

¨ #1 openInfoWindow (DOM Node)

¨ #2 openInfoWindowHTML(HTML content)

¨ #3 openInfoWindowHTMLTab (Tab Title, Content)

marker.openInfoWindow(document.createTextNode

marker.openInfoWindowHtml("Marker #<b>" + number + "</b>");

var infoTabs = new GInfoWindowTab("Tab #1", "This is tab #1 content"); …… marker.openInfoWindowTabsHtml(infoTabs

with Markers

Introduction to the Google Maps API: By Gregory L. Gunther

#1 openInfoWindow (DOM Node)

#2 openInfoWindowHTML(HTML content)

#3 openInfoWindowHTMLTab (Tab Title, Content)

document.createTextNode("Hello, world"));

("Marker #<b>" + number + "</b>");

("Tab #1", "This is tab #1 content");

infoTabs);

Page 15: Google Maps API

USGS GIS Workshop 2008

Events and Event Listeners

¨ Adds behaviors based on user interactions ¨ Application “listens” for things to happen ¨ GEvent.addListerner (“map object”, “event”, “the

Function to perform”)

Introduction to the Google Maps API: By Gregory L.

var map = new GMap2(document.getElementById GEvent.addListener(map, "click", function()

alert("You clicked the map."); );

OR

GEvent.addListener(marker, "click", function() marker.openInfoWindowHtml(“<b>Hello World</b>”);

);

Events and Event Listeners

Adds behaviors based on user interactions Application “listens” for things to happen

(“map object”, “event”, “the

Introduction to the Google Maps API: By Gregory L. Gunther

document.getElementById("map")); (map, "click", function()

(marker, "click", function() (“<b>Hello World</b>”);

Page 16: Google Maps API

USGS GIS Workshop 2008

Gmap Events

Introduction to the Google Maps API: By Gregory L. Introduction to the Google Maps API: By Gregory L. Gunther

Page 17: Google Maps API

USGS GIS Workshop 2008

Gmap Events

Introduction to the Google Maps API: By Gregory L. Introduction to the Google Maps API: By Gregory L. Gunther

Page 18: Google Maps API

USGS GIS Workshop 2008

Adding XML Overlays

¨ AJAX stands for Asynchronous JavaScript And XML. ¤ AJAX has been around, made popular by Google

(maps.google.com) ¤ AJAX no a language, technique using a variety of technologies

(DOM, DHTML, Javascript, XML). ¨ AJAX is based on JavaScript and HTTP ¤ XMLHTTPRequest Javascript Object ¤ Allows data to be requested from server without page reloads

Client Side ¤ Browser Independent (with a little help) ¤ Better user experience ¤ More desktop like ¤ Asynchronous

Introduction to the Google Maps API: By Gregory L.

Adding XML Overlays à AJAX

AJAX stands for Asynchronous JavaScript And XML. AJAX has been around, made popular by Google

AJAX no a language, technique using a variety of technologies , XML).

AJAX is based on JavaScript and HTTP Object

Allows data to be requested from server without page reloads

Browser Independent (with a little help)

Introduction to the Google Maps API: By Gregory L. Gunther

Source: Crane, et al. 2006

Page 19: Google Maps API

USGS GIS Workshop 2008

Adding XML Overlays

¨ AJAX stands for Asynchronous JavaScript And XML. ¤ AJAX has been around, made popular by Google

(maps.google.com) ¤ AJAX no a language, technique using a variety of technologies

(DOM, DHTML, Javascript, XML). ¨ AJAX is based on JavaScript and HTTP ¤ XMLHTTPRequest Javascript Object ¤ Allows data to be requested from server without page reloads Client

Side ¤ Browser Independent (with a little help) ¤ Better user experience ¤ More desktop like ¤ Asynchronous

Introduction to the Google Maps API: By Gregory L.

Adding XML Overlays à AJAX

AJAX stands for Asynchronous JavaScript And XML. AJAX has been around, made popular by Google

AJAX no a language, technique using a variety of technologies , XML).

AJAX is based on JavaScript and HTTP Object

Allows data to be requested from server without page reloads Client

Browser Independent (with a little help)

Introduction to the Google Maps API: By Gregory L. Gunther

Source: Crane, et al. 2006

Page 20: Google Maps API

USGS GIS Workshop 2008

AJAX vs. Traditional Website Analog

Introduction to the Google Maps API: By Gregory L.

Traditional Web Application Analog

AJAX Rich Web Application Analog

Source: Crane, et al. 2006

AJAX vs. Traditional Website Analog

Introduction to the Google Maps API: By Gregory L. Gunther

Page 21: Google Maps API

USGS GIS Workshop 2008

Gmaps Implementation of AJAX

¨ GDownloadURL ¤ Easiest and simplest

n Function(data,responseCode) n Where response code is HTTP response code from server

¨ Can also GXmlHttp ¤ More like XMLHttpRequest Object ¤ Able to check the state of the request little better

Introduction to the Google Maps API: By Gregory L.

GDownloadUrl("example.xml", function(data, if (responseCode == 0)

var xml = GXml.parse ……. Parse Data using DOM……. map.addOverlay(marker));

);

Implementation of AJAX

Where response code is HTTP response code from server à Usually 200 if successful

Able to check the state of the request little better

Introduction to the Google Maps API: By Gregory L. Gunther

("example.xml", function(data, responseCode)

GXml.parse(data); ……. Parse Data using DOM…….

(marker));

Page 22: Google Maps API

USGS GIS Workshop 2008

AJAX and Browser Security

¨ IE cannot overlay when rendered locally ¨ Firefox will ¨ Browser security requires data resources and the

resulting webpage be resolved to same hostname ¤ Kind of

Introduction to the Google Maps API: By Gregory L.

AJAX and Browser Security

IE cannot overlay when rendered locally

Browser security requires data resources and the resulting webpage be resolved to same hostname

Introduction to the Google Maps API: By Gregory L. Gunther

Page 23: Google Maps API

USGS GIS Workshop 2008

Parsing XML using DOM.

¨ getElementsByTagName ()– array

¨ getAttribute() – returns value of specified attribute for a particular DOM node

¨ parseFloat(string)—parse a string into float

Introduction to the Google Maps API: By Gregory L.

var markers = xml.documentElement.getElementsByTagName for (var i = 0; i < markers.length; i++)

var point = new GLatLng(parseFloat parseFloat

map.addOverlay(new Gmarker(point));

Parsing XML using DOM.

–returns all DOM nodes as

returns value of specified attribute for

parse a string into float

Introduction to the Google Maps API: By Gregory L. Gunther

xml.documentElement.getElementsByTagName("marker")

parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));

(point));

Page 24: Google Maps API

USGS GIS Workshop 2008

File Based XML vs. REST

¨ REST: More of a philosophy than a technology ¨ Simply and Elegant Web Service Architecture ¨ URI based web service access ¨ Javascript Security

http://certmapper.cr.usgs.gov/XMLGenerator/GetX MLServlet?tableName=sdebase.core_intervals&col umnName=formname

Introduction to the Google Maps API: By Gregory L.

File Based XML vs. REST

REST: More of a philosophy than a technology Simply and Elegant Web Service Architecture URI based web service access

http://certmapper.cr.usgs.gov/XMLGenerator/GetX MLServlet?tableName=sdebase.core_intervals&col

Introduction to the Google Maps API: By Gregory L. Gunther

Page 25: Google Maps API

USGS GIS Workshop 2008

Demo and Exercise 3

Introduction to the Google Maps API: By Gregory L.

Demo and Exercise 3

Introduction to the Google Maps API: By Gregory L. Gunther

Page 26: Google Maps API

USGS GIS Workshop 2008

Mashup

¨ Buzzword of the decade ¨ Definitions ¨ “Bastard pop is a musical genre which, in its purest form, consists of the

combination (usually by digital means) of the music from one song with the acapella from another. Typically, the music and vocals belong to completely different genres. At their best, bastard pop songs strive for musical epiphanies that add up to considerably more than the sum of their parts.”

¨ Web application combining multiple services and resources from desperate locations

¨ “A mash-up is a Web page or application that integrates complementary elements from two or more sources. Mash created by using a development approach called

Introduction to the Google Maps API: By Gregory L.

Buzzword of the decade

“Bastard pop is a musical genre which, in its purest form, consists of the combination (usually by digital means) of the music from one song with

from another. Typically, the music and vocals belong to completely different genres. At their best, bastard pop songs strive for musical epiphanies that add up to considerably more than the sum of

Web application combining multiple services and resources from

up is a Web page or application that integrates complementary elements from two or more sources. Mash-ups are often created by using a development approach called Ajax. “

Introduction to the Google Maps API: By Gregory L. Gunther

Page 27: Google Maps API

USGS GIS Workshop 2008

Mashup Resources

¨ Typically Web Services ¤ Services are reusable units providing business functionality that

are: n Clearly defined using standard policies, practices, and frameworks n Clearly described (xml) n Autonomous n Abstractions of the underlying business logic and functionality

n Actual overlay process not necessary

¤ Easy to understand: one party delivers a service according to a contract with the other party

¨ Protocols ¤ REST, SOAP, WMS, WFS, ArcXML

¨ Encodings ¤ Images, Generic XML, KML, GeoRSS

Introduction to the Google Maps API: By Gregory L.

Resources

Services are reusable units providing business functionality that

Clearly defined using standard policies, practices, and frameworks

Abstractions of the underlying business logic and functionality Actual overlay process not necessary

Easy to understand: one party delivers a service according to a

ArcXML

GeoRSS, GML, etc…

Introduction to the Google Maps API: By Gregory L. Gunther

Source: ArcIMS WMS Connector Help

Page 28: Google Maps API

USGS GIS Workshop 2008

WMS

¨ Web Map Service ¨ Most widely adopted OGC standard

¤ Simple and elegant ¤ Easy to implement ¤ Easy to use by clients

¨ support of the creation and display of registered and superimposed map-like views of information that come simultaneously from multiple remote and heterogeneous sources

¨ Geospatial data response encoded as image ¨ Version 1.3 ¨ Developed as part of the Web Mapping

(WMT)

Introduction to the Google Maps API: By Gregory L.

Most widely adopted OGC standard

support of the creation and display of registered and like views of information that come

simultaneously from multiple remote and heterogeneous

Geospatial data response encoded as image

Developed as part of the Web Mapping Testbed project

Introduction to the Google Maps API: By Gregory L. Gunther

Source: King 2006

Page 29: Google Maps API

USGS GIS Workshop 2008

WMS

¨ Any WMS client can access maps from 1 or many servers

¨ Any client can combine maps (overlay as acetate layers)

¨ Any client can query information from any server ¨ Implements 3 functions ¤ getCapabilities – What does the service support ¤ getMap – get me the map ¤ getFeatureInfo – query and identify

Introduction to the Google Maps API: By Gregory L.

Any WMS client can access maps from 1 or many

Any client can combine maps (overlay as acetate

Any client can query information from any server

What does the service support

query and identify

Introduction to the Google Maps API: By Gregory L. Gunther

Source: ArcIMS WMS Connector Help

Page 30: Google Maps API

USGS GIS Workshop 2008

Implementing WMS

¨ Varied mean so doing so ¨ Primary Google Maps Functions and Interfaces and Constants

¤ Custom Layers via GTileLayer Interface ( ¤ Constants

Introduction to the Google Maps API: By Gregory L.

Implementing WMS Mashups

Primary Google Maps Functions and Interfaces and Constants Interface (GmapType)

Introduction to the Google Maps API: By Gregory L. Gunther

Page 31: Google Maps API

USGS GIS Workshop 2008

wms236.js Library Implementation

¨ wms236.js ¤ Constructs tiles, handles projections ¤ Input n WMS getMap URL n Service Name n Format

Introduction to the Google Maps API: By Gregory L.

var myDOQQLayer= new GTileLayer(new GCopyrightCollection myDOQQLayer.myBaseURL='http://terraservice.net/ogcmap.ashx?' myDOQQLayer.myLayers='doq'; myDOQQLayer.myFormat='image/gif’; myDOQQLayer.getTileUrl=CustomGetTileUrl

var layer1=[G_HYBRID_MAP.getTileLayers()[0],

var custommap1 = new GMapType(layer1,

map.addMapType(custommap1);

Library Implementation

Constructs tiles, handles projections

Introduction to the Google Maps API: By Gregory L. Gunther Source: WMS Javascript Library

GCopyrightCollection(""),1,17); ='http://terraservice.net/ogcmap.ashx?'

CustomGetTileUrl;

()[0], myDOQQLayer];

(layer1, G_SATELLITE_MAP.getProjection(), “DOQQ");

Page 32: Google Maps API

USGS GIS Workshop 2008

KML – Keyhole Markup Language

¨ New OGC standard V 2.2 (HTML for the ¤ Originated For Google Earth ¤ “HTML of the Geoweb”

¨ Not good use of xml because includes a lot of formatting issues, not just data structure (My Opinion)

¨ Default xml specification for “Globe” Services ¨ Huge specification ¨ Tools and authoring KML

¤ ArcMap Script -- http://arcscripts.esri.com/details.asp?dbid=14273 ¤ Arc2Earth -- http://www.arc2earth.com/ ¤ Xtools ¤ ArcToolbox ¤ Renders (ArcGIS Server, Geoserver, POSTGIS)

¨ KMZ format – Compressed ¨ Object Oriented – Very Important

Introduction to the Google Maps API: By Gregory L.

Keyhole Markup Language

New OGC standard V 2.2 (HTML for the Geoweb)

Not good use of xml because includes a lot of formatting issues, not just data

Default xml specification for “Globe” Services

http://arcscripts.esri.com/details.asp?dbid=14273 http://www.arc2earth.com/

, POSTGIS)

Introduction to the Google Maps API: By Gregory L. Gunther

Page 33: Google Maps API

USGS GIS Workshop 2008

GeoRSS

¨ RSS = Real Simple Syndication (for 2.0 at least) ¤ Essential RSS 2.0 and ATOM 1.0 ¤ Other terms: Podcast, News Feed, etc… ¤ Integrated into new browsers but can also use

aggregators

¨ Geospatial Component (3 Flavors) ¤ W3C ¤ Simple ¤ GML

Introduction to the Google Maps API: By Gregory L.

RSS = Real Simple Syndication (for 2.0 at least) Essential RSS 2.0 and ATOM 1.0 Other terms: Podcast, News Feed, etc… Integrated into new browsers but can also use

Geospatial Component (3 Flavors)

Introduction to the Google Maps API: By Gregory L. Gunther

W3C Geo

Page 34: Google Maps API

USGS GIS Workshop 2008

Using the GeoXML

¨ Built in feature for “mashing-up” resources ¤ KML 2.0 and GeoRSS but more in the future ¤ Easy and quick ¤ Creates new GOverlay Object

¨ Pitfalls ¤ KML 2.0 Only ¤ GeoRSS Simple, W3C, GML ¤ Can’t be local (this means not exercise) ¤ Caching on Google Server

n Unknown refresh—hard to force refresh

¤ Minimal Control n Only interface with GOverLay as a whole

n Can’t manage individual objects such as markers

Introduction to the Google Maps API: By Gregory L.

var kmlLayer = new GGeoXml("http://certmapper.cr.usgs.gov/googlemaps/demo4.2.kml"); …… map.addOverlay(kmlLayer);

GeoXML Object

up” resources but more in the future

as a whole Can’t manage individual objects such as markers

Introduction to the Google Maps API: By Gregory L. Gunther

("http://certmapper.cr.usgs.gov/googlemaps/demo4.2.kml");

Page 35: Google Maps API

USGS GIS Workshop 2008

Demo and Exercise 4

Introduction to the Google Maps API: By Gregory L.

Demo and Exercise 4

Introduction to the Google Maps API: By Gregory L. Gunther

Page 36: Google Maps API

USGS GIS Workshop 2008

References

¨ Crane, D., Pacarello, E. (2006). Ajax in Action. Manning Publications Company.

¨ King, JJ. SOA What? Introduction to Service Oriented Architecture. Mountain Oracle Users Group. Denver, 2006.

¨ Gibson, R., and Erle, Schuyler. (2006). Google Maps Hacks: Tips and Tools for Geographic Searching and Remixing.

Introduction to the Google Maps API: By Gregory L.

, E. (2006). Ajax in Action. Manning Publications

SOA What? Introduction to Service Oriented Architecture. Rocky Mountain Oracle Users Group. Denver, 2006.

, Schuyler. (2006). Google Maps Hacks: Tips and Tools for Geographic Searching and Remixing. O’Reily.

Introduction to the Google Maps API: By Gregory L. Gunther

Page 37: Google Maps API

USGS GIS Workshop 2008

Web Resources

¨ API Home—http://www.google.com/apis/maps/documentation

¨ API Blog—http://googlemapsapi.blogspot.com/

¨ API Discussion Forum—http://groups.google.com/group/Google

¨ Google Maps API Change Log— http://groups.google.com/group/Google changes?version=10

¨ Google Maps Tutorial -- http://econym.googlepages.com/

¨ Gmaps Sample -- http://gmaps- samples.googlecode.com/svn/trunk/gdownloadurl_new/async_explain.htm

¨ ArcIMS WMS Connector Help -- http://webhelp.esri.com/arcims/9.2/general/

¨ WMS Javascript Library -- http://johndeck.blogspot.com/

Introduction to the Google Maps API: By Gregory L.

http://www.google.com/apis/maps/documentation

http://googlemapsapi.blogspot.com/

http://groups.google.com/group/Google-Maps-API

http://groups.google.com/group/Google-Maps-API/web/api-version-

http://econym.googlepages.com/

samples.googlecode.com/svn/trunk/gdownloadurl_new/async_explain.htm

http://webhelp.esri.com/arcims/9.2/general/

http://johndeck.blogspot.com/

Introduction to the Google Maps API: By Gregory L. Gunther