MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Trafficmaps

    Scheduled Pinned Locked Moved Development
    63 Posts 11 Posters 82.6k Views 12 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • W Offline
      wscheer
      last edited by

      Hey All,
      I’ve been tinkering around with the Bing Traffic maps a little more. I made it a bit more customizable but I’m having an issue where the map never refreshes.

      I’ve tried calling updateDom() but that does not seem to do anything. I also tried setting the wrapper to ’ ’ before it is set to the bing url path.

      Any ideas?

      Module.register("maproute", {
              defaults: {
                      latitude: '40.4406', // city latitude
                      longitude: '-79.9959', // city longitude
                      map_zoom: '12', // 1 - 21
                      map_layer: 'TrafficFlow', 
                      map_size: '500', // using this for both length and width
                      api_key: '1234567890', //  your bing maps api key
                      updateInterval: 300000 // 5 mins
              },
              getDom: function() {
                      var wrapper = ''; // tried setting this to blank to see if that would clear out the old image
                      wrapper = document.createElement("img");
                      // create the url using the custom parameters
                      wrapper.src = "http://dev.virtualearth.net/REST/v1/Imagery/Map/Road/" + this.config.latitude + "," + this.config.longitude + "/" + this.config.map_zoom + "?mapSize=" + this.config.map_size + "," + this.config.map_size + "&ml=" + this.config.map_layer + "&key=" + this.config.map_key;
                      return wrapper;
              },
      	start: function() {
      		var self = this;
      		setInterval(function() {
      			self.updateDom(); // no speed defined, so it updates instantly.
      		}, this.config.updateInterval);
      	},
      });
      
      strawberry 3.141S 1 Reply Last reply Reply Quote 0
      • strawberry 3.141S Offline
        strawberry 3.141 Project Sponsor Module Developer @wscheer
        last edited by strawberry 3.141

        @wscheer Quote from the readme Whenever your module need to be updated, call the updateDom(speed) method. It requests the MagicMirror core to update it's dom object. If you define the speed, the content update will be animated, but only if the content will realy change. So i guess your html looks all the time the same, so there is probably no real update of the dom. I suggest to try to add an timestamp somewhere and see if it gets updated then

        Please create a github issue if you need help, so I can keep track

        1 Reply Last reply Reply Quote 1
        • W Offline
          wscheer
          last edited by

          @strawberry-3-141 Ding! Ding! Ding! That was it! THANK YOU!

          Also thanks again to @alexyak and @tyho for their input.

          I’ll post the code for anyone who wants Bing Traffic maps on their Magic Mirror.

          It’s a little hackish but maybe someone will come along and write it the correct way. Basically I’m taking the pushpin (pp) parameter and just assigning two random numbers to it. Math.random() creates a number between 0 and 1. So the map never shows the pushpin on the area I’m at. This causes the information to be “new” so when updateDom() is called, the info has changed.

          For any beginners, here is my file structure setup:
          The code below is located: /var/www/html/MagicMirror/modules/maproute/maproute.js

          Module.register("maproute", {
                  defaults: {
                          latitude: '40.4406', // City latitude. Use google to get these coordinates
                          longitude: '-79.9959', // City longitude
                          map_zoom: '12', // 1 - 21
                          map_layer: 'TrafficFlow', 
                          map_size: '500', // Using this for both length and width
                          api_key: '123456789', // Your Bing maps api key
                          updateInterval: 300000 // 5 min refresh
                  },
                  getDom: function() {
                          var wrapper = '';
                          wrapper = document.createElement("img");
                          // The Math.random() calls are to place a random pushpin on the map and make the updateDom() call refresh
                          wrapper.src = "http://dev.virtualearth.net/REST/v1/Imagery/Map/Road/" + this.config.latitude + "," + this.config.longitude + "/" + this.config.map_zoom + "?mapSize=" + this.config.map_size + "," + this.config.map_size + "&pp=" + Math.random() + "," + Math.random() + "&ml=" + this.config.map_layer + "&key=" + this.config.map_key;
                          return wrapper;
                  },
          	start: function() {
          		var self = this;
          		setInterval(function() {
          			self.updateDom(5000); // I set a 5 second refresh here for testing.
          		}, this.config.updateInterval);
          	},
          });
          
          J Z 2 Replies Last reply Reply Quote 1
          • J Offline
            Jeff @wscheer
            last edited by

            @wscheer
            Is this modul still working?

            I did everthing you explained:

            in my config.js:

            {
                                  module: 'maproute',
                                  position: 'middle_center',
                                  
                            },
            

            And /var/www/html/MagicMirror/modules/maproute/maproute.js is the code from above.

            I’ve created an API for Bing maps.

            But if I run MM I just see a small image. Like the right picture could not be found.
            And if I look to the report om bing how often my API was used, it counts 0.

            Where is the mistake?

            Thanks

            W 1 Reply Last reply Reply Quote 0
            • W Offline
              wscheer @Jeff
              last edited by

              @Jeff yeah mine is still working.

              To troubleshoot you could run magic mirror in “standalone” mode. That would let you view the page on a desktop computer and you can look at the browser console to see what the errors are.

              Let me know if you need more instructions on that. I’m on a mobile right now. I could add more later.

              J 1 Reply Last reply Reply Quote 0
              • J Offline
                Jeff @wscheer
                last edited by

                @wscheer

                Thanks for your quick reply.
                Can you just tell me how to enter the “standalone” mode?
                thanks

                W 1 Reply Last reply Reply Quote 0
                • W Offline
                  wscheer @Jeff
                  last edited by

                  @Jeff yeah

                  execute the following command from the MagicMirror folder: “node serveronly”. This will start the server, after which you can open the application in your browser of choice.

                  J 1 Reply Last reply Reply Quote 0
                  • J Offline
                    Jeff @wscheer
                    last edited by

                    @wscheer
                    oh okay, I already did that and the command line said my page was created correctly.
                    But in teh browser it said page not found.

                    I think that’s a different problem and I have to handle that first…

                    1 Reply Last reply Reply Quote 0
                    • J Offline
                      Jeff
                      last edited by

                      Now I can open the MM in the webbrowser.

                      What should I do now?

                      W 1 Reply Last reply Reply Quote 0
                      • W Offline
                        wscheer @Jeff
                        last edited by

                        @Jeff Ok so now if you load the page and you still see the broken image, the browser can help you find out what the problem is.

                        If you use firefox, hit F12 and reload the magic mirror page you can see if there are any errors being reported. When I was first testing mine, I had an typo in the api string and I couldn’t really see it until I looked at it in the browser.

                        Let me know if that helps, or post some screenshots of any errors and hopefully I can help :)

                        J 1 Reply Last reply Reply Quote 0
                        • J Offline
                          Jeff @wscheer
                          last edited by Jeff

                          @wscheer

                          I’ve installed Firefox:

                          Initializing MagicMirror.  logger.js:17:4
                          Loading core translation file: translations/de.json  logger.js:20:4
                          Loading core translation fallback file: translations/en.json  logger.js:20:4
                          Load script: modules/default/alert//alert.js  logger.js:20:4
                          Module registered: alert  logger.js:20:4
                          Bootstrapping module: alert  logger.js:17:4
                          Load script: modules/default/alert//classie.js  logger.js:20:4
                          Load script: modules/default/alert//modernizr.custom.js  logger.js:20:4
                          Load script: modules/default/alert//notificationFx.js  logger.js:20:4
                          Scripts loaded for: alert  logger.js:20:4
                          Load stylesheet: modules/default/alert//ns-default.css  logger.js:20:4
                          Styles loaded for: alert  logger.js:20:4
                          alert - Load translation: translations/de.json  logger.js:20:4
                          alert - Load translation fallback: translations/en.json  logger.js:20:4
                          Translations loaded for: alert  logger.js:20:4
                          Load script: modules/maproute//maproute.js  logger.js:20:4
                          Module registered: maproute  logger.js:20:4
                          Bootstrapping module: maproute  logger.js:17:4
                          Scripts loaded for: maproute  logger.js:20:4
                          Styles loaded for: maproute  logger.js:20:4
                          Translations loaded for: maproute  logger.js:20:4
                          Load stylesheet: css/custom.css  logger.js:20:4
                          Starting module: alert  logger.js:17:4
                          All modules started!  logger.js:17:4
                          maproute received a system notification: ALL_MODULES_STARTED  logger.js:20:4
                          maproute received a system notification: DOM_OBJECTS_CREATED  logger.js:20:4
                          GET 
                          http://dev.virtualearth.net/REST/v1/Imagery/Map/Road/40.4406,-79.9959/12 [HTTP/1.1 401 Unauthorized 108ms]
                          

                          I think I have a wrong API access, but I think I did everything as described…

                          W 1 Reply Last reply Reply Quote 0
                          • W Offline
                            wscheer @Jeff
                            last edited by

                            @Jeff Ok now we are getting somewhere.

                            Try this:
                            In your browser, paste this url but add your bing maps api key at the end. Mine looks like this (i replaced some characters with #)
                            ######ss9ZpK9lZjPRNo78Xp######xM_zjDmyQ2M5GmkzcOUhW2BYmO######-2

                            http://dev.virtualearth.net/REST/v1/Imagery/Map/Road/40.4406,-79.9959/12?mapSize=500,500&ml=TrafficFlow&key= ADD YOUR API KEY HERE

                            When you do that, you should see the map all by itself. That would tell you if it was an issue with your api key itself.

                            If that works, double check the api key was copied right in the config section
                            “api_key: ‘123456789’, // Your Bing maps api key”

                            Let me know what you find

                            1 Reply Last reply Reply Quote 0
                            • J Offline
                              Jeff
                              last edited by

                              @wscheer

                              Okay your link with my API worked…

                              I put my API key in the maproute.js file as the default key. Maybe that is the problem.

                              How should the config.js file look?
                              Like this?

                                              latitude: '40.4406', // City latitude. Use google to get these coordinates
                                              longitude: '-79.9959', // City longitude
                                              map_zoom: '12', // 1 - 21
                                              map_layer: 'TrafficFlow', 
                                              map_size: '500', // Using this for both length and width
                                              api_key: 'xxxxx', // Your Bing maps api key
                                              updateInterval: 300000 // 5 min refresh
                              W 1 Reply Last reply Reply Quote 0
                              • W Offline
                                wscheer @Jeff
                                last edited by

                                @Jeff yeah. Just replace the xxxx with your API key.

                                J 1 Reply Last reply Reply Quote 0
                                • J Offline
                                  Jeff @wscheer
                                  last edited by

                                  @wscheer
                                  That’s what I did.

                                  I really don’t know what’s going on.

                                  Maybe I should just implement it as a final picture

                                  W 1 Reply Last reply Reply Quote 0
                                  • W Offline
                                    wscheer @Jeff
                                    last edited by

                                    @Jeff ok Jeff I have an idea.

                                    Can you look at your magic mirror page in server only mode again? Then if you right click and “inspect” the broken image you should see the url its trying to reach.

                                    Compare that to the url I had you copy paste in with your API that worked.

                                    Then if there is some sort of difference we should be able to track it down.

                                    J 1 Reply Last reply Reply Quote 0
                                    • J Offline
                                      Jeff @wscheer
                                      last edited by

                                      @wscheer
                                      I found the mistake ;)

                                      In your maproute.js it says “map_key” not “api_key”.

                                      W 1 Reply Last reply Reply Quote 0
                                      • W Offline
                                        wscheer @Jeff
                                        last edited by

                                        @Jeff omg I’m such a doof. I’ll go back in my previous post and fix that.

                                        I’m so glad you got it working! I searched for months to find a map like this. I hope you enjoy it :)

                                        1 Reply Last reply Reply Quote 0
                                        • Z Offline
                                          Zoltan @wscheer
                                          last edited by Zoltan

                                          @wscheer
                                          My map is working and it shows the traffic. I however also have a map that don’t update and tried the Math.random() that you mentioned. The moment i add this to the line my map disappear completely which suggest i broke something. Do i interpret it wrong and can you please advise.

                                          Like this the code is working fine:

                                          wrapper.src = ‘http://dev.virtualearth.net/REST/v1/Imagery/Map/Road/-26.0460,27.9790/13?mapSize=500,420&ml=TrafficFlow&key=Asm#####AJWIWc5o8Onf4fhH8O3IEe2e8ZcHaLTBWhx4_BWTvOW4S5xj60MuUJf4’;

                                          Like this it isn’t working:

                                          wrapper.src = ‘http://dev.virtualearth.net/REST/v1/Imagery/Map/Road/-26.0460,27.9790/13?mapSize=500,420&pp=Math.random(),Math.random()&ml=TrafficFlow&key=Asm#####AJWIWc5o8Onf4fhH8O3IEe2e8ZcHaLTBWhx4_BWTvOW4S5xj60MuUJf4’;

                                          strawberry 3.141S 1 Reply Last reply Reply Quote 0
                                          • strawberry 3.141S Offline
                                            strawberry 3.141 Project Sponsor Module Developer @Zoltan
                                            last edited by

                                            @zoltan try the following:

                                            wrapper.src = 'http://dev.virtualearth.net/REST/v1/Imagery/Map/Road/-26.0460,27.9790/13?mapSize=500,420&pp=' + Math.random() + ',' + Math.random() + '&ml=TrafficFlow&key=Asm#####AJWIWc5o8Onf4fhH8O3IEe2e8ZcHaLTBWhx4_BWTvOW4S5xj60MuUJf4';
                                            

                                            This way you use the actual value and not Math.random() as a string.

                                            Please create a github issue if you need help, so I can keep track

                                            Z 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 3 / 4
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy