Includes enterprise licensing and support
google.maps.*
namespace?
BitmapData.draw
/3D effects in the Flash API?
The Google Maps APIs give developers several ways of embedding Google Maps into web pages, and allows for either simple use or extensive customization. There are now several API offerings:
Depending on your needs, you may find yourself using one or a combination of these APIs.
If you operate an enterprise or commercial website, you may also be interested in Google Maps API Premier.
The Google Maps team is constantly pushing new map data out and increasing our international coverage. The following spreadsheet shows the latest coverage details. You can filter the spreadsheet with the drop downs at the top (e.g. see all countries with driving directions by selecting "Yes" from that drop down). Please note that data coverage can change if licensing agreements with the data providers change.
Check out the
Map Coverage Details Spreadsheet.
Also see the
Supported Languages Spreadsheet.
Yes. Google Maps now offers the ability to embed the map that you're viewing into your website or blog, without any programming or use of the Google Maps APIs. More information is available here.
The Google Maps JavaScript API V3 has been developed to cater to mobile devices, and is suitable for browser applications targeted at both the desktop and devices that include a web browser with a full JavaScript implementation, such as the Apple iPhone.
For applications targeted at devices not suitable for using the JavaScript API, the Static Maps API delivers map images in GIF, JPG, and PNG formats, including markers and polylines. Note that use of the Static Maps API outside of browser based applications requires that the map image be linked to Google Maps.
To incorporate maps in an Android application, use the Android Maps External Library.
To incorporate Maps in a native iPhone application, use the Apple iPhone Map Kit framework.
The Google Maps JavaScript API supports the following web browsers:
Google Maps JavaScript API V3:
Google Maps JavaScript API V2:
The Google Maps API for Flash is supported for stable releases of Flash Player 9 from 9.0.151.0 onwards.
The development tools that are officially supported are Flex Builder 3, Adobe Flash CS3, and the Flex 3 SDK.
See the Maps Javascript API documentation for examples and details.
You should subscribe to the Google Geo Developers Blog for news updates across the various Google Geo developer offerings.
To be notified when there are changes that may affect your applications, such as new releases, please subscribe to the relevant notify Google Group for the API concerned:
The Terms of Service for the Google Maps API are available at:
http://www.google.com/apis/maps/terms.html
The Terms of Service for Google Maps API Premier are available at:
https://support.google.com/enterprise/doc/gme/terms/maps_purchase_agreement.html
The Maps API is available for all sites that are accessible to consumers without charge. You can use the Google Maps APIs on both commercial and non-profit websites as long as your site meets the Terms of Service.
However, there are some uses of the Google Maps APIs that we just don't want to see: maps that identify the places to buy illegal drugs in a city, for instance, or any other illegal activity. We also respect people's privacy, so the Google Maps APIs shouldn't be used to identify private information about individuals.
You should use your own counsel to determine whether your application complies with the Terms of Service before you develop and launch it. Google engineers can only offer technical assistance and are not qualified to offer legal advice. Google reserves the right to suspend or terminate your use of the service at any time, so please read the Terms of Service carefully.
If you operate an enterprise or commercial website, you may also be interested in Google Maps API Premier which has modified Terms of Service that may better suit your needs.
You may not access the maps or satellite images through any mechanism besides the Google Maps APIs (such as the creation of your own mapping API or the use of a bulk tile download script). Your application's access to the tiles will be blocked if it accesses them outside of the Google Maps APIs. See section 5.3 of the Google Terms of Use for more details.
As long as your site is generally accessible to consumers without charge, you may use the Google Maps API. For example, if your website is supported by advertising, it likely falls within the Google Maps API Terms of Service. If you charge people to place information on your map (e.g. to list their homes for sale), but you display this information using the Google Maps API on a free part of your site, you'll also meet the Google Maps API Terms of Service.
However, not all commercial uses are allowed. For example, if your site meets any of the following criteria you must purchase the appropriate Google Maps API Premier license:
Remember, Google reserves the right to suspend or terminate your use of the Google Maps API at any time, so please ensure that you read the Terms of Service carefully.
There is no restriction on displaying real-time data (tracking) with the Google Maps APIs provided that the application is publicly available without charge and otherwise complies with the Terms of Service. For internal-only applications, Google Maps API Premier must be used. See Section 10.9 of the Terms of Service for more information.
Yes, the Google Maps APIs can now be used in Desktop applications, provided that they adhere to the other restrictions of the Terms of Service. Note that in order for a desktop application to be deemed "publicly accessible", there must be a publicly accessible webpage from which it can be downloaded. See Section 7.1c of the Terms of Service for more information.
Yes, you can, though you should consult the Terms of Service before using the Google Maps APIs on a password protected website. If consumers can easily sign up for a password without charge or if the purpose of the password protected map is to enhance the publicly available map (ie. administration), then your site is likely within the Terms of Service. If this is not the case, you will need to use Google Maps API Premier.
Per Section 9.2 of the Terms of Service, developers must report whether their Maps API implementation uses a sensor to locate the user's device on the map. An example of a sensor is the Geolocation module in Gears, which provides a latitude/longitude for a user based on their WIFI/GPS/Cell ID information.
Information is available on reporting use of a sensor in each of the Maps APIs:
Use of Google Maps imagery in printed materials and offline media is subject to the Permission Guidelines published at:
We are no longer collecting this data. The use of the indexing
parameter has been deprecated and has no effect. You no longer need to opt out
explicitly, but we encourage you to remove this parameter at your earliest
convenience.
To remove your page or site from search results, follow the instructions provided in our webmaster help center.
When using the JavaScript Maps API, the following information is sent to Google:
You may not store and serve copies of images generated using the Google Static
Maps API from your website. All web pages that require static map images must
link the src
attribute of an HTML img
tag or the CSS
background-image
attribute of an HTML div
tag
directly to the Google Static Maps API so that all map images are displayed
within the HTML content of the web page and served directly to end users by
Google.
Web sites and applications using each of the Maps API may at no cost generate:
If your application exceeds these usage limits you must respond in one of the following ways in order to continue using the Maps API in your application:
Non-profits and applications deemed in the public interest (as determined by Google at its discretion) are not subject to these usage limits. For example, a disaster relief map is not subject to the usage limits even if it has been developed and/or is hosted by a commercial entity. In addition we recommend that eligible Non-profits apply for a Maps API Premier license through the Google Earth Outreach program. This provides a number of benefits, including the right to opt-out of advertising, higher quotas for Maps API web services, and technical support.
A precise definition of what constitutes a 'map load' is provided here. Details on pricing can be found here.
Yes. However we recommend that you familiarise yourself with the Maps API usage limits and the daily limits for any of the Google Maps API Web Services that your application relies on.
You can greatly reduce the risk of being affected by the web service limits by using the relevant JavaScript or ActionScript class for the service concerned where appropriate. For more information, see the article on Geocoding Strategies.
A single map load occurs when:
The degree to which a user interacts with a map once it has been loaded has no impact on the usage limits.
No. Your maps will continue to function. However if your application qualifies for and consistently exceeds the published Maps API usage limits, you do not have a Maps API Premier license, and you do not enroll for online purchasing of excess map loads, a warning may be shown on your map and a Maps API Premier sales manager may contact you to discuss your licensing options.
Applications generating map load volumes below the usage limits can use the Maps API at no cost providing the application meets the requirements of the Google Maps API Terms of Service. Excess map loads over the usage limits are priced as follows:
Service |
Usage limit (per day) |
1,000 excess map loads (in U.S. dollars) |
---|---|---|
JS Maps API v3 | 25,000 | $4 |
JS Maps API v3 styled maps | 2,500 | $4[1] / $8[2] |
Static Maps API | 25,000 | $4 |
Static Maps API styled maps | 2,500 | $4[1] / $8[2] |
Street View Image API | 25,000 | $4 |
JS Maps API v2 | 25,000 | $10 |
Excess map loads will not be offered online for the Maps API for Flash. Sites using the Maps API for Flash and exceeding the usage limits should migrate to the JS Maps API v3, or purchase a Maps API Premier license.
Excess map loads will be sold online through the Google APIs Console. Usage will be calculated daily, and the excess billed monthly to a credit card. Note that if your site consistently generates a high volume of map loads per day a Maps API Premier license may be more cost effective.
Note also that the purchase of excess map loads online does not confer any additional rights or benefits other than the right to continue using the Maps API under the existing Terms of Service.
The documentation for the Maps API Geocoding Web Service documents the Usage Limits that apply to the service. For more detailed information, including recommendations on how to reduce the risk of being affected by these limits, please see the article on Geocoding Strategies.
Note: Google Maps API keys are only required when using the JavaScript Maps API V2 and the Maps API for Flash.
In order to obtain a Google Maps API key, you must sign in to your Google Account and agree to our Terms of Service. There is no limit to the number of keys you may obtain under a single account.
For most applications we recommend that you simply register your domain name. Your key will be valid for that domain, its subdomains, all URLs on hosts in those domains, and all ports on those hosts.
For example, if you sign up for a key using
http://www.mygooglemapssite.com/
, your key is valid for:
http://www.mygooglemapssite.com/
http://www.mygooglemapssite.com/mysite/
However this key will not be valid for:
http://mygooglemapssite.com/
http://host1.mygooglemapssite.com/
http://host2.mygooglemapssite.com/mysite
If as recommended you request a key for
http://mygooglemapssite.com/
your key will be valid for all of
the URLs listed above.
Note that a key for http://www.mygooglemapssite.com/
will only be
accepted when the site is accessed using this address. It will not be accepted
if the site is accessed by IP address (eg. http://10.1.2.3/
) or
by a hostname that is aliased to www.mygooglemapssite.com
using a
DNS CNAME record.
If you are using the Javascript Maps API V2 and your key is not working on
your site, put an alert(window.location.host)
in your code and
reload the page. The domain you see in that alert is the one on which your key
should be registered.
If you're using the Maps API for Flash and your key is not working, make sure the key is registered for the domain from which the SWF is being served, not for the domain on which the SWF is embedded.
Note: Google Maps API keys are only required when using the JavaScript Maps API V2 and the Maps API for Flash.
Some applications may be hosted on multiple domains. For example, many content
management systems push the same content to different domains (e.g.
example.com
and example.net
) and wish to have that
content single-sourced. Since Google Maps API keys are generated per domain,
you'll need to generate separate keys for each domain and configure your
application to use the correct one. The easiest way to do this in JavaScript
is to dynamically generate the <script>
tag using
document.write
and assigning the correct domain-specific key
within the src
attribute's URL as a parameter. In doing so,
you'll need to pre-generate and hardcode the list of keys within your
application.
One technique we suggest is to create an object which contains a
mapping between domain names and its corresponding Google Maps API keys. Use
window.location.host
to retrieve the domain name your application
is running against, and pass it into the object to select the appropriate key.
Below is a JavaScript snippet you can copy and paste into your application.
Replace property names labeled domain*.com
on the left with your
list of domains and assign to each entry its corresponding and unique Google
Maps API key.
document.write([ '<script src="http://maps.google.com/maps?file=api&v=2&key=', { 'domain1.com': 'apikey1', 'domain2.com': 'apikey2', 'domain3.com': 'apikey3', 'domainN.com': 'apikeyN' }[window.location.host], '" type="text/javascript"></script>' ].join(''));
When using the snippet above, be sure to include it within your HTML document
above any <script>
tags or JavaScript containing references
to Google Maps API objects.
We maintain a list of changes between JavaScript Maps API V3 versions at:
http://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIv3Changelog
You can also check which version of the Google Maps API a particular bug was introduced and fixed in using the Google Maps API Issue Tracker at:
Just specify the callback parameter when loading the API. More information and sample code can be found in the documentation.
Check out the Supported Languages Spreadsheet.
The Google Maps JavaScript API V3, Google Static Maps API, and Google Maps API Web Services can be accessed over secure (HTTPS) connections by developers using either the free version of these APIs or Google Maps API Premier. Please see the documentation for the API concerned for information on how to access the API over SSL.
The Google Maps JavaScript API V2 and Google Maps API for Flash can be accessed over a secure (HTTPS) connection by Google Maps API Premier customers only. If these Maps APIs are used with a free Maps API key on a secure site, the browser may warn the user about non-secure objects on the screen.
The Google Maps API for Flash can be used in a Flash application (SWF file) that is hosted on an SSL (HTTPS) site. However only Google Maps API Premier customers can load the Google Maps API for Flash over HTTPS. When the Google Maps API for Flash is loaded by a Flash application hosted on an https site using a free Maps API Key, the API is loaded over HTTP, and all connections to Google made by the API are over HTTP.
To load the Google Maps API for Flash using a free Maps API key in a Flash application hosted on an SSL site, you must:
Security.allowInsecureDomain("maps.googleapis.com");
BitmapData.draw
/3D effects in the Flash API?
The Maps API for Flash does not currently allow calls to
BitmapData.draw()
. Calling this method will result in a run-time
Security Sandbox error. Several ActionScript libraries call this function in
order to enable transitions or 3-d effects, such as
PaperVision3d. If you are using
those libraries in your application, make sure you're not using them on the
map. To be notified if this situation changes, please star
this issue
.
If you experience behavior that you believe may be a bug, please begin by raising it in the relevant forum. This will allow other developers to validate the bug, and rule out any potential issues with your code.
If you wish to request a feature, please also first raise it in the relevant forum to confirm that a solution that meets your requirements is not already available.
Once you have confirmed that you have identified a new bug, or that your requirements can not be met by the existing functionality of the Google Maps APIs, please report your bug or feature request using the Google Maps API Issue Tracker.
Before adding a bug or feature request to the Issue Tracker please be sure to check that the bug or feature concerned has not already been added. If it has, you can star the issue to register your interest and be notified of updates.
Please post your question in the relevant forum to get help from the Google Maps developer community. The Google Maps team also monitors and participates in this group.
For best results when requesting help, please keep the following in mind:
Google Maps API Premier customers may also contact Google Enterprise Support.
Yes, this process is called "geocoding." each of the Google Maps APIs includes a class for performing geocoding. The classes are:
Alternatively Google also provides a Geocoding Web Service, which offers a REST interface that can respond in JSON and XML formats.
Please be aware of the usage limits that apply to geocoder requests, and note that use of the geocoder for any purpose other than obtaining locations that will be displayed using the Google Maps APIs is a violation of the Terms of Service. You may use the HTTP geocoder to geocode addresses outside of your Google Maps API application so that they may be cached and later displayed using one of the Google Maps APIs, but locations obtained using the Geocoding Web Service may not be used by any other application, distributed by other means, or resold.
To see countries currently supported by the Google Maps APIs geocoders, please check out this spreadsheet and select "Yes" in the geocoding dropdown.
The accuracy of geocoded locations may vary per country, so you should consider using the returned location_type field to determine if a good enough match has been found for the purposes of your application. Please note that the availability of geocoding data depends on our contacts with data providers, so it is subject to change.
For geocoding in countries not currently supported by the Google Maps APIs, please browse this list of other geocoding services.
The API geocoder and Google Maps geocoder sometimes use different data sets (depending on the country). The API geocoder occasionally gets updated with new data, so you can expect to see results changing or improving over time.
The Google Maps APIs geocoder requires that U.S. numbered highways be specified in addresses as follows:
"Co Road NNN"
where NNN is the road number. eg.
"Co Road 82"
"State NNN"
where State is the full name of the
state and NNN is the highway number. eg. "California 82"
"U.S. NNN"
where NNN is the highway number.
eg. "U.S. 101"
"Interstate NNN"
where NNN is the interstate
number. eg. "Interstate 280"
The Accuracy value represents the scale of the feature that has been geocoded. It does not represent a ranking or level of confidence in the result.
When the geocoder receives a query it attempts to find the best matched feature for the address given. Depending on the amount of data we have for the area concerned, the geocoder may be able to identify a specific building that matches, or it may only be able to match the street or district.
If the geocoder can only match a higher level feature such as the district it will still return a lat/long, but it will be for the centroid of that feature, which is likely to be offset from the location of the specific address requested. The Accuracy tells you the scale of the object that matched, so you know how precise the geocode is likely to be.
The list of possible values for the Accuracy and the scale of feature that each represents is given in the documentation:
The geocoder is designed to map street addresses to geographical coordinates. We therefore recommend that you format geocoder requests in accordance with the following guidelines to maximise the likelihood of a successful query:
See the article: Geocoding Strategies, which details the pros and cons of different geocoding strategies.
The Google Maps Javascript API allows you to provide driving directions via the google.maps.DirectionsService class. This class provides you with step-by-step access to basic and multi-point driving directions. The DirectionsRenderer class can automatically create the overlays and directions panel for you. Additional examples are provided in the documentation.
You can also easily link to Google Maps for driving directions. We suggest you use the following format for driving directions on Google Maps:
http://maps.google.com/maps?saddr={start_address}&daddr={destination_address}
To see countries currently supported by Driving Directions in the Maps API, check out this spreadsheet and choose "Yes" in the driving directions column dropdown. Please note that the availability of driving directions data depends on our contacts with data providers, so it is subject to change.
The KmlLayer class in the Javascript API enables developers to overlay KML/KMZ and GeoRSS files on top of the map. Examples are here.
The KML features currently supported by the KmlLayer
class are
documented at:
http://code.google.com/apis/kml/documentation/mapsSupport.html
The size and complexity limits on the display of KML using the
KmlLayer
class are documented at:
http://code.google.com/apis/kml/documentation/mapsSupport.html
There is no limit to the number of markers or path vertices supported by the Google Static Maps API. However Static Maps API URLs can be a maximum of approximately 2,000 characters which constrains the number of markers and path vertices that can be specified based on the number of decimal places used when specifying each latitude/longitude pair. For information on how the number of decimal places used relates to the accuracy on the Earth see the Wikipedia article on Decimal Degrees.
Yes, you're welcome and encouraged to monetize your maps mashup through advertising. The JavaScript Maps API offers an AdSense Library to help you add advertising to your maps mashups. Read the developer's guide for more information.
You can also put AdSense ad units on the same page as your map mashup, outside of the map.
To sign up for AdSense and get a publisher ID, or to learn how to put ad units on your page, visit adsense.google.com.
To find your unique AdSense publisher ID number, log into your AdSense account at http://www.google.com/adsense. On the My Account tab, scroll down to the Property info section. Your publisher ID for each AdSense product and feature will be located in this section.
Alternatively, you can find your publisher ID number within your AdSense code. Just locate the AdSense code in the HTML source code of your website, and you'll spot your publisher ID in a line like the one shown below:
google_ad_client="ca-pub-xxxxxxxxxxxxxxxx";
Please refer to the information on channels in the AdSense Help Center.
Any developer whose page content is in one of the AdSense for Content languages can implement the ads layer. Currently, only advertisers from the United States will show ads in the ads layer. As the program continues, ads from advertisers in other countries may become available.
Note: This FAQ entry applies to V2 (deprecated). V3 uses the
AdUnit
class to display ads on or around the map.
If you've implemented the ads layer by initializing a GAdsManager
on your map and aren't seeing any ads, there may be several reasons:
GAdsManager
constructor, and make sure you
call enable()
on GAdsManager
after initialization.