- From: bz <bz@datenkueche.com>
- Date: Wed, 31 Aug 2005 17:14:30 +0200
- To: www-svg@w3.org
Hi
Here is an update for "Enable to use of GPS Coordinates in SVG":
Requirements:
long,lat, height above See Level, time of measurement,
Status of Satelite Connection
Events:
There are some events a GPS modul COULD send to SVG:
onGPSChangeStatus,
onGPSChangePosition,
onGPSsignal,
onGPSmove,
onGPSConnectionLost
onGPSConnectToSatelite
...
Simple Event Model:
"onGPSsignal"
If the GPS modul receives a signal and calculates position, the
Event "onGPSsignal" will be fired.
If the GPS modul does not receive a proper signal, there is NO
Event (no error event).
SVG may loose focus, the onSVGSignal event is still important for
drawing traces.
Pointer Device vs. GPS Device
GPS can loose connection to satelite
GPS fires onGPSsignal in variable time interval. If the GPS modul
does not move, the coordinates maybe will not change - but the
"onGPSsignal" Event fires. (100% CPU for redraw?)
Not covered:
How often the GPS modul fires the event "onGPSstatus" is not defined
Privacy Protection
The Term "GPS" is not good if Gallileo Signal is received
This is my conclusion:
================
<item title="to be done in SVG or DOM or XML Events or Salzamt">
evt.gpsLong (signed dezimal; eample: "-56.234433")
evt.gpsLat (signed dezimal; example: "23.3433")
evt.gpsHeight (in meter above elipsoid; example "2145.5" (no unit))
evt.gpsTime (GMT, timeformat ?????)
EVENT: onGPSsignal
</item>
(maybe not so important: precision, number of satelites)
-------------------------------------------------------------------------
Privacy Protection:
There must be a mechanism to prevent giving GPS location to SVG if
the User don't want (similar to cookie).
If this could be turned on/off using javascript it would be useless
-> not in the scope.
If GPS data are available they will be used as parameter for
Client/Server communication.
There is no mechanism to use GPS Data in ClientSide scripting and
protect privacy at the same time.
Done by Javascript (or other languages):
o other units like feed
o speed, direction
o convert to other Coordinate Systems (enjoy the WGS-84 calculation)
o statuscheck
========================================================
Here an example how to use GPS in SVG - this is not real ecmaScript - it
will not work without changes!!!
<svg onGPSsignal="redrawMap(evt);|setInterval("checkstatus","1000")|"
xmlns="http://www.w3.org/2000/svg" version"=1.2 Tiny">
<!--
SVG Map that follows GPS coordinates
description: The center of the map is the GPS position. If GPS
coordinates change the map will move and a trace is drawn
author: Bernhard Zwischenbrugger
copyright: Public Domain //copy, sell, destroy - do what you want with this
this is pseudo code (not real javascript / not runable)
-->
<script type="text/javascript">
//globals
var lastupdate=null;
function redrawMap(evt){
//onGPSsignal fires only if there is a connection to satelites
lastupdate = evt.gpsTime;
movinger=svgDocumeng.getElementById('movinger');
movinger.setAttribute("translate","translate("+evt.gpsLong
*-1+","+evt.gpsLat *-1+")";
drawPath(evt);
}
function checkstatus(){
//pseudo code - time format not clear -> calculation not possible
var now=new Date();
if((now - lastupdate) > 10 min){
alert("signal lost");
}
}
function drawPath(evt){
var path=svgDocument.getElementById('trace');
var points=path.getAttribute('d');
points=points.concat(" l "+evt.long+" "+evt.lat);
path.setAttribute("d",points);
}
</script>
<!-- center is 0,0 -->
<circle r="20" fill="none" stroke="black"/>
<!-- move to gps coordinates (redrawMap)-->
<g id="movinger">
<!-- scale your view -->
<g translate="scale(5600)" id="scalinger">
<!-- satelite image - have google map in mind -->
<image x="-43.2342342" y="23.2342344" width="0.00100"
height="0.00100" xlink:href="http://kh.google.com/kh?v=3&t=trtqttt"/>
<!-- now the Metadata -->
<circle id="new york" x="-43.2323423" y="23.223423"
r="0.0000100" fill="none" stroke="red"/>
<circle id="vienna" x="-43.2333423" y="23.225423"
r="0.0000100" fill="none" stroke="red"/>
<path id="trace"/>
</g>
</g>
</svg>
-----
Links:
======
GPS Communication format:
NMEA-0183:
http://de.wikipedia.org/wiki/NMEA
In German:
http://www.kowoma.de/gps/zusatzerklaerungen/NMEA.htm
--------
GoogleMaps
Version: 2
http://en.wikipedia.org/wiki/Plate_carr%C3%A9e_projection
Version: 3
http://de.wikipedia.org/wiki/Mercator-Projektion
GPS Trace in XML Format:
http://www.topografix.com/fells_loop.gpx
thanks for reading
Bernhard Zwischenbrugger
Received on Wednesday, 31 August 2005 15:15:13 UTC