aboutsummaryrefslogtreecommitdiff
path: root/catapult/third_party/polymer/components/google-apis/google-maps-api.html
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/third_party/polymer/components/google-apis/google-maps-api.html')
-rw-r--r--catapult/third_party/polymer/components/google-apis/google-maps-api.html150
1 files changed, 150 insertions, 0 deletions
diff --git a/catapult/third_party/polymer/components/google-apis/google-maps-api.html b/catapult/third_party/polymer/components/google-apis/google-maps-api.html
new file mode 100644
index 00000000..fb9bbaca
--- /dev/null
+++ b/catapult/third_party/polymer/components/google-apis/google-maps-api.html
@@ -0,0 +1,150 @@
+<!--
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at https://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at https://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at https://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at https://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../polymer/polymer.html">
+<link rel="import" href="../iron-jsonp-library/iron-jsonp-library.html">
+
+<!--
+Dynamically loads the Google Maps JavaScript API, firing the `api-load` event when ready.
+
+#### Example
+
+ <google-maps-api api-key="abc123" version="3.exp"></google-maps-api>
+ <script>
+ var mapsAPI = document.querySelector('google-maps-api');
+ mapsAPI.addEventListener('api-load', function(e) {
+ // this.api === google.maps
+ });
+ </script>
+
+Any number of components can use `<google-maps-api>` elements, and the library will only be loaded once.
+
+@summary Element wrapper around Google Maps API.
+-->
+<script>
+ Polymer({
+
+ is: 'google-maps-api',
+
+ behaviors: [
+ Polymer.IronJsonpLibraryBehavior
+ ],
+
+ properties: {
+
+ /** @private */
+ mapsUrl: {
+ type: String,
+ value: 'https://maps.googleapis.com/maps/api/js?callback=%%callback%%'
+ },
+
+ /**
+ * A Maps API key. To obtain an API key, see developers.google.com/maps/documentation/javascript/tutorial#api_key.
+ */
+ apiKey: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * A Maps API for Business Client ID. To obtain a Maps API for Business Client ID, see developers.google.com/maps/documentation/business/.
+ * If set, a Client ID will take precedence over an API Key.
+ */
+ clientId: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * Version of the Maps API to use.
+ */
+ version: {
+ type: String,
+ value: '3.exp'
+ },
+
+ /**
+ * The localized language to load the Maps API with. For more information
+ * see https://developers.google.com/maps/documentation/javascript/basics#Language
+ *
+ * Note: the Maps API defaults to the preffered language setting of the browser.
+ * Use this parameter to override that behavior.
+ */
+ language: {
+ type: String,
+ value: ''
+ },
+ /**
+ * If true, sign-in is enabled.
+ * See https://developers.google.com/maps/documentation/javascript/signedin#enable_sign_in
+ */
+ signedIn: {
+ type: Boolean,
+ value: false
+ },
+
+ /**
+ * Fired when the Maps API library is loaded and ready.
+ * @event api-load
+ */
+ /**
+ * Name of event fired when library is loaded and available.
+ */
+ notifyEvent: {
+ type: String,
+ value: 'api-load'
+ },
+
+ /** @private */
+ libraryUrl: {
+ type: String,
+ computed: '_computeUrl(mapsUrl, version, apiKey, clientId, language, signedIn)'
+ }
+ },
+
+ _computeUrl: function(mapsUrl, version, apiKey, clientId, language, signedIn) {
+ var url = mapsUrl + '&v=' + version;
+
+ // Always load all Maps API libraries.
+ url += '&libraries=drawing,geometry,places,visualization';
+
+ if (apiKey && !clientId) {
+ url += '&key=' + apiKey;
+ }
+
+ if (clientId) {
+ url += '&client=' + clientId;
+ }
+
+ // Log a warning if the user is not using an API Key or Client ID.
+ if (!apiKey && !clientId) {
+ var warning = 'No Google Maps API Key or Client ID specified. ' +
+ 'See https://developers.google.com/maps/documentation/javascript/get-api-key ' +
+ 'for instructions to get started with a key or client id.';
+ console.warn(warning);
+ }
+
+ if (language) {
+ url += '&language=' + language;
+ }
+
+ if (signedIn) {
+ url += '&signed_in=' + signedIn;
+ }
+ return url;
+ },
+
+ /**
+ * Provides the google.maps JS API namespace.
+ */
+ get api() {
+ return google.maps;
+ }
+ });
+</script>