This object is in archive! 

[CZ] livetracking + kml NetworkLink

Mara shared this question 9 years ago
Answered

Dobry den,

Chtel jsem se zeptat, mam udelany php script pro

livetraking, a kml networklink ktery mam nakopirovany v Locus/mapitems

vsechno mi funguje jak ma, jenom by me zajimalo jestli jde tato polozka

vycentrovat na mape nebo vyhledat, nabidku "Vycentrovat polozku" tam mam

ale po kliknuti se nic nedeje, zajimalo by me jestli tato funkce pro

tyto body funguje? nebo jestli mi nechybi nejaka promenna v KML souboru.

Replies (12)

photo
1

Zdravím,


v tomto případě se jedná o nedodělek v Locusu. Centrace centruje na data obsažená v načteném souboru. Nicméně data načtená později díky netowrk linku již v Locusu nejsou napojena na soubor který to celé začal. Takže centrace vlastně nic nedělá. Rád bych toto upravil a vylepšil, nicméně nápadů a věcí na práci je tolik ... díky za pochopení a jsem rád že alespoň Network link funguje jak má :).

photo
1

Diky za info, urcite bych do budoucna funkci vycentrovani uvital o hodne by ujednodusila hledani techto bodu (kamaradu) na mape ,)


Jinak pokud by mel nekdo zajem at se klidne ozve dam tady skripty i navodem, protoze jsem hledal postup jak udelat aby se kamaradi vzajemne videli v Locusu treba, na vyslapu, na cyklo vyjizce atd... a nenasel sem nic krome tohoto fora http://help.locusmap.eu/topic/kml-networklink-shifting-on-refresh tak jsem pouzil a upravil skripty od gynta

photo
1

Fajn, díky též.


Věřím že se někdo ozve. Ať slouží do té doby, než bude nahozen interní systém pro live-tracking od nás ;) (doufáme že to bude v prvním čtvrtletí 2016)

photo
1

jak jsem slibil přidávám skripty. Skripty jsou dva + kml, jede skript in.php obstarava zpracovani a ulozeni dat z Live trackingu a druhy skript out.php obstarava pripravu dat pro KML. Skrypty muzete nahrat na nejaky webovy prostor s PHP treba u seznamu na ( sweb.cz )

je treba vytvorit slozku pro ikony a do ni kakopirovat ikony 927351f32e5902da4f329851ceed7b3d 014c91481fde7ee82c890f243524b796 ikony prikladam v priloze


struktura ulozeni na web pak vypada takto:

ikony/

in.php

out.php


skript: in.php

  1. <?php
  2. $username = $_GET[username];
  3. $lat1 = $_GET[lat];
  4. $lon1 = $_GET[lon];
  5. $atimein = date('j/m/Y H:i:s');
  6. $aofftimein = Time();
  7. $verzein = "LTS 1_8 in";
  8. $soubor = fopen("./$username.txt", "w");
  9. $radek1 = "$lon1" . "|" . "$lat1\n";
  10. $radek2 = "$atimein" . "|" . "$aofftimein" . "|" . "$verzein\n";
  11. $data = "$radek1" . "$radek2";
  12. fputs($soubor, $data, strlen($data));
  13. fclose($soubor);
  14. $soubor = fopen("./$username.trk", "a");
  15. $radek1 = "$lon1" . "," . "$lat1\n";
  16. fputs($soubor,$radek1,strlen($radek1));
  17. fclose($soubor);
  18. ?>


