Pozor! wiki.freemap.sk je archivovaná a už do nej nie je možné prispievať. Užitočné stránky budú premigrované na oficiálne wiki stránky slovenskej OpenStreetMap komunity.

Revision [4063]

This is an old revision of GpsMid made by JozefVince on 2011-12-07 14:17:23.

 

GpsMid je jednoúčelový java program pre mobilné telefóny určený na offline prezeranie máp, navigáciu, vyhľadávanie a trackovanie. Každý midlet obsahuje obslužný softvér ako i samotnú mapu (teda nie je treba pripojenie na internet). Dokáže však využiť aj mapu samostatne uloženú na karte/v pamäti telefónu (tzv. filesystem map).

http://download.freemap.sk/export/gpsmid alebo http://gpsmid.l33t.in/Slovakia/


Domovská stránka projektu je na http://gpsmid.sourceforge.net/. Z pohľadu používania je to podobný produkt ako TrekBuddy, niektoré vlastnosti má navyše, niektoré mu chýbajú. Hlavný rozdiel je v tom, že pracuje s mapami vo vektorovom formáte, umožňuje teda, narozdiel od Trekbuddy-ho, približovanie, offline routovanie, vyhľadávanie a filtrovanie dát. Takisto zvláda vytvorenie waypoint-u vo forme textu, audionahrávky (audiotagging) alebo fotografie (phototagging), či priamu úpravu OSM dát (vyžaduje internetové pripojenie). Na niektorých telefónoch umožňuje využiť na navigáciu signál BTS staníc, teda nevyžaduje GPS. V prípade jestvujúceho GPS chipu je možné pomocou gpsmid informácie o signále BTS-iek zbierať (pre opencellid.org).

Kvôli vektorovému charakteru mapy GpsMid neumožňuje zobrazenie dát iných (komerčných) providerov, tak ako to vie TrekBuddy (yahoo, google maps). Kvôli veľkosti pamäte mobilov a rýchlosti používania je na stiahnutie viac exportov pre rôzne menšie oblasti.

Inštalácia GpsMid:
Párovanie GpsMid s bluetooth zariadením:

Používanie GpsMid:
Získanie a uloženie GPX logu

Poznámky pre mapovačov:
#!/bin/bash
# amr2wav.sh - converts amr files recorded by gpsmid
# to wav format so that josm can read it and also
# create a gpx file with links to audiorecordings
#                              jose1711 gmail com
#
# syntax:
# ./amr2wav.sh <exported-waypoints-file.gpx>
#
#
#set -x
# input file is the one specified as a parameter
input=$1
# output file has '-wav' suffixed
output="${input%.gpx}-wav.gpx"
# no no, we don't want DOS line endings
sed -i 's/\r//g' "${input}"
# reset output file
> "${output}"
while read line
do
				# audiomarker means there was an audio recording done..
				echo "$line" | grep -v 'AudioMarker-GpsMid-' >> "${output}"
				if echo "$line" | grep AudioMarker &>/dev/null
				then
								audiofile="$(echo "$line" | sed 's/^<name>AudioMarker-\([^<]*\)<\/name>/\1.amr/')"
								# does the corresponding audiofile exist?
								if [ -r "$audiofile" ]
										then
										echo "$line" | sed 's/AudioMarker-GpsMid-//g' >> "${output}"
										# file exists, that's good. let's convert it to wav then
										ffmpeg -y -i "$audiofile" "$audiofile.wav" >/dev/null 2>&1 </dev/null
										# and create a <link> tag in output gpx file
										echo '<link href="'${audiofile}'.wav"/>' >> "${output}"
								fi
				fi
done < "${input}"

if [ $(ls *amr | wc -l) -ne $(ls *wav | wc -l) ] ; then
		echo "number of amr and wav files does not match. something could be WRONG"
fi


Vo windows je kvôli rýchlosti spracovania výhodné používať alternatívu v perle (testované s ActivePerlom):
#!/usr/bin/perl
# synopsis:
#    gpx2wav.pl filename-to-convert.gpx

