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
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  <!--
  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">
  
  <script>
  /**
  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.
  
eb240478   Luigi Serra   public room cards...
29
  @summary Element wrapper around Google Maps API.
73bcce88   luigser   COMPONENTS
30
31
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>