skript: out.php

  1. <?php
  2. $data = $_GET[data];
  3. list ($username, $barva) = explode('_', $data);
  4. $atimeout = date('j/m/Y H:i:s');
  5. $aofftimeout = Time();
  6. $verzeout = "LTS 1_8 out";
  7. $soubor = fopen ("./$username.txt", "r");
  8. $radek1 = fgets($soubor, 4096);
  9. list ($lon1, $lat1) = explode('|', $radek1);
  10. $radek2 = fgets($soubor, 4096);
  11. list ($atimein, $aofftimein, $verzein) = explode('|', $radek2);
  12. fclose($soubor);
  13. $soubortrk = fopen("./$username.trk", "r");
  14. $cesta = fread ($soubortrk, filesize ("./$username.trk"));
  15. fclose ($soubortrk);
  16. $ikonastatus = $aofftimeout-$aofftimein;
  17. if (($ikonastatus>60) && ($ikonastatus<1800)){
  18. $ikona = off_cervena;
  19. $kml = array('<?xml version="1.0" encoding="UTF-8"?>');
  20. $kml[] = ';';
  21. $kml[] = '<Document>';
  22. $kml[] = '<Style id="myicon">';
  23. $kml[] = '<IconStyle>';
  24. $kml[] = 'http://geotracktest.sweb.cz/ikony/'.$ikona.'.png</href></Icon>;;';
  25. $kml[] = '<hotSpot x="0.5" y="0" xunits="fraction" yunits="fraction" />';
  26. $kml[] = '</IconStyle>';
  27. $kml[] = '</Style>';
  28. $kml[] = '<Placemark id="'.$username.'">';
  29. $kml[] = '<name>'.$username.'</name>';
  30. $kml[] = '<description><![CDATA[<hr>aktualizace in '.$atimein.'<br>aktualizace out
  31. '.$atimeout.'<br>prodleva '.$ikonastatus.'s<br>verze in '.$verzein.'<br>verze out '.$verzeout.'<hr>]]>
  32. </description>';
  33. $kml[] = '<styleUrl>myicon</styleUrl>';
  34. $kml[] = '<Point>';
  35. $kml[] = '<coordinates>'.$lon1.','.$lat1.'</coordinates>';
  36. $kml[] = '</Point>';
  37. $kml[] = '</Placemark>';
  38. $kml[] = '</Document>';
  39. $kml[] = '</kml>';
  40. //output the kml
  41. $kmlOutput = join("\n", $kml);
  42. header('Content-type: application/vnd.google-earth.kml+xml');
  43. echo $kmlOutput;
  44. }
  45. else {
  46. $ikona = pesi_modra_tm;
  47. $kml = array('<?xml version="1.0" encoding="UTF-8"?>');
  48. $kml[] = '
  49. <NetworkLink>
  50. <name>NASTAV NICK</name>
  51. <flyToView>1</flyToView>
  52. <Link>
  53. <href>http://web skriptu/out.php?data=NASTAV NICK_b20000ff</href>;
  54. <refreshMode>onInterval</refreshMode>
  55. <refreshInterval>10</refreshInterval>
  56. </Link>
  57. </NetworkLink>
  58. </kml>

tady je treba nastavit nick kamarada ktereho chcete videt na mapě(pro kazdeho kamarada je treba vytvorit tento soubor), a muzete si pro neho i nastavit barvu stopy (je to b20000ff = b2 - pruhlednost, 00 - nastaveni pro modrou, 00 - nastaveni pro zelenou, ff - nastaveni pro červenou, nastavovat muzete v rozmezi 00 az ff kdy ff je plna barva. Take je treba nastavit odkaz na web kde je ulozen skript out.php


Live tracking v Lokusu se nastavuje takhle

e2ede7ae011c0bf08f8baf2782d99105

musi se nastavit web kde je ulozen skript in.php a take se musi nastavit tvuj nick

photo
1

Díky Maro,


myslím že kolega Michal může dát alespoň odkaz na tento topic do našeho manuálu, aby lidi zajímající se o tuto problematiku, se k těmo informacím snadněji dostali.

photo
1

jj klidně, taky ty skripty muže i někdo upravit, jsem v PHP uplný začátečník začal jsem s PHP teprve před měsícem takže je to můj první výtvor, možná jdou některé věci udělat jednodušeji tak pokud se na to mrkne nějaký profik budu jen rád.

photo
1

přidávam ještě nějaké Screenshoty pro představu jak to vypadá


dva sledovaní kamaradi (oba jsou online)

e51f5d9acff5762502cc765d355e0b92


jeden sledovaný kamarád (je online)17f22e43fd89e97474256fd47a2aea6e


jeden sledovaný kamarád (je 1min. offline)17fab07e510b62da7c4421c2d0a4575b


jeden sledovaný kamarád (je 30min. offline - vymaže se trasa)8c266fb08a9496f853747c727d068a74

photo
1

This post seems to be very interesting. Pity that us "otherwise speaking" can't understand Czech language.


Could somebody translate it? Just an abstract of the problem and of the solution.

Many thanks

photo
1

For English speaking users:


Problem - Mara created a workaround solution of Locus-to-Locus livetracking using KML networklink and some DIY scripts. However, items acquired from KML networklink can't be centered in Locus so he has a problem locating his connected Locus friends

Answer - Locus can center items that are a part of KML file but not those that are acquired later via networklink

Solution - this option will be added later OR, which is more probable, this workaround won't be necessary as we are planning to launch our own livetracking service in 1Q/2016.


Mara published his two scripts, in.php and out.php that should be placed on some web space containing PHP and NASTAV NICK.kml file that is to be placed in Locus/mapItems directory.

  • in.php takes care of processing and storing data from Livetracking
  • out.php prepares data for KML
  • two attached icons indicate status of tracked friends and must be placed in a folder 'ikony' in the same web space
  • KML file - you have to set nick of your friend who you want to see on map (for each friend one copy of the KML file) and you can also set his track color (it's b20000ff = b2 - opacity, 00 - settings of blue, 00 - settings for green, ff - settings for red - set range is from 00 to ff when ff is full color. Don't forget to set the URL of the web where the out.php script is stored


Then there's a screenshot of Locus livetracking feature settings and a few samples how it works

photo
1

Thank you a lot. Very fast and smart!

photo
1

Díky za přidání KML data browseru, hledání je teď mnohem snazší. Díky a preju hezké prožití vánočních svátku.

photo
1

Děkujeme Maro, přejeme nápodobně!

Replies have been locked on this page!