Blame view

bower_components/google-apis/google-maps-api.html 3.76 KB
73bcce88   luigser   COMPONENTS
1
2
3
4
5
6
7
8
9
10
11
12
  <!--
  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">
  
c5169e0e   Renato De Donato   a new hope
13
14
  <script>
  /**
73bcce88   luigser   COMPONENTS
15
16
17
18
19
20
21
22
23
24
  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
        });
c5169e0e   Renato De Donato   a new hope
25
      <script>
73bcce88   luigser   COMPONENTS
26
27
28
  
  Any number of components can use `<google-maps-api>` elements, and the library will only be loaded once.
  
eb240478   Luigi Serra   public room cards...
29
  @summary Element wrapper around Google Maps API.
c5169e0e   Renato De Donato   a new hope
30
31
  
   */
73bcce88   luigser   COMPONENTS
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
    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: ''
        },
  
        /**
73bcce88   luigser   COMPONENTS
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
         * 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,
eb240478   Luigi Serra   public room cards...
108
          computed: '_computeUrl(mapsUrl, version, apiKey, clientId, language, signedIn)'
73bcce88   luigser   COMPONENTS
109
110
111
        }
      },
  
eb240478   Luigi Serra   public room cards...
112
      _computeUrl: function(mapsUrl, version, apiKey, clientId, language, signedIn) {
73bcce88   luigser   COMPONENTS
113
114
        var url = mapsUrl + '&v=' + version;
  
eb240478   Luigi Serra   public room cards...
115
116
        // Always load all Maps API libraries.
        url += '&libraries=drawing,geometry,places,visualization';
73bcce88   luigser   COMPONENTS
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
  
        if (apiKey && !clientId) {
          url += '&key=' + apiKey;
        }
  
        if (clientId) {
          url += '&client=' + clientId;
        }
  
        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>