FAQ |
Kalender |
2009-08-20, 13:31 | #1 | |||
|
||||
Nykomling
|
Jag har nyligen köpt en 3G-router med stöd för USB-GPS. Routern kan skicka upp en fil innehållandes GPRMC sentences via ftp till valfri server. Jag skulle nu vilja få tag i ett javascript som gör att jag kan bädda in Google maps på min webbplats för att på så vis få positionering i realtid.
Jag kör för närvarande positioneringen (www.nightrider.se/mofcam2.html) via en programvara på PC som skickar position 1 gång/min när den är igång och det fungerar bra, men jag vill slippa ha datorn igång med allt vad det innebär och köpte bl.a. därför ny router. Någon som har något tips på vart jag kan hitta ett script som använder en GPRMC-fil och Google maps? API har jag redan skapat hos Google maps och allt är confat i routern, nu saknar jag bara ett script. Jag ser fler användningsområde för detta på jobbet ifall det visar sig fungera bra, men först vill man ju testa lite |
|||
Svara med citat |
2009-08-20, 14:20 | #2 | ||
|
|||
Medlem
|
Det där låter ju helspännande!
Som jag förstår det så är innehållet i GPRMC-filer rätt enkla att utläsa. Läser från dessa sidor: http://www.codepedia.com/1/The+GPRMC+Sentence http://aprs.gids.nl/nmea/#rmc Egentligen behöver ju du bara använda valfritt språk (PHP/ASP) för att läsa av filerna som laddats upp till FTP'n och plocka ut den senaste inlagda raden för att få koordinaterna. Vill du kunna backa i historiken så kan du ju istället lägga in koordinaterna i en databas med datumstämpeln som anger när du befann dig på dessa koordinater. I den andra länken så visas en platsangivelse ur en GPRMC-fil på följande sätt: $GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,1 91194,020.3,E*68 En kommaseparerad sträng med följande betydelser: 1 220516 Time Stamp 2 A validity - A-ok, V-invalid 3 5133.82 current Latitude 4 N North/South 5 00042.24 current Longitude 6 W East/West 7 173.8 Speed in knots 8 231.8 True course 9 130694 Date Stamp 10 004.2 Variation 11 W East/West 12 *70 checksum I PHP skulle du då kunna få ut uppgifterna på följande sätt: <?php $string = '$GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7, 191194,020.3,E*68'; $parts = explode(",",$string); $latitud = $parts[3]; $longitud = $parts[5]; $tidpunkt = substr($parts[1],0,2).":".substr($parts[1],2,2).":".substr($parts[2],4,2); $dag = substr($parts[9],0,2); $manad = substr($parts[9],2,2); $ar = substr($parts[9],4,2); $tid_timmar = substr($parts[1],0,2); $tid_minuter = substr($parts[1],2,2); $tid_sekunder = substr($parts[1],4,2); $timestamp = mktime($tid_timmar,$tid_minuter,$tid_sekunder,$man ad,$dag,$ar); $v_dir = $parts[4]; $h_dir = $parts[6]; print date("Y-m-d, H:i:s",$timestamp)." befann jag mig på longitud ".$longitud." och latitud ".$latitud." och färdades i ".$v_dir.$h_dir." riktining."; ?> |
||
Svara med citat |
2009-08-20, 16:25 | #3 | |||
|
||||
Nykomling
|
Text i all ära, men jag vill nog presentera det hela i kartform på min webbplats ungefär som det ser ut idag (se länk ovan).
Om du kollar så ser du även att jag har historik i dagsläget (grönt streck). Måste ju finnas något bra sätt att trycka in det här i Google maps och sedan bädda in det på egen webbplats? |
|||
Svara med citat |
2009-08-20, 16:45 | #4 | ||
|
|||
Nykomling
|
Är det en Dovado UMR du har?
|
||
Svara med citat |
2009-08-20, 21:28 | #5 | ||
|
|||
Medlem
|
Citat:
Jag ville bara visa hur enkelt det är att plocka ut koordinaterna ur din GPRMC-fil för att sedan mata in dessa i Google Maps. En förlängning på min kod skulle kunna se ut så här: <html> <head> <script src="http://maps.google.com/maps?file=api&v=2&sensor=true_or_false& ;key=DIN_API_NYCKEL" type="text/javascript"></script> </head> <body> <div id="min_karta" style="width:500px;height:400px;"></div> <?php $string = '$GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7, 191194,020.3,E*68'; $parts = explode(",",$string); $latitud = $parts[3]; $longitud = $parts[5]; $tidpunkt = substr($parts[1],0,2).":".substr($parts[1],2,2).":".substr($parts[2],4,2); $dag = substr($parts[9],0,2); $manad = substr($parts[9],2,2); $ar = substr($parts[9],4,2); $tid_timmar = substr($parts[1],0,2); $tid_minuter = substr($parts[1],2,2); $tid_sekunder = substr($parts[1],4,2); $timestamp = mktime($tid_timmar,$tid_minuter,$tid_sekunder,$man ad,$dag,$ar); ?> <script type="text/javascript"> window.onload = function(){ var map = new GMap2(document.getElementById("min_karta")); var coords = new GLatLng(<? print $latitud;?>,<? print $longitud;?>); map.setCenter(coords); marker = new GMarker(coords); map.addOverlay(marker); } </script> </body> </html> Jag såg dock att koordinaterna i GPRMC-filerna hade placerat kommatecknet lite galet. Läs mer om det här: http://groups.google.com/group/Googl...fa1c381e?pli=1 |
||
Svara med citat |
2009-08-20, 21:39 | #6 | ||
|
|||
Medlem
|
Man skulle kunna montera en sån där router på en gömd plats i bilen som hela tiden laddar upp bilens position till en FTP.
Så fort bilen blir stulen kontaktar man Polisen och uppger exakt longitud och latitud där bilen befinner sig för tillfället. |
||
Svara med citat |
2009-08-20, 22:00 | #7 | |||
|
||||
Nykomling
|
Ja, det är en Dovado UMR, en trevlig liten låda måste jag säga. Har inte hunnit köra några längre tester ännu, men än så länge verkar allt funka...
Det är bara realtidspositioneringen jag vill ha igång oxå.. |
|||
Svara med citat |
2009-08-20, 22:12 | #8 | |||
|
||||
Nykomling
|
objx: Nu börjar det likna något!!!
Har nu haft routern igång ett tag och den skapar filer efterhand, nya filnamn baserat på tid och datum (t.ex: D0016A61055C6_20090820_174409.LOG). Dessa filer innehåller 15 positioner för de senaste 15 minutrarna. Ex: $GPRMC,173110.000,A,5559.2721,N,01359.2378,E,0.49, 98.44,200809,,*33 $GPRMC,173210.000,A,5559.2739,N,01359.2153,E,3.46, 242.42,200809,,*0D Det skapas även en annan typ av fil där filnamnen börjar på "D", t.ex: T0016A61055C6_20090820_174409.LOG, innehållet i dessa filerna ser t.ex ut så här: 173110.000;200809;55.9879;13.9873 173210.000;200809;55.9879;13.9869 Vad denna andra fil har för nytta vet jag inte - är inte så insatt i formatet ännu. Hur skall jag göra för att scriptet skall använda sig av samtliga (eller t.ex. de senaste 24 filerna (6 timmar) i en mapp? |
|||
Svara med citat |
2009-08-21, 11:07 | #9 | ||
|
|||
Medlem
|
Citat:
Här finns en snabb tutorial: http://www.tizag.com/phpT/fileread.php Jag kan hjälpa dig att sätta ihop systemet mot en slant om du känner att det är värt det. Hör av dig i såna fall! |
||
Svara med citat |
2009-08-28, 16:33 | #10 | |||
|
||||
Nykomling
|
Tackar för hjälpen så länge, jag tror det ordnar sig!
Jag får väl hojta till när det är klart - om någon har några tips under tiden så är ni såklart välkomna med dem |
|||
Svara med citat |
Svara |
Ämnesverktyg | |
Visningsalternativ | |
|
|