Live tracking [3]: Trasujeme nejen česky
Protože mám vazbu na Pavola, jednoho z vývojářů, jemuž také touto cestou děkuji za odezvu, zeptal jsem se ho, zda se nebude něco na výstupu měnit a byl jsem ujištěn, že určitě ne. Rozhodl jsem se tedy dokonat dílo vlastními silami. Zdá se, že se to podařilo a skript funguje v českém prostředí i s případným českým datumem.
Graf, případně profil si nastavte jako v minulém dílu, jen samotný skript si zaměňte za tento níže. Jen si nezapomeňte doplnit jako obvykle svůj string do třetího řádku, pro připojení ke svému dokumentu, jak bylo vysvětleno v prvním dílu. Ve vlastnostech dokumentu ponechte lokalizaci na Česká Republika.
function doGet(e) {
var app = UiApp.createApplication();
var sp = SpreadsheetApp.openById("0Ag...........");
// insert new row
sp.insertRowBefore(1);
if(e) {
var d = new Date(Date(e.parameter.timestamp))
sp.getRange("A1").setValue(parseFloat(e.parameter.lat));
sp.getRange("B1").setValue(parseFloat(e.parameter.lon));
sp.getRange("C1").setValue(Math.round((parseFloat(e.parameter.speed/1000*60*60))) + " km/h");
sp.getRange("D1").setValue(parseFloat(e.parameter.altitude));
sp.getRange("E1").setValue(parseFloat(e.parameter.hdop));
sp.getRange("F1").setValue(d);
}
return app;
}
Skript jak vidíte není napsán substitucí a tak by měl fungovat pro jakoukoli lokalizaci. Je jen třeba ho pořádně odzkoušet. Z mých zatím sporých testů se zatím zdá, že funguje dobře. Tady je jeho testovací výstup.
49,005554 14,508303 87 km/h 452 5 9.2.2012 16:01:43
49,003353 14,504333 84 km/h 448 5 9.2.2012 16:01:27
49,001125 14,500414 81 km/h 445 5 9.2.2012 16:01:11
48,99937 14,497279 51 km/h 443 5 9.2.2012 16:00:55
48,99815 14,496169 34 km/h 441 5 9.2.2012 16:00:39
48,997757 14,494335 35 km/h 440 5 9.2.2012 16:00:23
48,996746 14,492489 38 km/h 439 5 9.2.2012 16:00:07
48,995644 14,490269 52 km/h 438 5 9.2.2012 15:59:51
Kdo by chtěl měřit rychlost na jedno desetinné místo, tak jsem přišel na jedno řešení pomocí toFixed metody, ale tam se zase plíživě vkradla desetinná tečka. Naštěstí to u tohoto údaje zrovna nevadí, jelikož se stejně konvertuje na text přidávanými jednotkami kilometry za hodinu. Kdo tedy chce, může řádek s buňkou „C1“ nahradit tímto, a získá jedno desetinné místo navíc
sp.getRange("C1").setValue((parseFloat(e.parameter.speed/1000*60*60).toFixed(1)) + " km/h");
Kdyby někdo místo krátkého data, chtěl dlouhý formát v jazyku podle lokalizace dokumentu, nahraďte řádek s buňkou „F1“ za tento. Datum pak bude obsahovat dlouhý název měsíce a bude vypadat takto: 9. únor 2012 17:58:41 CET
sp.getRange("F1").setValue(d.toLocaleString());
Posted in Návody on úno 09, 2012.
Štítky: trasy , vývoj , live tracking
Tento příspěvek je součástí série: Live tracking.