Stap 4: Bron
Hieronder de eenvoudige code schreef ik dat doet het volgende:
- Vastleggen van GPS info
- Zoekt u naar de record van de $GPGGA (meer informatie over NMEA in http://gpsinformation.org/dale/nmea.htm
- Verzamelen van lengte- en breedtegraad / NMEA omzetten in Dec
- Genereren van een link van Google Maps met de GPS-info
Aangezien Google Maps API een sleutel vereist, ik heb gemaakt een, maar ik ommited mijn in de code. Zorg ervoor dat u een API-sleutel voor u maken door de volgende https://developers.google.com/maps/documentation/static-maps/
/*jslint node:true, vars:true, bitwise:true, unparam:true */ /*jshint unused:true */ // Leave the above lines for propper jshinting var GPSSensor = require('jsupm_ublox6'); var myGPSSensor = new GPSSensor.Ublox6(0); setTimeout(getGPSInfo(), 1000); if (!myGPSSensor.setupTty(GPSSensor.int_B9600)) { console.log("Failed to setup tty port parameters"); process.exit(0); } bufferLength = 256; var nmeaBuffer = new GPSSensor.charArray(bufferLength); function getGPSInfo() { if (myGPSSensor.dataAvailable()) { var rv = myGPSSensor.readData(nmeaBuffer, bufferLength); var GPSData, dataCharCode, isNewLine, lastNewLine; var numlines= 0; if (rv > 0) { GPSData = ""; // read only the number of characters // specified by myGPSSensor.readData for (var x = 0; x < rv; x++) { var data = nmeaBuffer.getitem(x); GPSData += data; } console.log(processData(GPSData)); } if (rv < 0) { // some sort of read error occured console.log("Port read error."); process.exit(0); } } } function processData(rawData) { var data = rawData.split(","); var index = data.indexOf("$GPGGA"); var lat = data[index+2]; var lon = data[index+4]; var latDec = convertNmeaToDec(lat); var lonDec = convertNmeaToDec(lon); if(data[index+3] == "S") latDec = latDec * -1; if(data[index+4] == "W") lonDec = lonDec * -1; var url = "https://maps.googleapis.com/maps/api/staticmap?center="; url += -latDec; url += ","; url += -lonDec; url += "&zoom=14&size=600x300&key=*** API KEY OMMITED! PLACE YOU OWN KEY HERE ***"; return url; }</p><p>// Function to convert the NMEA format from GPS to Decimal // This function is needed to show in Google Maps. // Thanks to http://www.tma.dk/gps/ function convertNmeaToDec(nmea) { var deg = (nmea / 100); var decPos = deg + ((nmea - (deg * 100)) / 60); return decPos; } // Print message when exiting process.on('SIGINT', function() { console.log("Exiting..."); process.exit(0); });