@Sean
node_helper.js
var NodeHelper = require("node_helper");
module.exports = NodeHelper.create({
start: function() {
var geo = {
lat: 12.34567,
lng: 23.45678
}
this.sendSocketNotification("REFRESH_GEO", geo);
}
}
);
main.js
/* global Module */
/* Magic Mirror
* Module: MMM-GoogleMapsTraffic
*
* By Victor Mora
* MIT Licensed.
*/
Module.register("MMM-GoogleMapsTraffic", {
start: function(){
this.geo = {
lat: 0, //default latitude
lng: 0 //default longitude
}
},
socketNotificationReceived: function(noti, payload) {
console.log("NOTIFICATION IS FIRED:", noti)
if (noti == "REFRESH_GEO") {
console.log("PAYLOAD IS TREANFERED:", payload)
this.geo.lat = payload.lat,
this.geo.lng = payload.lng
console.log("I'LL UPDATE DOM BY REFRESHED GEO")
this.updateDom();
}
},
getDom: function() {
var lat = this.geo.lat;
var lng = this.geo.lng;
var wrapper = document.createElement("div");
wrapper.setAttribute("id", "map");
wrapper.style.height = this.config.height;
wrapper.style.width = this.config.width;
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://maps.googleapis.com/maps/api/js?key=" + this.config.key;
document.body.appendChild(script);
script.onload = function () {
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 13,
center: {
lat: lat,
lng: lng
}
});
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
};
return wrapper;
}
});