forked from Matt-Jensen/ember-cli-g-maps
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
64 lines (50 loc) · 1.96 KB
/
index.js
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
29
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
/* jshint node: true */
'use strict';
module.exports = {
name: 'ember-cli-g-maps',
// Include Gmaps code in consuming app
included: function(app) {
this._super.included(app);
app.import(app.bowerDirectory + '/gmaps-for-apps/gmaps.js');
},
// Request Google Maps script in consuming app
contentFor: function(type, config) {
var googleMapConfig = config.googleMap || {};
var params = [];
var content = '';
var googleMapSrc, isClient;
if (type === 'head') {
googleMapSrc = 'maps.googleapis.com/maps/api/js';
// let googleMapsScript = 'http://maps.google.com/maps/api/js?sensor=true'
//Protocol setup
googleMapConfig.protocol = googleMapConfig.protocol || '//';
// default to Google Maps V3
googleMapConfig.version = googleMapConfig.version || '3';
params.push('v='+ encodeURIComponent(googleMapConfig.version));
// grab either API key or client ID
if (googleMapConfig.apiKey) {
isClient = googleMapConfig.apiKey.substr(0, 4) === 'gme-';
params.push((isClient ? 'client' : 'key') +'='+ encodeURIComponent( googleMapConfig.apiKey ));
}
// add any optional libraries
if (googleMapConfig.libraries && googleMapConfig.libraries.length) {
params.push('libraries='+ encodeURIComponent( googleMapConfig.libraries.join(',') ));
}
// add optional localization
if (googleMapConfig.language) {
params.push('language='+ encodeURIComponent( googleMapConfig.language ));
}
if (googleMapConfig.region) {
params.push('region='+ encodeURIComponent( googleMapConfig.region ));
}
googleMapSrc = googleMapConfig.protocol + googleMapSrc;
googleMapSrc += '?'+ params.join('&');
if(googleMapConfig.lazyLoad) {
content = '<meta name="ember-cli-g-maps-url" content="'+ googleMapSrc +'">';
} else {
content = '<script src="'+ googleMapSrc +'"></script>';
}
}
return content;
}
};