use strict;
use warnings;
if (! scalar @ARGV) {
		print "missing argument!\n";
		exit 1;
}
open IN, $ARGV[0] or die('File ',$ARGV[0],' not found');
s/(.+?)(\.gpx|)$/$1-wav.gpx/ for (my $output = $ARGV[0]);
open OU, ">${output}" or die('Cannot create output file (check permissions for '.${output}.')');
while (<IN>) {
print OU $_;
if (/AudioMarker/){
		chomp;
		s/^<name>AudioMarker-([^<]*)<\/name>/$1.amr/;
		my $audiofile = $_;
		if (-e ${audiofile}) {
				system("ffmpeg -y -i ".$audiofile." ".$audiofile.".wav");
				print OU '<link href="'.${audiofile}.'.wav"/>'."\n";
		}
}
}
close IN;
close OU;


pre download cez bluetooth a automatické spracovanie najnovších súborov môžte na linuxe využiť tento skript:
#!/bin/bash
# blueosm.sh - downloads most recent gpx/wpts from gpsmid
# via bluetooth, converts amr files to wav (requires amr2wav.sh)
# and opens everything up in josm

# requirements:
# - obextool + paired mobile phone (set your pc to authenticated to allow automated
#   transfers)
# - amr2wav.sh
# - (optional) josm

# successfully tested on arch linux with nokia e51
#              jose 1711 gmail com, may 2011

# bluetooth address of your device
btaddress=XX:XX:XX:XX:XX:XX
# directory in your phone where
# exported tracks/waypts go to
trackslocation=E:/gpsmid-tracks
# directory in your phone where
# media (amr) files go to
medialocation=${trackslocation}/media
# where to save tracks/wpt locally
localdir=~/osm
# full path to amr2wav.sh script
amr2wav=~/bin/amr2wav.sh

if [ ! -d "${localdir}" ]; then
	echo "directory ${localdir} does not exist, creating it.."
	mkdir -p ${localdir} || echo "can't create, exiting.." && exit 1
	fi

if [ ! -w "${localdir}" ]; then
	echo "directory ${localdir} does not have writeable permissions, exiting.."
	exit 1
	fi

if [ ! -x ${amr2wav} ]; then
	echo "file ${amr2wav} does not exist and/or is not executable, exiting.."
	exit 1
	fi

cd ${localdir}
export DISPLAY=:0

hciconfig | grep -q UP
if [ $? -ne 0 ]; then
	echo "bluetooth stack is DOWN. exiting.."
	exit 1
fi

obexftp -b ${btaddress} -l C: &>/dev/null
if [ $? -eq 1 ]; then
	echo "mobile too far or bluetooth off?"
	exit 1
fi

free=$(obexftp -b ${btaddress} -X 2>&1 | sed -n '/Free/s/<Free>\([^<]*\)<\/Free>/\1/p' | tail -1 | tr -d '\r')

if [ ${free} -lt 30000000 ]; then
	echo "only $((free/1024/1024)) MB of free space on data card, this may be really bad"
	exit 1
fi

latest_date=$(obexftp -b ${btaddress} -l ${trackslocation}/  2>&1 | sed 's/ *<file name="\([^"]*\)" size="\([^"]*\)" modified="\([^"]*\)".*/\1;\2;\3/'|sort -t';' -k3|tail -1|sed 's/\([0-9]*-[0-9]*-[0-9]*\).*/\1/')
mkdir ${latest_date}
cd ${latest_date}

obexftp -b ${btaddress} -l ${trackslocation}/ 2>&1 | sed 's/ *<file name="\([^"]*\)".*/\1/' | grep ^${latest_date} | while read -r file
	do
		  echo "getting $file..."
		  obexftp -b ${btaddress} -g "${trackslocation}/${file}"
		  until [ $? -eq 0 ]; do
				obexftp -b ${btaddress} -g "${trackslocation}/${file}"
				sleep 1
				done
		  sleep 1
	done

obexftp -b ${btaddress} -c ${medialocation} -l 2>&1 | grep amr | grep ${latest_date} | sed 's/ *<file name="\([^"]*\)".*/\1/' | while read -r amr
	do
	echo "getting sound file ${amr}..."
	obexftp -b ${btaddress} -g "${medialocation}/${amr}"
		   until [ $? -eq 0 ]; do
				obexftp -b ${btaddress} -g "${medialocation}/${amr}"
				sleep 1
				done
	sleep 1
	done

ls | grep -- -waypoints.gpx$ | while read -r wpt
	do
	${amr2wav} ${wpt}
	done

josm *gpx



Todo List

CategorySoftware
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki