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>
|