Initial import
authorAki Koskinen <maemo@akikoskinen.info>
Sat, 30 Jan 2010 14:53:33 +0000 (16:53 +0200)
committerAki Koskinen <maemo@akikoskinen.info>
Sat, 30 Jan 2010 15:04:31 +0000 (17:04 +0200)
29 files changed:
AUTHORS [new file with mode: 0644]
COPYING [new file with mode: 0644]
ChangeLog [new file with mode: 0644]
Makefile.am [new file with mode: 0644]
NEWS [new file with mode: 0644]
README [new file with mode: 0644]
antigen.sh [new file with mode: 0644]
autogen.sh [new file with mode: 0755]
configure.ac [new file with mode: 0644]
coordinate-system.c [new file with mode: 0644]
coordinate-system.h [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/rules [new file with mode: 0644]
doc/coordinate_systems/JHS153.pdf [new file with mode: 0644]
doc/coordinate_systems/JHS154.pdf [new file with mode: 0644]
doc/coordinate_systems/JHS154_liite1.pdf [new file with mode: 0644]
doc/coordinate_systems/JHS154_liite2.pdf [new file with mode: 0644]
doc/coordinate_systems/coordtrans.fgi.fi [new file with mode: 0644]
doc/coordinate_systems/kkjgps.htm [new file with mode: 0644]
doc/coordinate_systems/kkjgps_files/urchin.js [new file with mode: 0644]
lib-timeout-home-widget.c [new file with mode: 0644]
lib-timeout-home-widget.h [new file with mode: 0644]
location-provider.c [new file with mode: 0644]
location-provider.h [new file with mode: 0644]
timeout-home-widget.desktop.in [new file with mode: 0644]
welcome [deleted file]

diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..36d7ace
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+Maemo Team <xxxx@maemo.org>
diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..f083aa1
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,22 @@
+Copyright (C) 2009 Nokia Corporation. All rights reserved.
+
+This maemo code example is licensed under a following MIT-style license.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE 
diff --git a/ChangeLog b/ChangeLog
new file mode 100644 (file)
index 0000000..bff24a6
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,3 @@
+2009-06-24  Maemo Team  <xxxx@maemo.org>
+
+       * Autotoolized and debianized
diff --git a/Makefile.am b/Makefile.am
new file mode 100644 (file)
index 0000000..8b20f18
--- /dev/null
@@ -0,0 +1,15 @@
+# We invent desktoplib_LTLIBRARIES instead of the normal lib_LTLIBRARIES,
+# so we can specify the non-standard installation directory.
+desktoplib_LTLIBRARIES =  lib-timeout-home-widget.la
+desktoplibdir = $(HILDON_DESKTOP_LIB_DIR)
+
+lib_timeout_home_widget_la_SOURCES = lib-timeout-home-widget.c lib-timeout-home-widget.h location-provider.h location-provider.c
+lib_timeout_home_widget_la_LIBADD = $(EXAMPLE_LIBS)
+
+AM_CFLAGS = -Wall $(EXAMPLE_CFLAGS)
+
+# .desktop file
+desktopdir = $(HILDON_HOME_DESKTOP_DIR)
+desktop_DATA = timeout-home-widget.desktop
+
+DISTCLEANFILES = $(desktop_DATA)
diff --git a/NEWS b/NEWS
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..1c7902a
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+Example Home widget. Provides TimeOut applet for the Home Area of the desktop.
diff --git a/antigen.sh b/antigen.sh
new file mode 100644 (file)
index 0000000..b877a0b
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -ex
+if test -f Makefile; then
+  make distclean
+fi
+rm -f *.tar.* *.tgz
+rm -Rf autom4te.cache
+rm -f Makefile.in aclocal.m4 configure depcomp install-sh missing ltmain.sh config.guess config.sub config.h.in mkinstalldirs INSTALL
diff --git a/autogen.sh b/autogen.sh
new file mode 100755 (executable)
index 0000000..27a68ef
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+set -ex
+autoreconf --install --force 
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..ebe86df
--- /dev/null
@@ -0,0 +1,26 @@
+AC_PREREQ(2.61)
+AC_INIT([hildon-timeout-desktop-widget-example], [0.1])
+AC_CONFIG_SRCDIR([lib-timeout-home-widget.c])
+AM_INIT_AUTOMAKE
+AC_CONFIG_HEADER([config.h])
+
+AC_PROG_CC
+AC_HEADER_STDC
+AC_PROG_INSTALL
+AM_PROG_LIBTOOL
+
+PKG_CHECK_MODULES(EXAMPLE, hildon-1 libhildondesktop-1 gtk+-2.0 liblocation)
+AC_SUBST(EXAMPLE_CFLAGS)
+AC_SUBST(EXAMPLE_LIBS)
+
+# Discover where to install the .desktop file:
+HILDON_HOME_DESKTOP_DIR=`pkg-config libhildondesktop-1 --variable=hildonhomedesktopentrydir`
+AC_SUBST(HILDON_HOME_DESKTOP_DIR)
+
+# Discover where to install the status widget's lib file:
+HILDON_DESKTOP_LIB_DIR=`pkg-config libhildondesktop-1 --variable=hildondesktoplibdir`
+AC_SUBST(HILDON_DESKTOP_LIB_DIR) 
+
+
+AC_OUTPUT(Makefile)
+AC_OUTPUT(timeout-home-widget.desktop)
diff --git a/coordinate-system.c b/coordinate-system.c
new file mode 100644 (file)
index 0000000..fefb1c4
--- /dev/null
@@ -0,0 +1,21 @@
+#include "coordinate-system.h"
+
+void wgs84_to_kkj2(double inLatitude, double inLongitude, double *outLatitude, double *outLongitude)
+{
+    if (outLatitude) {
+        *outLatitude = 100;
+    }
+    if (outLongitude) {
+        *outLongitude = 100;
+    }
+}
+
+void kkj2_to_wgs84(double inLatitude, double inLongitude, double *outLatitude, double *outLongitude)
+{
+    if (outLatitude) {
+        *outLatitude = 100;
+    }
+    if (outLongitude) {
+        *outLongitude = 100;
+    }
+}
diff --git a/coordinate-system.h b/coordinate-system.h
new file mode 100644 (file)
index 0000000..78a4620
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef COORDINATE_SYSTEM_H
+#define COORDINATE_SYSTEM_H
+
+void wgs84_to_kkj2(double inLatitude, double inLongitude, double *outLatitude, double *outLongitude);
+
+void kkj2_to_wgs84(double inLatitude, double inLongitude, double *outLatitude, double *outLongitude);
+
+#endif
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..2865792
--- /dev/null
@@ -0,0 +1,6 @@
+hildon-timeout-home-widget-example (0.1-1) unstable; urgency=low
+
+  * Autotoolized and debianized
+
+ -- Maemo Team <xxxx@maemo.org>  Wed, 24 Jun 2009 16:22:18 +0300
+
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..3f5f1df
--- /dev/null
@@ -0,0 +1,12 @@
+Source: hildon-timeout-home-widget-example
+Section: user/desktop
+Priority: optional
+Maintainer: Maemo Team <xxxx@maemo.org>
+Build-Depends: debhelper (>= 5), autotools-dev, libhildondesktop1-dev (>= 2.1.16)
+Standards-Version: 3.7.2
+
+Package: hildon-timeout-home-widget-example
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Example home widget
+ An example home widget for Maemo.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..cba57fe
--- /dev/null
@@ -0,0 +1,25 @@
+This package was debianized by Maemo Team <xxxx@maemo.org> on
+Wed, 24 Jun 2009 16:22:18 +0300.
+
+Copyright (C) 2009 Nokia Corporation. All rights reserved.
+
+This maemo code example is licensed under a following MIT-style license.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE 
diff --git a/debian/rules b/debian/rules
new file mode 100644 (file)
index 0000000..399ccd8
--- /dev/null
@@ -0,0 +1,107 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+       CFLAGS += -O0
+else
+       CFLAGS += -O2
+endif
+
+config.status: configure
+       dh_testdir
+       # Add here commands to configure the package.
+       ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs"
+
+
+build: build-stamp
+
+build-stamp:  config.status
+       dh_testdir
+
+       # Add here commands to compile the package.
+       $(MAKE)
+       #docbook-to-man debian/hildon-timeout-home-widget-example.sgml > hildon-timeout-home-widget-example.1
+
+       touch $@
+
+clean:
+       dh_testdir
+       dh_testroot
+       rm -f build-stamp 
+
+       # Add here commands to clean up after the build process.
+       -$(MAKE) distclean
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+       cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+       cp -f /usr/share/misc/config.guess config.guess
+endif
+
+
+       dh_clean 
+
+install: build
+       dh_testdir
+       dh_testroot
+       dh_clean -k 
+       dh_installdirs
+
+       # Add here commands to install the package into debian/hildon-timeout-home-widget-example.
+       $(MAKE) DESTDIR=$(CURDIR)/debian/hildon-timeout-home-widget-example install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+       dh_testdir
+       dh_testroot
+       dh_installchangelogs ChangeLog
+       dh_installdocs
+       dh_installexamples
+#      dh_install
+#      dh_installmenu
+#      dh_installdebconf       
+#      dh_installlogrotate
+#      dh_installemacsen
+#      dh_installpam
+#      dh_installmime
+#      dh_python
+#      dh_installinit
+#      dh_installcron
+#      dh_installinfo
+       dh_installman
+       dh_link
+       dh_strip
+       dh_compress
+       dh_fixperms
+#      dh_perl
+#      dh_makeshlibs
+       dh_installdeb
+       dh_shlibdeps
+       dh_gencontrol
+       dh_md5sums
+       dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install 
diff --git a/doc/coordinate_systems/JHS153.pdf b/doc/coordinate_systems/JHS153.pdf
new file mode 100644 (file)
index 0000000..e8f19a7
Binary files /dev/null and b/doc/coordinate_systems/JHS153.pdf differ
diff --git a/doc/coordinate_systems/JHS154.pdf b/doc/coordinate_systems/JHS154.pdf
new file mode 100644 (file)
index 0000000..64ba018
Binary files /dev/null and b/doc/coordinate_systems/JHS154.pdf differ
diff --git a/doc/coordinate_systems/JHS154_liite1.pdf b/doc/coordinate_systems/JHS154_liite1.pdf
new file mode 100644 (file)
index 0000000..32fd19b
Binary files /dev/null and b/doc/coordinate_systems/JHS154_liite1.pdf differ
diff --git a/doc/coordinate_systems/JHS154_liite2.pdf b/doc/coordinate_systems/JHS154_liite2.pdf
new file mode 100644 (file)
index 0000000..8136b07
Binary files /dev/null and b/doc/coordinate_systems/JHS154_liite2.pdf differ
diff --git a/doc/coordinate_systems/coordtrans.fgi.fi b/doc/coordinate_systems/coordtrans.fgi.fi
new file mode 100644 (file)
index 0000000..8112c5a
--- /dev/null
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Icon=text-html
+Type=Link
+URL[$e]=http://coordtrans.fgi.fi/
+X-Ubuntu-Gettext-Domain=desktop_kdebase
diff --git a/doc/coordinate_systems/kkjgps.htm b/doc/coordinate_systems/kkjgps.htm
new file mode 100644 (file)
index 0000000..5a3a833
--- /dev/null
@@ -0,0 +1,1239 @@
+<html><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
+<meta name="author" content="Eino Uikkanen">
+<meta name="keywords" content="ETRS-TM35FIN ETRS-GK KKJ YKJ ETRS89 ETRF89 EUREF-FIN">
+<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
+<title>Suomalaiset koordinaatistot</title>
+<link rev="made" href="mailto:eino.uikkanen@iki.fi">
+</head><body bgcolor="#ffffff">
+
+<h1><a href="http://www.kolumbus.fi/eino.uikkanen/index.htm"><font face="Verdana" size="2">Eino
+Uikkasen kotisivu</font></a><font face="Verdana" size="2"> &gt; </font><a href="http://www.kolumbus.fi/eino.uikkanen/geodocs/kkjgps.htm"><font face="Verdana" size="2">Suomalaiset
+koordinaatistot</font></a><font face="Verdana" size="2"> -
+päivitetty <!--webbot bot="Timestamp" startspan s-type="EDITED"\r
+s-format="%d.%m.%Y" -->18.10.2009<!--webbot bot="Timestamp"\r
+i-checksum="12483" endspan --></font></h1>
+
+<hr color="#808080" noshade="noshade">
+
+<h1><a name="Suomessa käytössä olevat koordinaatistot ja GPS"><font face="Verdana" size="2">Suomessa käytössä olevat
+vaakakoordinaatistot</font></a></h1>
+
+<blockquote>
+    <p><font face="Verdana" size="2">Tämä artikkeli on lyhyt
+    kuvaus Suomessa käytetyistä vaakakoordinaatistoista, joista
+    lista taulussa 1.</font></p>
+</blockquote>
+
+<blockquote>
+    <table border="6">
+        <tbody><tr>
+            <td colspan="4"><font face="Verdana" size="2"><strong>Taulu
+            1, Suomalaiset koordinaatistot</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Tunnus</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Nimi</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Käytetty
+            kartantuotannossa</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Kommentti</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">VVJ</font></td>
+            <td><font face="Verdana" size="2">Helsingin
+            järjestelmä</font></td>
+            <td><font face="Verdana" size="2">-1970</font></td>
+            <td><font face="Verdana" size="2">Edelleen
+            käytössä eräissä kaupungeissa</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">ED50</font></td>
+            <td><font face="Verdana" size="2">European Datum 1950
+            </font></td>
+            <td><font face="Verdana" size="2">Ei koskaan</font></td>
+            <td><font face="Verdana" size="2">Kansallinen
+            tasoitus 1966</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ</font></td>
+            <td><font face="Verdana" size="2">Kartastokoordinaattijärjestelmä</font></td>
+            <td><font face="Verdana" size="2">1970-2005</font></td>
+            <td><font face="Verdana" size="2">Perustuu ED50
+            koordinaatistoon</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">EUREF-FIN</font></td>
+            <td><font face="Verdana" size="2">EUREF-FIN</font></td>
+            <td><font face="Verdana" size="2">2003- merikartat,
+            2005- maastokartat</font></td>
+            <td><font face="Verdana" size="2">ETRS89 realisaatio
+            Suomessa</font></td>
+        </tr>
+    </tbody></table>
+    <p><font face="Verdana" size="2">Artikkelista löytyy
+    englanninkielinen versio sivulta: </font><a href="http://www.kolumbus.fi/eino.uikkanen/geodocsgb/ficoords.htm"><font face="Verdana" size="2">Finnish coordinate systems</font></a></p>
+    <p><font face="Verdana" size="2">Suomessa käytössä
+    olevista korkeusjärjestelmistä löytyy kirjoitus sivulta: </font><a href="http://www.kolumbus.fi/eino.uikkanen/geodocs/korkeudet.htm"><font face="Verdana" size="2">Suomen
+    korkeusjärjestelmät</font></a></p>
+    <p><font face="Verdana" size="2">Vastaan mieluusti
+    artikkeliin liittyviin kysymyksiin ja kommentteihin
+    osoitteessa </font><a href="mailto:eino.uikkanen@iki.fi"><font face="Verdana" size="2">eino.uikkanen@iki.fi</font></a><font face="Verdana" size="2">.</font></p>
+</blockquote>
+
+<h1><font face="Verdana" size="2">KKJ:n edeltäjä, Helsingin
+järjestelmä alias VVJ, -1970</font></h1>
+
+<blockquote>
+    <p><font face="Verdana" size="2">Ennen KKJ:n käyttöönottoa
+    kartastotöissä käytettiin järjestelmää nimeltä 'Helsingin
+    järjestelmä' alias VVJ, Vanha Valtion Järjestelmä.
+    Siirtyminen VVJ:stä KKJ:hin aloitettiin 1970, mutta VVJ:n
+    mukaisia koordinaatteja on vieläkin käytössä eräissä
+    kunnissa. </font></p>
+    <p><font face="Verdana" size="2">KKJ ei millään tavalla
+    pohjaudu VVJ:hin, vaan ED50-koordinaatistoon ja sen
+    kansalliseen laajennukseen, mutta KKJ määriteltiin
+    kierrettäväksi tasossa siten, että se mahdollisimman hyvin
+    yhtyy vanhaan VVJ-koordinaatistoon. Tällä saavutettiin se
+    etu, että vanhoja karttoja voitiin käyttää ylimenokauden
+    ajan tarvitsematta ottaa huomioon koordinaattijärjestelmän
+    muutosta. Jos siis kartassa on VVJ-koordinaatisto, sitä voi
+    käsitellä kuten kartta olisi tehty KKJ-koordinaatiston
+    mukaisesti, huomioiden kuitenkin seuraavat erot VVJ- ja KKJ-koordinaattien
+    arvoissa ja esitysmuodoissa:</font></p>
+    <ul>
+        <li><font face="Verdana" size="2">VVJ-koordinaattien ja
+            KKJ-koordinaattien ero on keskimäärin 2 m (Suomen
+            kartasto, vihko 112, sivu 11, 1984). Eroissa
+            kannattaa varautua suuriin alueellisiin vaihteluihin
+            ja suurimmillaan 10 m virheisiin.</font></li>
+        <li><font face="Verdana" size="2">VVJ y-koordinaatti
+            esitetään ilman edeltävää kaistanumeroa, jonka
+            sijalla saattaa olla keskimeridiaanin arvo asteina,
+            esim. jos KKJ y-koordinaatti on 3511666, niin VVJ y-koordinaatti
+            voidaan esittää muodossa 511666 tai 27°511666</font></li>
+        <li><font face="Verdana" size="2">VVJ-koordinaatiston
+            koordinaateista jätettiin usein pois tuhannet ja
+            jopa sadat kilometrit</font></li>
+    </ul>
+</blockquote>
+
+<h1><font face="Verdana" size="2"><strong>ED50-järjestelmä,
+European datum 1950, Suomen kansallinen tasoitus 1966</strong></font></h1>
+
+<blockquote>
+    <p><font face="Verdana" size="2">European Datum 1959 (ED50)
+    perustuu 1950-luvulla tehtyyn Euroopan laajuiseen
+    kolmioverkkojen yhteistasoitukseen. Suomen ED50-järjestelmä
+    perustuu v. 1966 tehtyyn ensimmäisen luokan kolmioverkkojen
+    tasoitukseen, jonka lähtöpisteet otettiin eurooppalaisesta
+    tasoituksesta (Korhonen Jorma, 1967). Tämän kansallisen
+    tasoituksen lopputulosta, ED50-koordinaatistoa, ei ole
+    Suomessa koskaan käytetty karttatuotannossa ja siksi ei ole
+    missään tilanteessa mielekästä laittaa GPS-laitteeseen
+    tai karttaohjelmaan ED50:n mukaisia asetuksia, vaikka monissa
+    lähteissä näin kehotetaan tekemään. ED50 koordinaatisto
+    on kuitenkin varsin merkityksellinen, sillä se on ollut
+    pohjana Suomessa vuonna 1970 käyttöönotetulle KKJ-koordinaatistolle.</font></p>
+</blockquote>
+
+<h1><a name="KKJ-koordinaatisto"><font face="Verdana" size="2">KKJ-koordinaatisto</font></a><font face="Verdana" size="2">, kartastokoordinaattijärjestelmä, 1970
+- 2003/2005</font></h1>
+
+<blockquote>
+    <p><font face="Verdana" size="2">KKJ-koordinaatisto on
+    johdettu ED50-koordinaatistosta (Suomen kansallinen tasoitus
+    1966) siirtämällä ja kiertämällä ED50-koordinaatistoa
+    siten, että se mahdollisimman hyvin yhtyy KKJ:n
+    edeltäjään eli VVJ-koordinaatistoon.</font></p>
+    <p><font face="Verdana" size="2">KKJ:n yhteydessä
+    käytetään referenssiellipsoidina Hayfordin ellipsoidia,
+    joka tunnetaan myös nimellä International 1924. Taulussa 2
+    on kuvattu Hayfordin ellipsoidin parametrit, isoakselin
+    puolikkaan pituus metreinä ja litistyssuhde eli flattening,
+    joka lasketaan kaavalla (isoakseli-pikkuakseli)/isoakseli.
+    Näitä arvoja ei usein ilmoiteta suoraan, vaan
+    vähennettynä WGS84-ellipsoidin vastaavista luvuista,
+    jolloin litistyssuhteiden erotus kerrotaan vielä luvulla
+    10000. Siksi taulussa 2 esitetään myös WGS84 ellipsoidin
+    parametrit sekä parametrien arvojen erotukset (DA,DF) . </font></p>
+    <table border="6">
+        <tbody><tr>
+            <td colspan="6"><font face="Verdana" size="2"><strong>Taulu
+            2, Hayford eli International 1924 ja WGS84
+            ellipsoidit</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Parametri</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Selite</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Yksikkö</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>WGS84</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Hayford</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>WGS84-Hayford</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">A, DA</font></td>
+            <td><font face="Verdana" size="2">Isoakselin puolikas</font></td>
+            <td><font face="Verdana" size="2">metri</font></td>
+            <td><font face="Verdana" size="2">6378137</font></td>
+            <td><font face="Verdana" size="2">6378388</font></td>
+            <td><font face="Verdana" size="2">-251</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">F, DF</font></td>
+            <td><font face="Verdana" size="2">Litistyssuhde</font></td>
+            <td>&nbsp;</td>
+            <td><font face="Verdana" size="2">1/298.257223563</font></td>
+            <td><font face="Verdana" size="2">1/297</font></td>
+            <td><font face="Verdana" size="2">-0.14192702256</font></td>
+        </tr>
+    </tbody></table>
+    <p><font face="Verdana" size="2">KKJ-koordinaatit voidaan
+    esittää joko maantieteellisinä koordinaatteina (leveys,
+    pituus) tai tasokoordinaatteina (pohjois- ja itäkoordinaatti),
+    jotka johdetaan maantieteellisistä koordinaateista Gauss-Krüger-projektiokaavalla.
+    Koska KKJ on kaksiulotteinen koordinaatisto, siihen ei liity
+    mitään määritelmää korkeudesta. Jos KKJ:n yhteydessä
+    kuitenkin annetaan korkeus, se on aina ortometrinen korkeus
+    kansallisessa korkeussysteemissä (esim. N60). </font></p>
+    <p><font face="Verdana" size="2">KKJ-tasokoordinaatisto
+    koostuu kuudesta (0-5) kolme astetta leveästä kaistasta.
+    Usein esitetään vain kaistat 1-4, jotka peittävät melkein
+    koko Suomen, mutta joskus esitetään myös kaistat 0 ja 5.
+    Tätä kuudesta kolme astetta leveästä kaistasta koostuvaa
+    koordinaatistoa kutsutaan nimellä 'Peruskoordinaatisto'.
+    Tämän lisäksi kaistan 3 parametreja käytetään
+    valtakunnanlaajuisesti. Tätä valtakunnanlaajuista yhden
+    kaistan koordinaatistoa kutsutaan nimellä 'Yhtenäiskoordinaatisto'.
+    Maastokartoissa peruskoordinaatisto esitetään mustalla
+    ruudukolla ja yhtenäiskoordinaatisto punaisella ruudukolla.</font></p>
+    <table border="6">
+        <tbody><tr>
+            <td colspan="7"><font face="Verdana" size="2"><strong>Taulu
+            3, KKJ peruskoordinaatisto, musta ruudukko</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Projektio</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Ellipsoidi</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Kaista</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Keskusmeridiaani</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Valeitä</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Mittakaavakerroin
+            keskusmeridiaanilla</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Kaistan
+            leveys</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Projection</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Ellipsoid</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Zone</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Central
+            meridian</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>False
+            Easting</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Scale
+            factor at Central Meridian</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Zone width</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ</font></td>
+            <td><font face="Verdana" size="2">International 1924</font></td>
+            <td><font face="Verdana" size="2">0</font></td>
+            <td><font face="Verdana" size="2">18</font></td>
+            <td><font face="Verdana" size="2">500000</font></td>
+            <td><font face="Verdana" size="2">1.000</font></td>
+            <td><font face="Verdana" size="2">3</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ</font></td>
+            <td><font face="Verdana" size="2">International 1924</font></td>
+            <td><font face="Verdana" size="2">1</font></td>
+            <td><font face="Verdana" size="2">21</font></td>
+            <td><font face="Verdana" size="2">1500000</font></td>
+            <td><font face="Verdana" size="2">1.000</font></td>
+            <td><font face="Verdana" size="2">3</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ</font></td>
+            <td><font face="Verdana" size="2">International 1924</font></td>
+            <td><font face="Verdana" size="2">2</font></td>
+            <td><font face="Verdana" size="2">24</font></td>
+            <td><font face="Verdana" size="2">2500000</font></td>
+            <td><font face="Verdana" size="2">1.000</font></td>
+            <td><font face="Verdana" size="2">3</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ</font></td>
+            <td><font face="Verdana" size="2">International 1924</font></td>
+            <td><font face="Verdana" size="2">3</font></td>
+            <td><font face="Verdana" size="2">27</font></td>
+            <td><font face="Verdana" size="2">3500000</font></td>
+            <td><font face="Verdana" size="2">1.000</font></td>
+            <td><font face="Verdana" size="2">3</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ</font></td>
+            <td><font face="Verdana" size="2">International 1924</font></td>
+            <td><font face="Verdana" size="2">4</font></td>
+            <td><font face="Verdana" size="2">30</font></td>
+            <td><font face="Verdana" size="2">4500000</font></td>
+            <td><font face="Verdana" size="2">1.000</font></td>
+            <td><font face="Verdana" size="2">3</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ</font></td>
+            <td><font face="Verdana" size="2">International 1924</font></td>
+            <td><font face="Verdana" size="2">5</font></td>
+            <td><font face="Verdana" size="2">33</font></td>
+            <td><font face="Verdana" size="2">5500000</font></td>
+            <td><font face="Verdana" size="2">1.000</font></td>
+            <td><font face="Verdana" size="2">3</font></td>
+        </tr>
+    </tbody></table>
+    <p>&nbsp;</p>
+    <table border="6">
+        <tbody><tr>
+            <td colspan="7"><font face="Verdana" size="2"><strong>Taulu
+            4, KKJ yhtenäiskoordinaatisto YKJ, punainen ruudukko</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Projektio</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Ellipsoidi</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Kaista</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Keskusmeridiaani</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Valeitä</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Mittakaavakerroin
+            keskusmeridiaanilla</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Kaistan
+            leveys</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Projection</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Ellipsoid</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Zone</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Central
+            Meridian</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>False
+            Easting</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Scale
+            factor at Central Meridian</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Zone width</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">YKJ</font></td>
+            <td><font face="Verdana" size="2">International 1924</font></td>
+            <td><font face="Verdana" size="2">3</font></td>
+            <td><font face="Verdana" size="2">27</font></td>
+            <td><font face="Verdana" size="2">3500000</font></td>
+            <td><font face="Verdana" size="2">1.000</font></td>
+            <td><font face="Verdana" size="2">Koko Suomi (13)</font></td>
+        </tr>
+    </tbody></table>
+    <p><font face="Verdana" size="2">Ylläkuvattujen parametrien
+    lisäksi laitteissa esiintyy usein myös parametrit
+    valepohjoinen eli False Northing sekä Latitude of Origin -
+    näiden arvot ovat KKJ-koordinaattien laskennassa nollia.</font></p>
+    <p><font face="Verdana" size="2">Pisteen suorakulmaisten KKJ-koordinaattien
+    arvojen voidaan ajatella syntyvän seuraavasti:</font></p>
+</blockquote>
+
+<blockquote>
+    <ol>
+        <li><font face="Verdana" size="2">Siirrytään pisteestä
+            suorinta tietä keskimeridiaanille - matka metreinä
+            on y-koordinaatin alkuarvo. Arvo asetetaan
+            negatiiviseksi keskimeridiaanin länsipuolella ja
+            positiiviseksi itäpuolella. Esimerkiksi y=45107.</font></li>
+        <li><font face="Verdana" size="2">Siirrytään tästä
+            pisteestä edelleen keskimeridiaania myöten
+            päiväntasaajalle - matka metreinä on x-koordinaatin
+            arvo. Esimerkiksi x=6717563.</font></li>
+        <li><font face="Verdana" size="2">Jotta y-koordinaatin
+            arvo tulisi positiiviseksi molemmin puolin
+            keskimeridiaania, siihen lisätään 500000 metriä.
+            Tämä luku on nimeltään valeitä eli false easting.
+            Esimerkiksi y=545107.</font></li>
+        <li><font face="Verdana" size="2">Jotta kaistan
+            tunnistaisi suoraan koordinaattien arvosta,
+            lisätään y-koordinaatin eteen kaistan numero.
+            Esimerkiksi y=2545107.</font></li>
+        <li><font face="Verdana" size="2">Näin saatiin
+            koordinaattien arvoksi: x=6717563 ja y=2545107</font></li>
+    </ol>
+</blockquote>
+
+<blockquote>
+    <p><font face="Verdana" size="2">Kohtia 3 ja 4 ei yleensä
+    ajatella erillisinä, vaan kaistan numeron lisäys
+    huomioidaan valeidän arvossa. Esimerkiksi yllä valeitä
+    olisi 2 500 000 metriä.</font></p>
+    <p><font face="Verdana" size="2">Koska maapallo ei ole taso,
+    eivät suorakulmaiset xy-koordinaatit voi kuvata täsmälleen
+    pisteiden metrisiä etäisyyksiä, vaan
+    koordinaattipisteistä tasogeometrian keinoin lasketut
+    keskinäiset etäisyydet poikkeavat todellisista metrisistä
+    etäisyyksistä sitä enemmän, mitä kauempana ollaan
+    keskimeridiaanista. Tätä eroa kutsutaan nimellä 'projektiovirhe'.
+    Kyseessä ei kuitenkaan ole "virhe" vaan ero, joka
+    on tarkasti laskettavissa ja joka tulee ymmärtää ja
+    huomioida tarkoissa sovelluksissa. Normaalikäyttäjälle
+    projektiovirheellä ei ole vähäisintäkään merkitystä
+    edes yhtenäiskoordinaatistossa, jonka laidoilla se esiintyy
+    suurimpana. Huomaa erityisesti, että projektiovirhe
+    vaikuttaa vain mittakaavaan, eikä lainkaan koordinaattien
+    arvoihin. Koordinaattien arvot eivät siis ole epätarkempia
+    kaistan reunoilla.</font></p>
+    <p><font face="Verdana" size="2">Taulussa 5 esimerkkinä
+    samasta pisteestä eri muodoissa esitettyjä koordinaatteja.</font></p>
+    <table border="6">
+        <tbody><tr>
+            <td colspan="3"><font face="Verdana" size="2"><strong>Taulu
+            5, esimerkkejä koordinaattien arvoista</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Koordinaattityyppi</strong></font></td>
+            <td align="center"><font face="Verdana" size="2"><strong>leveys</strong></font></td>
+            <td align="center"><font face="Verdana" size="2"><strong>pituus</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">WGS84
+            maantieteelliset</font></td>
+            <td><font face="Verdana" size="2">60.566077</font></td>
+            <td><font face="Verdana" size="2">24.819210</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ
+            maantieteelliset</font></td>
+            <td><font face="Verdana" size="2">60.565894</font></td>
+            <td><font face="Verdana" size="2">24.822422</font></td>
+        </tr>
+        <tr>
+            <td align="center">&nbsp;</td>
+            <td align="center"><font face="Verdana" size="2"><strong>x</strong></font></td>
+            <td align="center"><font face="Verdana" size="2"><strong>y</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ suorakulmaiset,
+            kaista 2</font></td>
+            <td><font face="Verdana" size="2">6717563</font></td>
+            <td><font face="Verdana" size="2">2545107</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ suorakulmaiset,
+            kaista 3/YKJ</font></td>
+            <td><font face="Verdana" size="2">6719258</font></td>
+            <td><font face="Verdana" size="2">3380581</font></td>
+        </tr>
+    </tbody></table>
+</blockquote>
+
+<blockquote>
+    <p><font face="Verdana" size="2"><strong>Muuntoparametrit </strong></font><a name="Muunnos WGS84-koordinaatistosta KKJ-koordinaatistoon eli datum-muunnos"><font face="Verdana" size="2"><strong>EUREF-FIN(WGS84) ja -KKJ-koordinaatistojen
+    </strong></font></a><font face="Verdana" size="2"><strong>väliseen
+    yhdenmuotoisuusmuunnokseen </strong></font></p>
+</blockquote>
+
+<blockquote>
+    <p><font face="Verdana" size="2">Datumin, tässä tapauksessa
+    KKJ-koordinaatiston kuvaamiseen tarvitaan kahdenlaisia lukuja.
+    Toiset luvut kertovat, miten EUREF-FIN ja KKJ-koordinaatiston
+    pisteet muutetaan toisikseen kolmiulotteisissa X,Y,Z-koordinaatistoissa.
+    Toiset luvut kuvaavat ellipsoidin, jonka mukaan
+    kolmiulotteiset X,Y,Z-koordinaatit muunnetaan
+    maantieteellisiksi koordinaateiksi ja päinvastoin.</font></p>
+    <p><font face="Verdana" size="2">Muunnos datumien, esim.
+    EUREF-FIN:n ja KKJ:n välillä tapahtuu lähes kaikissa
+    harrastajalaitteissa kolmiulotteisella
+    yhdenmuotoisuusmuunnoksella. Yhdenmuotoisuusmuunnos tapahtuu
+    siten, että toisen koordinaatiston pisteitä siirretään ja
+    kierretään siten, että ne mahdollisimman hyvin yhtyvät
+    toisen koordinaatiston pisteisiin. Siirtojen ja kiertojen
+    lisäksi yhdenmuotoisuusmuunnokseen saattaa liittyä
+    mittakaavan muunnos. Näin ollen kaikki
+    yhdenmuotoisuusmuunnokset voidaan kuvata seitsemällä
+    luvulla: siirrot kolmeen suuntaan (3), kierrot kolmen akselin
+    ympäri (3) ja mittakaavamuunnos (1). Useissa
+    harrastajalaitteissa yhdenmuotoisuusmuunnoksesta tehdään
+    pelkästään siirrot eli yhdenmuotoisuusmuunnos kuvataan
+    vain kolmella luvulla, mikä heikentää muunnoksen
+    tarkkuutta. </font></p>
+    <p><font face="Verdana" size="2">Taulussa 6 on kuvattu
+    parhaat muunnosarvot seitsenparametristä ja
+    kolmiparametristä KKJ-WGS84-yhdenmuotoisuusmuunnosta varten.
+    Yhdenmuotoisuusmuunnosta tarkempia menetelmiä on kuvattu
+    julkisen hallinnon tiedotteessa 154: </font><a href="http://www.jhs-suositukset.fi/suomi/jhs154"><font face="Verdana" size="2">JHS154</font></a></p>
+    <p><font face="Verdana" size="2">Seitsenparametrisen
+    muunnoksen parametrit (sarake 1) ovat Geodeettisen Laitoksen
+    3D-muunnokselle KKJ-ETRF89 laskemat arvot. Laskenta on
+    suoritettu pienimmän neliösumman menetelmällä käyttäen
+    90 pistettä, jotka Geodeettinen Laitos on mitannut ETRF89-koordinaatiston
+    realisoinnin yhteydessä. Koko Suomea koskevan
+    yhdenmuotoisuusmuunnoksen parametreja siis tuskin juurikaan
+    voidaan tästä parantaa.</font></p>
+    <p><font face="Verdana" size="2">Taulukon kolmiparametristen
+    muunnosten parametrit (sarakkeet 2-4) olen laskenut itse
+    käyttäen Geodeettisen Laitoksen mittaamaa pisteistöä,
+    joka siis teki mahdolliseksi uusien tarkempien parametrien
+    laskennan myös kolmiparametrisille muunnoksille. Suoritin
+    laskennan yksinkertaisesti minimoimalla X-, Y- ja Z-akselien
+    suuntaisten virheiden aritmeettiset keskiarvot. Pyöristin
+    parametrien arvot kokonaisluvuiksi, koska useat GPS-laitteet
+    eivät ota vastaan desimaaleja siirtymäarvoissa. Sarakkeessa
+    2 kuvaan parametrit, jotka olen laskenut käytettäväksi
+    koko valtakunnan alueella. Sarakkeissa 3 ja 4 kuvaan
+    parametrit, jotka olen laskenut erikseen Etelä- ja Pohjois-Suomessa
+    käytettäväksi (leveys &lt;65 ja &gt;65 astetta).</font></p>
+    <p><font face="Verdana" size="2">Vertailun vuoksi olen
+    sarakkeessa 5 (harmaa sarake) esittänyt parametrit, jotka
+    ovat käytössä useimmissa GPS-laitteissa, joissa KKJ-muunnos
+    on valmiina. Nämä parametrit on laskenut Jukka Varonen /
+    Merenkulkulaitos vuonna 1989. Tämän jälkeen niitä on
+    sovellettu useimmissa GPS-laitteissa ja monissa
+    karttaohjelmissa lähes teollisuusstandardina. Parametrit on
+    laskettu käytettäväksi pelkästään merialueilla, mutta
+    ne pätevät silti koko Suomen alueella niin hyvin, ettei
+    tarkkuuserolla uusiin ja vartavasten koko Suomea varten
+    laskettuihin kolmiparametrisiin muunnoksiin ole mitään
+    käytännön merkitystä.</font></p>
+    <p><font face="Verdana" size="2">Taulukkoon liitetyt
+    tarkkuusarvot ovat laskemiani epävirallisia ja
+    tarkistamattomia arvoja. Olen laskenut kolmiparametristen
+    muunnosten tarkkuusarvot pyöristetyille parametrien arvoille
+    eli olen ensin pyöristänyt parametrit ja vasta sitten
+    laskenut tarkkuusarvot. Keski- ja maksimivirheestä on
+    huomattava, että ne tarkoittavat keskimääräistä ja
+    suurinta virhettä laskennassa käytetyssä, vaikkakin
+    edustavassa aineistossa - ei yleisesti keskimääräistä ja
+    suurinta mahdollista virhettä.</font></p>
+    <table border="6">
+        <tbody><tr>
+            <td colspan="8"><font face="Verdana" size="2"><strong>Taulu
+            6, Yhdenmuotoisuusmuunnoksen KKJ-WGS84(ETRF89)
+            parametreja</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Parametri</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Selite</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Yksikkö</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>1</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>2</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>3</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>4</strong></font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2"><strong>5</strong></font></td>
+        </tr>
+        <tr>
+            <td>&nbsp;</td>
+            <td><font face="Verdana" size="2">Sovellusalueen
+            leveysasteet</font></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td><font face="Verdana" size="2">&lt;65</font></td>
+            <td><font face="Verdana" size="2">&gt;65</font></td>
+            <td bgcolor="#c0c0c0">&nbsp;</td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">DX</font></td>
+            <td><font face="Verdana" size="2">Siirto X-akselin
+            suunnassa</font></td>
+            <td><font face="Verdana" size="2">metri</font></td>
+            <td><font face="Verdana" size="2">-96.062</font></td>
+            <td><font face="Verdana" size="2">-75</font></td>
+            <td><font face="Verdana" size="2">-74</font></td>
+            <td><font face="Verdana" size="2">-76</font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">-78</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">DY</font></td>
+            <td><font face="Verdana" size="2">Siirto Y-akselin
+            suunnassa</font></td>
+            <td><font face="Verdana" size="2">metri</font></td>
+            <td><font face="Verdana" size="2">-82.428</font></td>
+            <td><font face="Verdana" size="2">-230</font></td>
+            <td><font face="Verdana" size="2">-229</font></td>
+            <td><font face="Verdana" size="2">-232</font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">-231</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">DZ</font></td>
+            <td><font face="Verdana" size="2">Siirto Z-akselin
+            suunnassa</font></td>
+            <td><font face="Verdana" size="2">metri</font></td>
+            <td><font face="Verdana" size="2">-121.754</font></td>
+            <td><font face="Verdana" size="2">-89</font></td>
+            <td><font face="Verdana" size="2">-88</font></td>
+            <td><font face="Verdana" size="2">-91</font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">-97</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">rx</font></td>
+            <td><font face="Verdana" size="2">Kierto X-akselin
+            ympäri</font></td>
+            <td><font face="Verdana" size="2">sekunti</font></td>
+            <td><font face="Verdana" size="2">-4.801</font></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td bgcolor="#c0c0c0">&nbsp;</td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">ry</font></td>
+            <td><font face="Verdana" size="2">Kierto Y-akselin
+            ympäri</font></td>
+            <td><font face="Verdana" size="2">sekunti</font></td>
+            <td><font face="Verdana" size="2">-0.345</font></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td bgcolor="#c0c0c0">&nbsp;</td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">rz</font></td>
+            <td><font face="Verdana" size="2">Kierto Z-akselin
+            ympäri</font></td>
+            <td><font face="Verdana" size="2">sekunti</font></td>
+            <td><font face="Verdana" size="2">+1.376</font></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td bgcolor="#c0c0c0">&nbsp;</td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">m</font></td>
+            <td><font face="Verdana" size="2">Mittakaavakerroin =
+            (mittakaava-1)*10^6</font></td>
+            <td>&nbsp;</td>
+            <td><font face="Verdana" size="2">+1.496</font></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td bgcolor="#c0c0c0">&nbsp;</td>
+        </tr>
+        <tr>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td bgcolor="#c0c0c0">&nbsp;</td>
+        </tr>
+        <tr>
+            <td>&nbsp;</td>
+            <td><font face="Verdana" size="2">Virheen keskiarvo</font></td>
+            <td><font face="Verdana" size="2">metri</font></td>
+            <td><font face="Verdana" size="2">0.8</font></td>
+            <td><font face="Verdana" size="2">1.6</font></td>
+            <td><font face="Verdana" size="2">1.4</font></td>
+            <td><font face="Verdana" size="2">0.8</font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">1.8</font></td>
+        </tr>
+        <tr>
+            <td>&nbsp;</td>
+            <td><font face="Verdana" size="2">Maksimivirhe</font></td>
+            <td><font face="Verdana" size="2">metri</font></td>
+            <td><font face="Verdana" size="2">2</font></td>
+            <td><font face="Verdana" size="2">3.3</font></td>
+            <td><font face="Verdana" size="2">2.5</font></td>
+            <td><font face="Verdana" size="2">1.8</font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">3.4</font></td>
+        </tr>
+    </tbody></table>
+    <p><font face="Verdana" size="2">Seitsenparametrisen 3D-yhdenmuotoisuusmuunnoksen
+    kaavoista on käytössä useita toisistaan hieman poikkeavia
+    versioita, joista toinen ei ole sen oikeampi tai väärempi
+    kuin toinen; oleellista on vain se, että parametrit on
+    annettu vastaamaan kulloinkin käytössä olevaa kaavaa.
+    Siksi esitän taulussa 7 3D-yhdenmuotoisuusmuunnoskaavan,
+    jota ajatellen edelläesitetyt muunnosparametrit on
+    määritelty. Valtaosa eri lähteissä tarjolla olevista
+    muunnosparametreistä esitetään joko tämän kaavan
+    mukaisina tai sellaisen kaavan mukaisina, joissa
+    kiertokulmien etumerkit ovat vastakkaiset tälle kaavalle.
+    Kannattaa siis erityisesti tarkistaa, että kiertokulmien
+    etumerkit ja käytetty kaava vastaavat toisiaan.
+    Muunnoskaavan kiertokulmien yksikkö on radiaani, mutta
+    kiertokulmat on parametreissa esitetty kaarisekunteina, koska
+    ne useimmiten ilmoitetaan laitteille ja ohjelmille
+    kaarisekunteina.</font></p>
+    <table border="6">
+        <tbody><tr>
+            <td><font face="Verdana" size="2"><strong>Taulu 7, 3D-yhdenmuotoisuusmuunnoskaava,
+            jota vastaan muunnosparametrit on määritelty</strong></font></td>
+        </tr>
+        <tr>
+            <td><pre><font size="2"> </font><font size="3">|X2|   |DX|                | 1   Rz -Ry |   |X1|</font></pre>
+            <pre><font size="3"> |Y2| = |DY| + (1+m/10^6) * |-Rz  1   Rx | * |Y1|</font></pre>
+            <pre><font size="3"> |Z2|   |DZ|                | Ry -Rx  1  |   |Z1|</font></pre>
+            </td>
+        </tr>
+    </tbody></table>
+</blockquote>
+
+<p>&nbsp;</p>
+
+<h1><font face="Verdana" size="2">Kuntien ja kaupunkien omat
+koordinaatistot</font></h1>
+
+<blockquote>
+    <p><font face="Verdana" size="2">Useissa kunnissa on
+    käytössä oma koordinaatisto. Oheisessa
+    Maanmittauslaitoksen artikkelissa on esitetty varsin kattava
+    luettelo kuntien omista koordinaatistoista sekä
+    muunnoskaavat kuntien omien koordinaatistojen ja KKJ-koordinaatiston
+    välillä. Artikkelista löytyy myös yhteystiedot
+    lisätietojen saamista varten.</font></p>
+    <ul>
+        <li><a href="http://www.maanmittauslaitos.fi/paikkatiedot/default.asp?id=895"><font face="Verdana" size="2">Koordinaattimuunnokset
+            kuntien omien koordinaatistojen ja KKJ:n välillä</font></a></li>
+    </ul>
+    <p><font face="Verdana" size="2">Eräät kunnat ovat
+    laittaneet nettiin online-muunnosohjelmia tai tietoja
+    muunnoksista:</font></p>
+    <ul>
+        <li><a href="http://teto.tampere.fi/kami/stato/muunnos/muunnos5.php#"><font face="Verdana" size="2">Muunna koordinaatteja
+            Tampereen seudulla</font></a><font face="Verdana" size="2"> - </font><a href="http://www.tampere.fi/kartat/koordinaattijarjestelmat/index.html"><font face="Verdana" size="2">Tampereen kaupunki:
+            koordinaattijärjestelmät</font></a></li>
+        <li><a href="http://www.vantaa.fi/i_perusdokumentti.asp?path=1;135;137;221;1761;2460;2661;5962"><font face="Verdana" size="2">Vantaa - Karttakoordinaatisto</font></a><font face="Verdana" size="2"> - </font><a href="http://kartta.vantaa.fi/fin/info/html/Metadata/vaneuref.htm"><font face="Verdana" size="2">Vantaan kaupunki:
+            koordinaattijärjestelmä</font></a></li>
+        <li><a href="http://www.kemi.fi/tekpa/MaaMittaus/Mittauspalvelut/muukaava.htm"><font face="Verdana" size="2">Kemin kaupunki Tekniset
+            palvelut Runkomittaukset ja vaaitukset</font></a></li>
+        <li><a href="http://www.keminmaa.fi/kunta/tekninen/mittaus/muunnos.htm"><font face="Verdana" size="2">Keminmaa - muunnoskaavat</font></a></li>
+        <li><a href="http://www.tuusula.fi/teksti.tmpl?id=376;numero=50858240"><font face="Verdana" size="2">Tuusulan kunta - Kartta- ja
+            paikkatieto</font></a></li>
+        <li><a href="http://www.lahti.fi/www/bulletin.nsf/9448b3047ee76304c2256c5a001fb524/ce6dc1c6c638c475c22570c100470945?OpenDocument"><font face="Verdana" size="2">Lahti siirtyi
+            yhteiseurooppalaiseen koordinaatistoon</font></a></li>
+    </ul>
+</blockquote>
+
+<h1><font face="Verdana" size="2">EUREF-FIN, ETRS89-realisaatio
+Suomessa, 2003/2005-</font></h1>
+
+<blockquote>
+    <p><font face="Verdana" size="2">Suomessa on käynnissä
+    koordinaatistouudistus, jossa nykyinen
+    kartastokoordinaattiärjestelmä KKJ korvataan
+    yleiseurooppalaisella ETRS89-koordinaatistojärjestelmällä.</font></p>
+    <p><font face="Verdana" size="2">Yleiseurooppalaisen ETRS90-koordinaatistojärjestelmän
+    mukaisen ETRF89-koordinaatiston realisaatio Suomessa (EUREF-FIN)
+    on määritelty Julkisen hallinnon suosituksessa 153: </font><a href="http://www.jhs-suositukset.fi/suomi/jhs153"><font face="Verdana" size="2">JHS153</font></a><font face="Verdana" size="2">. JHS153 suosittelee kansallisissa
+    kartoitustöissä ja paikannusjärjestelmissä
+    käytettäväksi ETRS89 koordinaattijärjestelmää KKJ-koordinaattijärjestelmän
+    sijasta.</font></p>
+    <p><font face="Verdana" size="2">ETRS89-järjestelmään
+    liittyvät karttaprojektiot, tasokoordinaatistot ja
+    karttalehtijako sekä tarkat muunnoskaavat ja -parametrit
+    esitetään julkisen hallinnon suosituksessa 154: </font><a href="http://www.jhs-suositukset.fi/suomi/jhs154"><font face="Verdana" size="2">JHS154</font></a></p>
+    <p><a href="http://www.fgi.fi/"><font face="Verdana" size="2">Geodeettinen
+    laitos</font></a><font face="Verdana" size="2"> on luonut
+    Suomeen yleiseurooppalaiseen EUREF89-koordinaatistoon sidotun
+    EUREF-FIN-koordinaatiston. ETRS89 yhtyy
+    senttimetritarkkuudella WGS84-koordinaatistoon, joten
+    paikannuksen ja navigoinnin vaatimissa tarkkuuksissa ei
+    enää tarvita muunnosta WGS84:n ja suomalaisen
+    koordinaatiston välillä. Yhteys EUREF-FIN koordinaatiston
+    ja KKJ:n välillä on kuvattu edellä KKJ-koordinaatiston
+    kuvauksen yhteydessä.</font></p>
+    <p><font face="Verdana" size="2">Koko valtakuntaa koskevissa
+    kartoitus- ja muissa paikkatietotöissä suositetaan
+    käytettäväksi koko Suomen kattavaa poikittaista
+    lieriöprojektiota (Transverse Mercator), jonka
+    keskimeridiaani on 27 astetta itäistä pituutta ja joka
+    noudattaa UTM standardia lukuunottamatta kaistanleveyttä, n.
+    13 astetta. Projektiota kutsutaan nimellä ETRS-TM35FIN.
+    Nimessä ETRS viittaa datumiin, TM35 tarkoittaa Transverse
+    Mercatorin kaistaa 35 ja FIN kertoo poikkeamasta UTM-standardista.</font></p>
+    <p><font face="Verdana" size="2">Paikallisiin töihin voidaan
+    edelleen käyttää Gauss-Krüger-projektioita
+    projektiovääristymien pienentämiseksi. Keskimeridiaanina
+    käytetään lähintä tasa-astetta. Gauss-Krüger-projektiota
+    kutsutaan nimellä ETRS-GKn. Nimessä ETRS viittaa datumiin,
+    ja GKn tarkoittaa Gauss-Krügerin kaistaa, jonka
+    keskimeridiaani on n astetta.</font></p>
+    <p><font face="Verdana" size="2">Taulussa 8 esitetään
+    Suomessa käytettävien tasokoordinaatistojen
+    projektioparametrit, joiden mukaan suoritetaan muunnokset
+    maantieteellisistä koordinaateista tasokoordinaateiksi ja
+    päinvastoin. Vertailun vuoksi taulukon lopussa esitetään
+    myös vastaavat KKJ-parametrit.</font></p>
+    <table border="6">
+        <tbody><tr>
+            <td colspan="6"><font face="Verdana" size="2"><strong>Taulu
+            8, Projektioparametrit Suomessa käytetyille
+            tasokoordinaatistoille</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Projektio</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Ellipsoidi</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Keskimeridiaani</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Valeitä</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Mittakaava
+            keskimeridiaanilla</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Kaistanleveys</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Projection</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Ellipsoid</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Central
+            Meridian</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>False
+            Easting</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Scale
+            factor at Central Meridian</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Zone width</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">ETRS-TM35FIN</font></td>
+            <td><font face="Verdana" size="2">GRS80</font></td>
+            <td><font face="Verdana" size="2">27</font></td>
+            <td><font face="Verdana" size="2">500000 </font></td>
+            <td><font face="Verdana" size="2">0.9996</font></td>
+            <td><font face="Verdana" size="2">13</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">ETRS-TMn</font></td>
+            <td><font face="Verdana" size="2">GRS80</font></td>
+            <td><font face="Verdana" size="2">21,27,33</font></td>
+            <td><font face="Verdana" size="2">500000</font></td>
+            <td><font face="Verdana" size="2">0.9996</font></td>
+            <td><font face="Verdana" size="2">6</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">ETRS-GK </font></td>
+            <td><font face="Verdana" size="2">GRS80</font></td>
+            <td><font face="Verdana" size="2">19,20,...,31</font></td>
+            <td><font face="Verdana" size="2">n500000, n=19,20,...,31</font></td>
+            <td><font face="Verdana" size="2">1.0000</font></td>
+            <td><font face="Verdana" size="2">1</font></td>
+        </tr>
+        <tr>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">KKJ</font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">International
+            1924</font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">18,21,24,27,30,33</font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">n500000,
+            n=0,1,...,5</font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">1.0000</font></td>
+            <td bgcolor="#c0c0c0"><font face="Verdana" size="2">3</font></td>
+        </tr>
+    </tbody></table>
+    <p><font face="Verdana" size="2">Muunnos kolmiulotteisista X,Y,Z-koordinaateista
+    maantieteellisiin koordinaatteihin tehdään ETRS89-koordinaatistojen
+    yhteydessä käyttäen referenssiellipsoidia GRS80. GRS80 on
+    niin lähellä WGS84:n käyttämää WGS84 ellipsoidia, että
+    ero voidaan käytännön sovelluksissa unohtaa. Taulussa 8
+    kuitenkin GRS80:n parametrit ja vertailu vastaaviin WGS84:n
+    parametreihin.</font></p>
+    <table border="6">
+        <tbody><tr>
+            <td colspan="6"><font face="Verdana" size="2"><strong>Taulu
+            9, GRS80 ja WGS84 ellipsoidit</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Parametri</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Selite</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Yksikkö</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>WGS84</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>GRS80</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>WGS84-GRS80</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">A, DA</font></td>
+            <td><font face="Verdana" size="2">Isoakselin puolikas</font></td>
+            <td><font face="Verdana" size="2">metri</font></td>
+            <td><font face="Verdana" size="2">6378137</font></td>
+            <td><font face="Verdana" size="2">6378137</font></td>
+            <td><font face="Verdana" size="2">0</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">F, DF</font></td>
+            <td><font face="Verdana" size="2">Litistyssuhde</font></td>
+            <td>&nbsp;</td>
+            <td><font face="Verdana" size="2">1/298.257223563</font></td>
+            <td><font face="Verdana" size="2">1/298.257222101</font></td>
+            <td><font face="Verdana" size="2">-0.000000164423..</font></td>
+        </tr>
+    </tbody></table>
+    <p><font face="Verdana" size="2"><strong>Uudet kartat</strong></font></p>
+    <p><font face="Verdana" size="2">Vuoden 2003 alusta alkaen </font><a href="http://www.fma.fi/"><font face="Verdana" size="2">Merenkulkulaitos</font></a><font face="Verdana" size="2"> on julkaissut uudet merikartat WGS84-koordinaatistossa
+    ja käyttäen kansainvälisesti sovitun INT-karttasymboliikan
+    mukaisia symboleja ja värejä. Uudessa värityksessä leimaa-antavin
+    väri on matalan veden sininen väri ja vanhassa
+    värityksessä maa-alueiden vihreä väri. Siksi uusia
+    merikarttoja kutsutaan sinisiksi merikartoiksi erotukseksi
+    nykyisistä KKJ-koordinaatistoon perustuvista vihreistä
+    merikartoista. Siniset merikartat tulevat korvaamaan vihreät
+    merikartat 4-5 vuoden sisällä. Kuitenkin niistä alueista,
+    joista ei ole vielä sinistä merikarttaa, ylläpidetään
+    ajantasaista vihreää merikarttaa. </font></p>
+    <p><a href="http://www.maanmittauslaitos.fi/"><font face="Verdana" size="2">Maanmittauslaitos</font></a><font face="Verdana" size="2"> siirtyi kartantuotannossaan uuteen
+    koordinaattijärjestelmään ja lehtijakoon vuonna 2005.
+    Uudistuksen myötä muuttuu myös maastokarttojen mittakaava;
+    uudet maastokartat julkaistaan mittakaavoissa 1:25 000 ja 1:50
+    000. Siirtymävaihe kartantuotannossa vienee vuosia ja sinä
+    aikana on käytössä rinnakkain KKJ:n ja EUREF-FIN:n
+    mukaisia karttoja. Uusissa maastokartoissa ETRS-TM35FIN
+    ruudukko on merkitty mustilla risteillä, kolme UTM-ruudukkoa
+    TM34, TM35 ja TM36 on painettu punaisella värillä ja
+    maantieteelliset koordinaatit sinisellä värillä. ETRS-GK-ruudukkoa
+    ei esitetä maastokartoilla lainkaan.</font></p>
+</blockquote>
+
+<h1><font face="Verdana" size="2">Koordinaatistojen väliset
+muunnokset</font></h1>
+
+<blockquote>
+    <p><font face="Verdana" size="2"><strong>Parametrien asetus
+    GPS-laitteeseen tai navigointi-/paikannusohjelmaan</strong></font></p>
+    <p><font face="Verdana" size="2">Kun suomalaisia karttoja
+    käytetään GPS-laitteiden tai navigointi/paikannusohjelmien
+    kanssa, täytyy ohjelmaan tai laitteeseen asettaa taulun 10
+    mukaiset datum- tai tasokoordinaattimuunnosparametrit. Tyhjä
+    kohta tarkoittaa, että voidaan soveltaa yleisiä
+    oletusarvoja; datum=WGS84 tai vastaava, esim EUREF-FIN,
+    ellipsoidi=WGS84 tai GRS80.</font></p>
+    <table border="6">
+        <tbody><tr>
+            <td colspan="6"><font face="Verdana" size="2"><strong>Taulu
+            10, Suomalaisten karttojen tarvitsemat datum- ja
+            tasokoordinaattikonversiot</strong></font></td>
+        </tr>
+        <tr>
+            <td colspan="2"><font face="Verdana" size="2"><strong>Karttatyyppi</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Koordinaattityyppi</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Datum-muunnos</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Ellipsoidi</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Tasokoordinaattimuunnos</strong></font></td>
+        </tr>
+        <tr>
+            <td rowspan="2" colspan="2"><font face="Verdana" size="2">Vanhat maakartat, KKJ, 1970-2005</font></td>
+            <td><font face="Verdana" size="2">Maantieteellinen</font></td>
+            <td><font face="Verdana" size="2">KKJ &lt;&gt; EUREF-FIN</font></td>
+            <td><font face="Verdana" size="2">International 1924</font></td>
+            <td>&nbsp;</td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">Tasokoordinaatti</font></td>
+            <td><font face="Verdana" size="2">KKJ &lt;&gt; EUREF-FIN</font></td>
+            <td><font face="Verdana" size="2">International 1924</font></td>
+            <td><font face="Verdana" size="2">KKJ1-KKJ5 / YKJ</font></td>
+        </tr>
+        <tr>
+            <td colspan="2"><font face="Verdana" size="2">Vanhat
+            "vihreät" merikartat, KKJ, -2002</font></td>
+            <td><font face="Verdana" size="2">Maantieteellinen</font></td>
+            <td><font face="Verdana" size="2">KKJ &lt;&gt; EUREF-FIN</font></td>
+            <td><font face="Verdana" size="2">International 1924</font></td>
+            <td>&nbsp;</td>
+        </tr>
+        <tr>
+            <td rowspan="2" colspan="2"><font face="Verdana" size="2">Uudet maakartat, EUREF-FIN, 2005-</font></td>
+            <td><font face="Verdana" size="2">Maantieteellinen</font></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">Tasokoordinaatti</font></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td><font face="Verdana" size="2">ETRS-TM35FIN / ETRS-GK(n)</font></td>
+        </tr>
+        <tr>
+            <td colspan="2"><font face="Verdana" size="2">Uudet
+            "siniset" merikartat, EUREF-FIN, 2003-</font></td>
+            <td><font face="Verdana" size="2">Maantieteellinen</font></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+        </tr>
+    </tbody></table>
+    <p><font face="Verdana" size="2">Muunnos WGS84(n. EUREF-FIN)-koordinaatistosta
+    KKJ-koordinaatistoon on useissa laitteissa ja ohjelmissa
+    sisäänrakennettuna ja se pitää yleensä sisällään
+    sekä 3D-yhdenmuotoisuusmuunnoksen (datum-muunnos) että
+    muunnoksen 3D-X,Y,Z-koordinaattien ja maantieteellisten
+    koordinaattien välillä (ellipsoidin mukaan). GPS:ssä
+    koordinaatistoja kutsutaan nimellä datum ja muunnos onkin
+    yleensä helppo asettaa valitsemalla GPS:n datumiksi KKJ.
+    Ongelmana on vain se, että KKJ-koordinaatistoa kutsutaan eri
+    laitteissa eri nimillä, mm. KKJ, Finland Hayford, Finnish
+    Nautical Chart jne.</font></p>
+    <p><font face="Verdana" size="2">Useimmissa GPS-laitteissa on
+    valmiina projektioparametrit KKJ-yhtenäiskoordinaatistoa (YKJ)
+    varten, eli samalla peruskoordinaatiston kaistaa 3 varten,
+    mutta harvoin peruskoordinaatiston muita kaistoja varten.
+    Myös KKJ-tasokoordinaateista käytetään eri laitteissa eri
+    nimiä, esim. KKJ3, KKJ27, Finnish grid. Jos laitteesta
+    löytyy KKJ-projektioparametrit, aiheuttaa niiden valinta
+    yleensä samalla myös datumin vaihdon KKJ:hin.</font></p>
+    <p><font face="Verdana" size="2">Jos tasokoordinaatteja
+    vastaavia projektioparametreja ei ole valmiiksi
+    määriteltynä, ne voi yleensä syöttää käyttäjän
+    määritteleminä ns. "user grid"-parametreina. Jos
+    laitteessa on valittavana useita eri user grid-tyyppejä,
+    esimerkiksi Transverse Mercator, Lambert Conic Conformal,
+    Mercator jne., tulee valita tyyppi 'Transverse Mercator'.
+    Vastaavat parametrit otetaan tauluista 3, 4 tai 8. Tässä
+    kannattaa huomata, että keskimeridiaania kutsutaan sekä
+    nimellä 'Central Meridian" että 'Longitude of Origin'.
+    Valepohjoinen eli 'False northing' on nolla kaikissa
+    tapauksissa (sekä vanhoissa että uusissa
+    tasokoordinaatistoissa). Eräissä laitteissa esiintyy
+    Transverse Mercator projektion yhteydessä myös parametri 'Latitude
+    of Origin'; tämän arvon tulee olla nolla.</font></p>
+    <h1><font face="Verdana" size="2">Muunnosketju, kaavat ja
+    parametrit</font></h1>
+    <p><font face="Verdana" size="2">Taulussa 11 on esitetty
+    kaikki muunnosvaiheet kaavoineen ja parametreineen KKJ-tasokoordinaateista
+    EUREF-FIN tasokoordinaatteihin ja päinvastoin. Esitetty
+    ketju on yleinen ja on siksi sovellettavissa myös muihin
+    vastaaviin koordinaatistoihin vaihtamalla parametreja tai
+    mahdollisesti vaihtamalla muunnoskaava taso- ja
+    maantieteellisten koordinaattien välillä vastaamaan ko.
+    koordinaatistosysteemiä.</font></p>
+    <p><font face="Verdana" size="2">Jos vaadittu muunnostarkkuus
+    ei ole suuri, voidaan käyttää huomattavasti
+    yksinkertaisempia kaavoja, jotka on rakennettu suoraan
+    tiettyjen koordinaattimuotojen välille, esimerkiksi suoraan
+    KKJ-maantieteellisten ja EUREF-FIN-maantieteellisten välille.
+    Jos tarvitaan suurta tarkkuutta, voidaan soveltaa </font><a href="http://www.jhs-suositukset.fi/suomi/jhs154"><font face="Verdana" size="2">Julkisen hallinnon suosituksen 154</font></a><font face="Verdana" size="2"> liitteessä 5 esitettyä
+    kolmioittaista affiinimuunnosta YKJ- ja ETRS-GK-koordinaattien
+    välillä. Kattavasti suomalaisten geodeettisten
+    koordinaatistojen väliset muunnokset on kuvattu </font><a href="http://www.fgi.fi/julkaisut/pdf/GLtiedote30.pdf"><font face="Verdana" size="2">Geodeettisen laitoksen tiedotteessa
+    numero 30</font></a><font face="Verdana" size="2">.</font></p>
+    <table border="6">
+        <tbody><tr>
+            <td colspan="6"><font face="Verdana" size="2"><strong>Taulu
+            11, Muunnosketju KKJ-tasokoordinaatit &gt; ETRS-pohjaiset
+            tasokoordinaatit (taulu 8) &gt; KKJ-tasokoordinaatit </strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2"><strong>Mistä</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Mihin</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Muunnos</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Kaava</strong></font></td>
+            <td><font face="Verdana" size="2"><strong>Parametrit</strong></font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ
+            tasokoordinaatit</font></td>
+            <td><font face="Verdana" size="2">KKJ
+            maantieteelliset</font></td>
+            <td><font face="Verdana" size="2">Transverse Mercator
+            projektio </font></td>
+            <td><a href="http://www.jhs-suositukset.fi/suomi/jhs154"><font face="Verdana" size="2">JHS154</font></a><font face="Verdana" size="2">, liite 1</font></td>
+            <td><font face="Verdana" size="2">KKJ-tasokoordinaatit,
+            taulu 3</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ
+            maantieteelliset</font></td>
+            <td><font face="Verdana" size="2">KKJ 3D-X,Y,Z-koordinaatit</font></td>
+            <td><font face="Verdana" size="2">Maantieteelliset
+            &gt; 3D-X,Y,Z</font></td>
+            <td><a href="http://www.jhs-suositukset.fi/suomi/jhs153"><font face="Verdana" size="2">JHS153</font></a><font face="Verdana" size="2">, 5.2</font></td>
+            <td><font face="Verdana" size="2">Hayfordin
+            ellipsoidi, taulu 2</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ 3D-X,Y,Z-koordinaatit</font></td>
+            <td><font face="Verdana" size="2">EUREF-FIN 3D-X,Y,Z-koordinaatit</font></td>
+            <td><font face="Verdana" size="2">Datum-muunnos, 3D-
+            yhdenmuotoisuusmuunnos</font></td>
+            <td><font face="Verdana" size="2">Taulu 7</font></td>
+            <td><font face="Verdana" size="2">Taulu 6, sarake 1</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">EUREF-FIN 3D-X,Y,Z-koordinaatit</font></td>
+            <td><font face="Verdana" size="2">EUREF-FIN
+            maantieteelliset</font></td>
+            <td><font face="Verdana" size="2">3D-X,Y,Z &gt;
+            maantieteelliset</font></td>
+            <td><a href="http://www.jhs-suositukset.fi/suomi/jhs153"><font face="Verdana" size="2">JHS153</font></a><font face="Verdana" size="2">, 5.2</font></td>
+            <td><font face="Verdana" size="2">GRS80 ellipsoidi,
+            taulu 9</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">EUREF-FIN
+            maantieteelliset</font></td>
+            <td><font face="Verdana" size="2">ETRS-pohjaiset
+            tasokoordinaatit</font></td>
+            <td><font face="Verdana" size="2">Transverse Mercator
+            projektio</font></td>
+            <td><a href="http://www.jhs-suositukset.fi/suomi/jhs154"><font face="Verdana" size="2">JHS154</font></a><font face="Verdana" size="2">, liite 1</font></td>
+            <td><font face="Verdana" size="2">ETRS-pohjaiset
+            tasokoordinaatit, taulu 8</font></td>
+        </tr>
+        <tr>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">ETRS-pohjaiset
+            tasokoordinaatit</font></td>
+            <td><font face="Verdana" size="2">EUREF-FIN
+            maantieteelliset</font></td>
+            <td><font face="Verdana" size="2">Transverse Mercator
+            projektio</font></td>
+            <td><a href="http://www.jhs-suositukset.fi/suomi/jhs154"><font face="Verdana" size="2">JHS154</font></a><font face="Verdana" size="2">, liite 1</font></td>
+            <td><font face="Verdana" size="2">ETRS-pohjaiset
+            tasokoordinaatit, taulu 8</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">EUREF-FIN
+            maantieteelliset</font></td>
+            <td><font face="Verdana" size="2">EUREF-FIN 3D-X,Y,Z-koordinaatit</font></td>
+            <td><font face="Verdana" size="2">Maantieteelliset
+            &gt; 3D-X,Y,Z</font></td>
+            <td><a href="http://www.jhs-suositukset.fi/suomi/jhs153"><font face="Verdana" size="2">JHS153</font></a><font face="Verdana" size="2">, 5,2</font></td>
+            <td><font face="Verdana" size="2">GRS80 ellipsoidi,
+            taulu 9</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">EUREF-FIN 3D-X,Y,Z-koordinaatit</font></td>
+            <td><font face="Verdana" size="2">KKJ 3D-X,Y,Z-koordinaatit</font></td>
+            <td><font face="Verdana" size="2">Datum-muunnos, 3D-
+            yhdenmuotoisuusmuunnos</font></td>
+            <td><font face="Verdana" size="2">Taulu 7</font></td>
+            <td><font face="Verdana" size="2">Taulu 6, sarake 1</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ 3D-X,Y,Z-koordinaatit</font></td>
+            <td><font face="Verdana" size="2">KKJ
+            maantieteelliset</font></td>
+            <td><font face="Verdana" size="2">3D-X,Y,Z &gt;
+            maantieteelliset</font></td>
+            <td><a href="http://www.jhs-suositukset.fi/suomi/jhs153"><font face="Verdana" size="2">JHS153</font></a><font face="Verdana" size="2">, 5.2</font></td>
+            <td><font face="Verdana" size="2">Hayfordin
+            ellipsoidi, taulu 2</font></td>
+        </tr>
+        <tr>
+            <td><font face="Verdana" size="2">KKJ
+            maantieteelliset</font></td>
+            <td><font face="Verdana" size="2">KKJ
+            tasokoordinaatit</font></td>
+            <td><font face="Verdana" size="2">Transverse Mercator
+            projektio</font></td>
+            <td><a href="http://www.jhs-suositukset.fi/suomi/jhs154"><font face="Verdana" size="2">JHS154</font></a><font face="Verdana" size="2">, liite 1</font></td>
+            <td><font face="Verdana" size="2">KKJ-tasokoordinaatit,
+            taulu 3</font></td>
+        </tr>
+    </tbody></table>
+    <p>&nbsp;</p>
+    <h1><font face="Verdana" size="2">Muunnospalveluja</font></h1>
+    <p><a href="http://www.fgi.fi/"><font face="Verdana" size="2">Geodeettinen
+    laitos</font></a><font face="Verdana" size="2"> on tuottanut
+    koordinaattien muunnospalvelun </font><a href="http://coordtrans.fgi.fi/"><font face="Verdana" size="2">http://coordtrans.fgi.fi/</font></a><font face="Verdana" size="2">. Palvelu tukee Suomessa
+    valtakunnallisesti käytössä olevia koordinaatistoja ja
+    korkeusjärjestelmiä.</font></p>
+    <h1><a name="Muunnosten tarkkuudesta"><font face="Verdana" size="2">Muunnosten tarkkuudesta</font></a></h1>
+    <p><font face="Verdana" size="2">KKJ-koordinaatiston
+    sisäisistä mittakaava- ja orientointivirheistä johtuen
+    jää EUREF-FIN - KKJ- yhdenmuotoisuusmuunnoksesta
+    parhaillakin siirtoparametreilla suurimmillaan kahden metrin
+    jäännösvirheitä. Harrastelijakäyttöön tarkoitetuissa
+    GPS-laitteissa käytetään useimmiten kolmiparametrista
+    yhdenmuotoisuusmuunnosta, jossa jäännösvirheet nousevat
+    suuremmiksi. Useissa navigointisovelluksissa nämä virheet
+    eivät kuitenkaan ole merkittäviä, eivätkä useinkaan
+    suurimpia koko navigointiketjussa.</font></p>
+    <p><font face="Verdana" size="2">Muunnos tasokoordinaattien
+    ja maantieteellisten koordinaattien samoin kuin muunnos
+    maantieteellisten ja 3D-X,Y,Z-koordinaattien välillä on
+    yleensä yksinkertaisimmillakin käytössä olevilla
+    kaavoilla niin tarkka, ettei virheillä ole mitään
+    merkitystä käytännön sovelluksissa.</font></p>
+    <p><font face="Verdana" size="2">Kannattaa huomata, että
+    koordinaatistomuunnosten virheet ovat vain osa
+    kokonaisvirhettä. Geodeettinen ja kartografinen perustyö,
+    GPS-tekniikka sekä käyttäjän navigointityö ovat kaikki
+    mittaamista mittaamisen perään ja aina kun mitataan,
+    tehdään virheitä. Kokonaisvirhe on eri vaiheissa tehtyjen
+    virheiden summa. Alla lueteltuna vaiheita, joissa syntyy
+    väistämättä mitta- tai laskentavirheitä, vaikka itse
+    toiminta olisi virheetöntä. Tämän lisäksi tulevat
+    tietysti käyttäjän tai tekijän omat virheet -
+    väärinkäsitykset, merkintävirheet, tulkintavirheet jne.</font></p>
+    <dir>
+        <li><font face="Verdana" size="2">virheet koordinaatiston
+            mittaamisessa ja merkitsemisessä maastoon</font></li>
+        <li><font face="Verdana" size="2">kartantuotannossa
+            tapahtuvat virheet</font></li>
+        <li><font face="Verdana" size="2">virhe, kun käyttäjä
+            määrittää kartalla olevan pisteen koordinaatit
+            tai koordinaattien perusteella kartan pisteen</font></li>
+        <li><font face="Verdana" size="2">koordinaatistojen
+            välisten muunnosten virheet (esimerkiksi KKJ-WGS84),
+            mahdollisesti useassa kohdassa navigointiketjua</font></li>
+        <li><font face="Verdana" size="2">GPS-järjestelmän
+            virheet</font></li>
+    </dir>
+</blockquote>
+
+<h1><font face="Verdana" size="2">Kiitokset</font></h1>
+
+<blockquote>
+    <p><font face="Verdana" size="2">Haluan lämpimästi
+    kiittää FT Matti Ollikaista hänen ystävällisistä
+    neuvoistaan sekä eräiden tässä dokumentissa esiintyneiden
+    virheiden ja epätarkkuuksien korjaamisesta.</font></p>
+    <p><font face="Verdana" size="2">Suuri kiitos myös muille
+    tätä artikkelia kommentoineille henkilöille.</font></p>
+</blockquote>
+
+<h1><font face="Verdana" size="2">Lähdeluettelo</font></h1>
+
+<blockquote>
+    <ul>
+        <li><font face="Verdana" size="2">Hirvonen, R.A., 1949:
+            Die Gauss-Krügersche Projektion für breite
+            Meridianstreifen auf dem Internationalen Ellipsoide.
+            Kirjoitus Suomen Geodeettisen laitoksen julkaisussa
+            no 36</font></li>
+        <li><font face="Verdana" size="2">Ollikainen, M., 1993:
+            GPS-koordinaattien muuttaminen
+            Kartastokoordinaateiksi, Geodeettinen laitos, tiedote
+            8</font></li>
+        <li><font face="Verdana" size="2">Poutanen Markku, 1998, </font><a href="http://www.ursa.fi/ursa/julkaisut/gps/gps.html"><font face="Verdana" size="2">GPS-paikanmääritys</font></a><font face="Verdana" size="2"> - ISBN 951-9269-89-4</font></li>
+        <li><font face="Verdana" size="2">Ollikainen, M., H.
+            Koivula and Markku Poutanen, 2000. The densification
+            of the EUREF network in Finland. The Publication of
+            Finnish Geodetic Institute, no. 129. P.O. Box 15, FIN-02431
+            Masala</font></li>
+        <li><font face="Verdana" size="2">Ollikainen, M., Koivula
+            H., Poutanen M., 2001: EUREF-FIN koordinaatisto ja
+            EUREF-pistetihennykset Suomessa, Geodeettinen laitos,
+            tiedote 24</font></li>
+        <li><font face="Verdana" size="2">Suomen kartasto, vihko
+            112 </font></li>
+        <li><font face="Verdana" size="2">JHS 153: ETRS89-järjestelmän
+            mukaiset koordinaatit Suomessa: </font><a href="http://www.jhs-suositukset.fi/suomi/jhs153"><font face="Verdana" size="2">JHS153</font></a></li>
+        <li><font face="Verdana" size="2">JHS 154: ETRS89-järjestelmään
+            liittyvät karttaprojektiot, tasokoordinaatistot ja
+            karttalehtijako: </font><a href="http://www.jhs-suositukset.fi/suomi/jhs154"><font face="Verdana" size="2">JHS154</font></a></li>
+        <li><font face="Verdana" size="2">Marko Ollikainen ja
+            Matti Ollikainen, 2004, The Finnish Coordinate
+            Reference Systems. Julkaisijat Geodeettinen laitos ja
+            Maanmittauslaitos </font><a href="http://www.maanmittauslaitos.fi/popup.asp?id=0&amp;docid=2507"><font face="Verdana" size="2">www.maanmittauslaitos.fi/popup.asp?id=0&amp;docid=2507</font></a></li>
+        <li><font face="Verdana" size="2">Häkli P., Puupponen J.,
+            Koivula H., Poutanen M.: </font><a href="http://www.fgi.fi/julkaisut/pdf/GLtiedote30.pdf"><font face="Verdana" size="2">Suomen geodeettiset
+            koordinaatistot ja niiden väliset muunnokset</font></a><font face="Verdana" size="2">, Geodeettinen laitos,
+            tiedote 30</font></li>
+    </ul>
+</blockquote>
+
+<p><a href="http://www.kolumbus.fi/eino.uikkanen/index.htm"><font face="Verdana" size="2">Eino
+Uikkasen kotisivu</font></a></p>
+<script src="kkjgps_files/urchin.js" type="text/javascript">
+</script><script type="text/javascript">
+_uacct = "UA-469384-5";
+urchinTracker();
+</script>
+</body></html>
\ No newline at end of file
diff --git a/doc/coordinate_systems/kkjgps_files/urchin.js b/doc/coordinate_systems/kkjgps_files/urchin.js
new file mode 100644 (file)
index 0000000..44803e9
--- /dev/null
@@ -0,0 +1,695 @@
+//-- Google Analytics Urchin Module
+//-- Copyright 2007 Google, All Rights Reserved.
+
+//-- Urchin On Demand Settings ONLY
+var _uacct="";                 // set up the Urchin Account
+var _userv=1;                  // service mode (0=local,1=remote,2=both)
+
+//-- UTM User Settings
+var _ufsc=1;                   // set client info flag (1=on|0=off)
+var _udn="auto";               // (auto|none|domain) set the domain name for cookies
+var _uhash="on";               // (on|off) unique domain hash for cookies
+var _utimeout="1800";          // set the inactive session timeout in seconds
+var _ugifpath="/__utm.gif";    // set the web path to the __utm.gif file
+var _utsp="|";                 // transaction field separator
+var _uflash=1;                 // set flash version detect option (1=on|0=off)
+var _utitle=1;                 // set the document title detect option (1=on|0=off)
+var _ulink=0;                  // enable linker functionality (1=on|0=off)
+var _uanchor=0;                        // enable use of anchors for campaign (1=on|0=off)
+var _utcp="/";                 // the cookie path for tracking
+var _usample=100;              // The sampling % of visitors to track (1-100).
+
+//-- UTM Campaign Tracking Settings
+var _uctm=1;                   // set campaign tracking module (1=on|0=off)
+var _ucto="15768000";          // set timeout in seconds (6 month default)
+var _uccn="utm_campaign";      // name
+var _ucmd="utm_medium";                // medium (cpc|cpm|link|email|organic)
+var _ucsr="utm_source";                // source
+var _uctr="utm_term";          // term/keyword
+var _ucct="utm_content";       // content
+var _ucid="utm_id";            // id number
+var _ucno="utm_nooverride";    // don't override
+
+//-- Auto/Organic Sources and Keywords
+var _uOsr=new Array();
+var _uOkw=new Array();
+_uOsr[0]="google";     _uOkw[0]="q";
+_uOsr[1]="yahoo";      _uOkw[1]="p";
+_uOsr[2]="msn";                _uOkw[2]="q";
+_uOsr[3]="aol";                _uOkw[3]="query";
+_uOsr[4]="aol";                _uOkw[4]="encquery";
+_uOsr[5]="lycos";      _uOkw[5]="query";
+_uOsr[6]="ask";                _uOkw[6]="q";
+_uOsr[7]="altavista";  _uOkw[7]="q";
+_uOsr[8]="netscape";   _uOkw[8]="query";
+_uOsr[9]="cnn";        _uOkw[9]="query";
+_uOsr[10]="looksmart"; _uOkw[10]="qt";
+_uOsr[11]="about";     _uOkw[11]="terms";
+_uOsr[12]="mamma";     _uOkw[12]="query";
+_uOsr[13]="alltheweb"; _uOkw[13]="q";
+_uOsr[14]="gigablast"; _uOkw[14]="q";
+_uOsr[15]="voila";     _uOkw[15]="rdata";
+_uOsr[16]="virgilio";  _uOkw[16]="qs";
+_uOsr[17]="live";      _uOkw[17]="q";
+_uOsr[18]="baidu";     _uOkw[18]="wd";
+_uOsr[19]="alice";     _uOkw[19]="qs";
+_uOsr[20]="yandex";    _uOkw[20]="text";
+_uOsr[21]="najdi";     _uOkw[21]="q";
+_uOsr[22]="aol";       _uOkw[22]="q";
+_uOsr[23]="club-internet"; _uOkw[23]="query";
+_uOsr[24]="mama";      _uOkw[24]="query";
+_uOsr[25]="seznam";    _uOkw[25]="q";
+_uOsr[26]="search";    _uOkw[26]="q";
+_uOsr[27]="wp";        _uOkw[27]="szukaj";
+_uOsr[28]="onet";      _uOkw[28]="qt";
+_uOsr[29]="netsprint"; _uOkw[29]="q";
+_uOsr[30]="google.interia";    _uOkw[30]="q";
+_uOsr[31]="szukacz";   _uOkw[31]="q";
+_uOsr[32]="yam";       _uOkw[32]="k";
+_uOsr[33]="pchome";    _uOkw[33]="q";
+_uOsr[34]="kvasir";    _uOkw[34]="searchExpr";
+_uOsr[35]="sesam";     _uOkw[35]="q";
+_uOsr[36]="ozu"; _uOkw[36]="q";
+_uOsr[37]="terra"; _uOkw[37]="query";
+_uOsr[38]="nostrum"; _uOkw[38]="query";
+_uOsr[39]="mynet"; _uOkw[39]="q";
+_uOsr[40]="ekolay"; _uOkw[40]="q";
+_uOsr[41]="search.ilse"; _uOkw[41]="search_for";
+_uOsr[42]="bing"; _uOkw[42]="q";
+
+//-- Auto/Organic Keywords to Ignore
+var _uOno=new Array();
+//_uOno[0]="urchin";
+//_uOno[1]="urchin.com";
+//_uOno[2]="www.urchin.com";
+
+//-- Referral domains to Ignore
+var _uRno=new Array();
+//_uRno[0]=".urchin.com";
+
+//-- **** Don't modify below this point ***
+var _uff,_udh,_udt,_ubl=0,_udo="",_uu,_ufns=0,_uns=0,_ur="-",_ufno=0,_ust=0,_ubd=document,_udl=_ubd.location,_udlh="",_uwv="1.3";
+var _ugifpath2="http://www.google-analytics.com/__utm.gif";
+if (_udl.hash) _udlh=_udl.href.substring(_udl.href.indexOf('#'));
+if (_udl.protocol=="https:") _ugifpath2="https://ssl.google-analytics.com/__utm.gif";
+if (!_utcp || _utcp=="") _utcp="/";
+function urchinTracker(page) {
+ if (_udl.protocol=="file:") return;
+ if (_uff && (!page || page=="")) return;
+ var a,b,c,xx,v,z,k,x="",s="",f=0,nv=0;
+ var nx=" expires="+_uNx()+";";
+ var dc=_ubd.cookie;
+ _udh=_uDomain();
+ if (!_uVG()) return;
+ _uu=Math.round(Math.random()*2147483647);
+ _udt=new Date();
+ _ust=Math.round(_udt.getTime()/1000);
+ a=dc.indexOf("__utma="+_udh+".");
+ b=dc.indexOf("__utmb="+_udh);
+ c=dc.indexOf("__utmc="+_udh);
+ if (_udn && _udn!="") { _udo=" domain="+_udn+";"; }
+ if (_utimeout && _utimeout!="") {
+  x=new Date(_udt.getTime()+(_utimeout*1000));
+  x=" expires="+x.toGMTString()+";";
+ }
+ if (_ulink) {
+  if (_uanchor && _udlh && _udlh!="") s=_udlh+"&";
+  s+=_udl.search;
+  if(s && s!="" && s.indexOf("__utma=")>=0) {
+   if (!(_uIN(a=_uGC(s,"__utma=","&")))) a="-";
+   if (!(_uIN(b=_uGC(s,"__utmb=","&")))) b="-";
+   if (!(_uIN(c=_uGC(s,"__utmc=","&")))) c="-";
+   v=_uGC(s,"__utmv=","&");
+   z=_uGC(s,"__utmz=","&");
+   k=_uGC(s,"__utmk=","&");
+   xx=_uGC(s,"__utmx=","&");
+   if ((k*1) != ((_uHash(a+b+c+xx+z+v)*1)+(_udh*1))) {_ubl=1;a="-";b="-";c="-";xx="-";z="-";v="-";}
+   if (a!="-" && b!="-" && c!="-") f=1;
+   else if(a!="-") f=2;
+  }
+ }
+ if(f==1) {
+  _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo;
+  _ubd.cookie="__utmb="+b+"; path="+_utcp+";"+x+_udo;
+  _ubd.cookie="__utmc="+c+"; path="+_utcp+";"+_udo;
+ } else if (f==2) {
+  a=_uFixA(s,"&",_ust);
+  _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo;
+  _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo;
+  _ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo;
+  _ufns=1;
+ } else if (a>=0 && b>=0 && c>=0) {
+   b = _uGC(dc,"__utmb="+_udh,";");
+   b = ("-" == b) ? _udh : b;  
+  _ubd.cookie="__utmb="+b+"; path="+_utcp+";"+x+_udo;
+ } else {
+  if (a>=0) a=_uFixA(_ubd.cookie,";",_ust);
+  else {
+   a=_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1";
+   nv=1;
+  }
+  _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo;
+  _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo;
+  _ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo;
+  _ufns=1;
+ }
+ if (_ulink && xx && xx!="" && xx!="-") {
+   xx=_uUES(xx);
+   if (xx.indexOf(";")==-1) _ubd.cookie="__utmx="+xx+"; path="+_utcp+";"+nx+_udo;
+ }
+ if (_ulink && v && v!="" && v!="-") {
+  v=_uUES(v);
+  if (v.indexOf(";")==-1) _ubd.cookie="__utmv="+v+"; path="+_utcp+";"+nx+_udo;
+ }
+ var wc=window;
+ var c=_ubd.cookie;
+ if(wc && wc.gaGlobal && wc.gaGlobal.dh==_udh){
+  var g=wc.gaGlobal;
+  var ua=c.split("__utma="+_udh+".")[1].split(";")[0].split(".");
+  if(g.sid)ua[3]=g.sid;
+  if(nv>0){
+   ua[2]=ua[3];
+   if(g.vid){
+    var v=g.vid.split(".");
+    ua[0]=v[0];
+    ua[1]=v[1];
+   }
+  }
+  _ubd.cookie="__utma="+_udh+"."+ua.join(".")+"; path="+_utcp+";"+nx+_udo;
+ }
+ _uInfo(page);
+ _ufns=0;
+ _ufno=0;
+ if (!page || page=="") _uff=1;
+}
+function _uGH() {
+ var hid;
+ var wc=window;
+ if (wc && wc.gaGlobal && wc.gaGlobal.hid) {
+  hid=wc.gaGlobal.hid;
+ } else {
+  hid=Math.round(Math.random()*0x7fffffff);
+  if (!wc.gaGlobal) wc.gaGlobal={};
+  wc.gaGlobal.hid=hid;
+ }
+ return hid;
+}
+function _uInfo(page) {
+ var p,s="",dm="",pg=_udl.pathname+_udl.search;
+ if (page && page!="") pg=_uES(page,1);
+ _ur=_ubd.referrer;
+ if (!_ur || _ur=="") { _ur="-"; }
+ else {
+  dm=_ubd.domain;
+  if(_utcp && _utcp!="/") dm+=_utcp;
+  p=_ur.indexOf(dm);
+  if ((p>=0) && (p<=8)) { _ur="0"; }
+  if (_ur.indexOf("[")==0 && _ur.lastIndexOf("]")==(_ur.length-1)) { _ur="-"; }
+ }
+ s+="&utmn="+_uu;
+ if (_ufsc) s+=_uBInfo();
+ if (_uctm) s+=_uCInfo();
+ if (_utitle && _ubd.title && _ubd.title!="") s+="&utmdt="+_uES(_ubd.title);
+ if (_udl.hostname && _udl.hostname!="") s+="&utmhn="+_uES(_udl.hostname);
+ if (_usample && _usample != 100) s+="&utmsp="+_uES(_usample);
+ s+="&utmhid="+_uGH();
+ s+="&utmr="+_ur;
+ s+="&utmp="+pg;
+ if ((_userv==0 || _userv==2) && _uSP()) {
+  var i=new Image(1,1);
+  i.src=_ugifpath+"?"+"utmwv="+_uwv+s;
+  i.onload=function() { _uVoid(); }
+ }
+ if ((_userv==1 || _userv==2) && _uSP()) {
+  var i2=new Image(1,1);
+  i2.src=_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+_uGCS();
+  i2.onload=function() { _uVoid(); }
+ }
+ return;
+}
+function _uVoid() { return; }
+function _uCInfo() {
+ if (!_ucto || _ucto=="") { _ucto="15768000"; }
+ if (!_uVG()) return;
+ var c="",t="-",t2="-",t3="-",o=0,cs=0,cn=0,i=0,z="-",s="";
+ if (_uanchor && _udlh && _udlh!="") s=_udlh+"&";
+ s+=_udl.search;
+ var x=new Date(_udt.getTime()+(_ucto*1000));
+ var dc=_ubd.cookie;
+ x=" expires="+x.toGMTString()+";";
+ if (_ulink && !_ubl) {
+  z=_uUES(_uGC(s,"__utmz=","&"));
+  if (z!="-" && z.indexOf(";")==-1) { _ubd.cookie="__utmz="+z+"; path="+_utcp+";"+x+_udo; return ""; }
+ }
+ z=dc.indexOf("__utmz="+_udh+".");
+ if (z>-1) { z=_uGC(dc,"__utmz="+_udh+".",";"); }
+ else { z="-"; }
+ t=_uGC(s,_ucid+"=","&");
+ t2=_uGC(s,_ucsr+"=","&");
+ t3=_uGC(s,"gclid=","&");
+ if ((t!="-" && t!="") || (t2!="-" && t2!="") || (t3!="-" && t3!="")) {
+  if (t!="-" && t!="") c+="utmcid="+_uEC(t);
+  if (t2!="-" && t2!="") { if (c != "") c+="|"; c+="utmcsr="+_uEC(t2); }
+  if (t3!="-" && t3!="") { if (c != "") c+="|"; c+="utmgclid="+_uEC(t3); }
+  t=_uGC(s,_uccn+"=","&");
+  if (t!="-" && t!="") c+="|utmccn="+_uEC(t);
+  else c+="|utmccn=(not+set)";
+  t=_uGC(s,_ucmd+"=","&");
+  if (t!="-" && t!="") c+="|utmcmd="+_uEC(t);
+  else  c+="|utmcmd=(not+set)";
+  t=_uGC(s,_uctr+"=","&");
+  if (t!="-" && t!="") c+="|utmctr="+_uEC(t);
+  else { t=_uOrg(1); if (t!="-" && t!="") c+="|utmctr="+_uEC(t); }
+  t=_uGC(s,_ucct+"=","&");
+  if (t!="-" && t!="") c+="|utmcct="+_uEC(t);
+  t=_uGC(s,_ucno+"=","&");
+  if (t=="1") o=1;
+  if (z!="-" && o==1) return "";
+ }
+ if (c=="-" || c=="") { c=_uOrg(); if (z!="-" && _ufno==1)  return ""; }
+ if (c=="-" || c=="") { if (_ufns==1)  c=_uRef(); if (z!="-" && _ufno==1)  return ""; }
+ if (c=="-" || c=="") {
+  if (z=="-" && _ufns==1) { c="utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"; }
+  if (c=="-" || c=="") return "";
+ }
+ if (z!="-") {
+  i=z.indexOf(".");
+  if (i>-1) i=z.indexOf(".",i+1);
+  if (i>-1) i=z.indexOf(".",i+1);
+  if (i>-1) i=z.indexOf(".",i+1);
+  t=z.substring(i+1,z.length);
+  if (t.toLowerCase()==c.toLowerCase()) cs=1;
+  t=z.substring(0,i);
+  if ((i=t.lastIndexOf(".")) > -1) {
+   t=t.substring(i+1,t.length);
+   cn=(t*1);
+  }
+ }
+ if (cs==0 || _ufns==1) {
+  t=_uGC(dc,"__utma="+_udh+".",";");
+  if ((i=t.lastIndexOf(".")) > 9) {
+   _uns=t.substring(i+1,t.length);
+   _uns=(_uns*1);
+  }
+  cn++;
+  if (_uns==0) _uns=1;
+  _ubd.cookie="__utmz="+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; path="+_utcp+"; "+x+_udo;
+ }
+ if (cs==0 || _ufns==1) return "&utmcn=1";
+ else return "&utmcr=1";
+}
+function _uRef() {
+ if (_ur=="0" || _ur=="" || _ur=="-") return "";
+ var i=0,h,k,n;
+ if ((i=_ur.indexOf("://"))<0 || _uGCse()) return "";
+ h=_ur.substring(i+3,_ur.length);
+ if (h.indexOf("/") > -1) {
+  k=h.substring(h.indexOf("/"),h.length);
+  if (k.indexOf("?") > -1) k=k.substring(0,k.indexOf("?"));
+  h=h.substring(0,h.indexOf("/"));
+ }
+ h=h.toLowerCase();
+ n=h;
+ if ((i=n.indexOf(":")) > -1) n=n.substring(0,i);
+ for (var ii=0;ii<_uRno.length;ii++) {
+  if ((i=n.indexOf(_uRno[ii].toLowerCase())) > -1 && n.length==(i+_uRno[ii].length)) { _ufno=1; break; }
+ }
+ if (h.indexOf("www.")==0) h=h.substring(4,h.length);
+ return "utmccn=(referral)|utmcsr="+_uEC(h)+"|"+"utmcct="+_uEC(k)+"|utmcmd=referral";
+}
+function _uOrg(t) {
+ if (_ur=="0" || _ur=="" || _ur=="-") return "";
+ var i=0,h,k;
+ if ((i=_ur.indexOf("://"))<0 || _uGCse()) return "";
+ h=_ur.substring(i+3,_ur.length);
+ if (h.indexOf("/") > -1) {
+  h=h.substring(0,h.indexOf("/"));
+ }
+ for (var ii=0;ii<_uOsr.length;ii++) {
+  if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) {
+   if ((i=_ur.indexOf("?"+_uOkw[ii]+"=")) > -1 || (i=_ur.indexOf("&"+_uOkw[ii]+"=")) > -1) {
+    k=_ur.substring(i+_uOkw[ii].length+2,_ur.length);
+    if ((i=k.indexOf("&")) > -1) k=k.substring(0,i);
+    for (var yy=0;yy<_uOno.length;yy++) {
+     if (_uOno[yy].toLowerCase()==k.toLowerCase()) { _ufno=1; break; }
+    }
+    if (t) return _uEC(k);
+    else return "utmccn=(organic)|utmcsr="+_uEC(_uOsr[ii])+"|"+"utmctr="+_uEC(k)+"|utmcmd=organic";
+   }
+  }
+ }
+ return "";
+}
+function _uGCse() {
+ var h,p;
+ h=p=_ur.split("://")[1];
+ if(h.indexOf("/")>-1) {
+  h=h.split("/")[0];
+  p=p.substring(p.indexOf("/")+1,p.length);
+ }
+ if(p.indexOf("?")>-1) {
+  p=p.split("?")[0];
+ }
+ if(h.toLowerCase().indexOf("google")>-1) {
+  if(_ur.indexOf("?q=")>-1 || _ur.indexOf("&q=")>-1) {
+   if (p.toLowerCase().indexOf("cse")>-1) {
+    return true;
+   }
+  }
+ }
+}
+function _uBInfo() {
+ var sr="-",sc="-",ul="-",fl="-",cs="-",je=1;
+ var n=navigator;
+ if (self.screen) {
+  sr=screen.width+"x"+screen.height;
+  sc=screen.colorDepth+"-bit";
+ } else if (self.java) {
+  var j=java.awt.Toolkit.getDefaultToolkit();
+  var s=j.getScreenSize();
+  sr=s.width+"x"+s.height;
+ }
+ if (n.language) { ul=n.language.toLowerCase(); }
+ else if (n.browserLanguage) { ul=n.browserLanguage.toLowerCase(); }
+ je=n.javaEnabled()?1:0;
+ if (_uflash) fl=_uFlash();
+ if (_ubd.characterSet) cs=_uES(_ubd.characterSet);
+ else if (_ubd.charset) cs=_uES(_ubd.charset);
+ return "&utmcs="+cs+"&utmsr="+sr+"&utmsc="+sc+"&utmul="+ul+"&utmje="+je+"&utmfl="+fl;
+}
+function __utmSetTrans() {
+ var e;
+ if (_ubd.getElementById) e=_ubd.getElementById("utmtrans");
+ else if (_ubd.utmform && _ubd.utmform.utmtrans) e=_ubd.utmform.utmtrans;
+ if (!e) return;
+ var l=e.value.split("UTM:");
+ var i,i2,c;
+ if (_userv==0 || _userv==2) i=new Array();
+ if (_userv==1 || _userv==2) { i2=new Array(); c=_uGCS(); }
+
+ for (var ii=0;ii<l.length;ii++) {
+  l[ii]=_uTrim(l[ii]);
+  if (l[ii].charAt(0)!='T' && l[ii].charAt(0)!='I') continue;
+  var r=Math.round(Math.random()*2147483647);
+  if (!_utsp || _utsp=="") _utsp="|";
+  var f=l[ii].split(_utsp),s="";
+  if (f[0].charAt(0)=='T') {
+   s="&utmt=tran"+"&utmn="+r;
+   f[1]=_uTrim(f[1]); if(f[1]&&f[1]!="") s+="&utmtid="+_uES(f[1]);
+   f[2]=_uTrim(f[2]); if(f[2]&&f[2]!="") s+="&utmtst="+_uES(f[2]);
+   f[3]=_uTrim(f[3]); if(f[3]&&f[3]!="") s+="&utmtto="+_uES(f[3]);
+   f[4]=_uTrim(f[4]); if(f[4]&&f[4]!="") s+="&utmttx="+_uES(f[4]);
+   f[5]=_uTrim(f[5]); if(f[5]&&f[5]!="") s+="&utmtsp="+_uES(f[5]);
+   f[6]=_uTrim(f[6]); if(f[6]&&f[6]!="") s+="&utmtci="+_uES(f[6]);
+   f[7]=_uTrim(f[7]); if(f[7]&&f[7]!="") s+="&utmtrg="+_uES(f[7]);
+   f[8]=_uTrim(f[8]); if(f[8]&&f[8]!="") s+="&utmtco="+_uES(f[8]);
+  } else {
+   s="&utmt=item"+"&utmn="+r;
+   f[1]=_uTrim(f[1]); if(f[1]&&f[1]!="") s+="&utmtid="+_uES(f[1]);
+   f[2]=_uTrim(f[2]); if(f[2]&&f[2]!="") s+="&utmipc="+_uES(f[2]);
+   f[3]=_uTrim(f[3]); if(f[3]&&f[3]!="") s+="&utmipn="+_uES(f[3]);
+   f[4]=_uTrim(f[4]); if(f[4]&&f[4]!="") s+="&utmiva="+_uES(f[4]);
+   f[5]=_uTrim(f[5]); if(f[5]&&f[5]!="") s+="&utmipr="+_uES(f[5]);
+   f[6]=_uTrim(f[6]); if(f[6]&&f[6]!="") s+="&utmiqt="+_uES(f[6]);
+  }
+  if (_udl.hostname && _udl.hostname!="") s+="&utmhn="+_uES(_udl.hostname);
+  if (_usample && _usample != 100) s+="&utmsp="+_uES(_usample);
+
+  if ((_userv==0 || _userv==2) && _uSP()) {
+   i[ii]=new Image(1,1);
+   i[ii].src=_ugifpath+"?"+"utmwv="+_uwv+s;
+   i[ii].onload=function() { _uVoid(); }
+  }
+  if ((_userv==1 || _userv==2) && _uSP()) {
+   i2[ii]=new Image(1,1);
+   i2[ii].src=_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+c;
+   i2[ii].onload=function() { _uVoid(); }
+  }
+ }
+ return;
+}
+function _uFlash() {
+ var f="-",n=navigator;
+ if (n.plugins && n.plugins.length) {
+  for (var ii=0;ii<n.plugins.length;ii++) {
+   if (n.plugins[ii].name.indexOf('Shockwave Flash')!=-1) {
+    f=n.plugins[ii].description.split('Shockwave Flash ')[1];
+    break;
+   }
+  }
+ } else {
+  var fl;
+  try {
+   fl = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
+   f = fl.GetVariable("$version");
+  } catch(e) {}
+  if (f == "-") {
+   try {
+    fl = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
+    f = "WIN 6,0,21,0";
+    fl.AllowScriptAccess = "always";
+    f = fl.GetVariable("$version");
+   } catch(e) {}
+  }
+  if (f == "-") {
+   try {
+    fl = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
+    f = fl.GetVariable("$version");
+   } catch(e) {}
+  }
+  if (f != "-") {
+   f = f.split(" ")[1].split(",");
+   f = f[0] + "." + f[1] + " r" + f[2];
+  }
+ }
+ return f;
+}
+function __utmLinkerUrl(l,h) {
+ var p,k,a="-",b="-",c="-",x="-",z="-",v="-";
+ var dc=_ubd.cookie;
+ var iq = l.indexOf("?");
+ var ih = l.indexOf("#");
+ var url=l;
+ if (dc) {
+  a=_uES(_uGC(dc,"__utma="+_udh+".",";"));
+  b=_uES(_uGC(dc,"__utmb="+_udh,";"));
+  c=_uES(_uGC(dc,"__utmc="+_udh,";"));
+  x=_uES(_uGC(dc,"__utmx="+_udh,";"));
+  z=_uES(_uGC(dc,"__utmz="+_udh+".",";"));
+  v=_uES(_uGC(dc,"__utmv="+_udh+".",";"));
+  k=(_uHash(a+b+c+x+z+v)*1)+(_udh*1);
+  p="__utma="+a+"&__utmb="+b+"&__utmc="+c+"&__utmx="+x+"&__utmz="+z+"&__utmv="+v+"&__utmk="+k;
+ }
+ if (p) {
+  if (h && ih>-1) return;
+  if (h) { url=l+"#"+p; }
+  else {
+   if (iq==-1 && ih==-1) url=l+"?"+p;
+   else if (ih==-1) url=l+"&"+p;
+   else if (iq==-1) url=l.substring(0,ih-1)+"?"+p+l.substring(ih);
+   else url=l.substring(0,ih-1)+"&"+p+l.substring(ih);
+  }
+ }
+ return url;
+}
+function __utmLinker(l,h) {
+ if (!_ulink || !l || l=="") return;
+ _udl.href=__utmLinkerUrl(l,h);
+}
+function __utmLinkPost(f,h) {
+ if (!_ulink || !f || !f.action) return;
+ f.action=__utmLinkerUrl(f.action, h);
+ return;
+}
+function __utmSetVar(v) {
+ if (!v || v=="") return;
+ if (!_udo || _udo == "") {
+  _udh=_uDomain();
+  if (_udn && _udn!="") { _udo=" domain="+_udn+";"; }
+ }
+ if (!_uVG()) return;
+ var r=Math.round(Math.random() * 2147483647);
+ _ubd.cookie="__utmv="+_udh+"."+_uES(v)+"; path="+_utcp+"; expires="+_uNx()+";"+_udo;
+ var s="&utmt=var&utmn="+r;
+ if (_usample && _usample != 100) s+="&utmsp="+_uES(_usample);
+ if ((_userv==0 || _userv==2) && _uSP()) {
+  var i=new Image(1,1);
+  i.src=_ugifpath+"?"+"utmwv="+_uwv+s;
+  i.onload=function() { _uVoid(); }
+ }
+ if ((_userv==1 || _userv==2) && _uSP()) {
+  var i2=new Image(1,1);
+  i2.src=_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+_uGCS();
+  i2.onload=function() { _uVoid(); }
+ }
+}
+function _uGCS() {
+ var t,c="",dc=_ubd.cookie;
+ if ((t=_uGC(dc,"__utma="+_udh+".",";"))!="-") c+=_uES("__utma="+t+";+");
+ if ((t=_uGC(dc,"__utmx="+_udh,";"))!="-") c+=_uES("__utmx="+t+";+");
+ if ((t=_uGC(dc,"__utmz="+_udh+".",";"))!="-") c+=_uES("__utmz="+t+";+");
+ if ((t=_uGC(dc,"__utmv="+_udh+".",";"))!="-") c+=_uES("__utmv="+t+";");
+ if (c.charAt(c.length-1)=="+") c=c.substring(0,c.length-1);
+ return c;
+}
+function _uGC(l,n,s) {
+ if (!l || l=="" || !n || n=="" || !s || s=="") return "-";
+ var i,i2,i3,c="-";
+ i=l.indexOf(n);
+ i3=n.indexOf("=")+1;
+ if (i > -1) {
+  i2=l.indexOf(s,i); if (i2 < 0) { i2=l.length; }
+  c=l.substring((i+i3),i2);
+ }
+ return c;
+}
+function _uDomain() {
+ if (!_udn || _udn=="" || _udn=="none") { _udn=""; return 1; }
+ if (_udn=="auto") {
+  var d=_ubd.domain;
+  if (d.substring(0,4)=="www.") {
+   d=d.substring(4,d.length);
+  }
+  _udn=d;
+ }
+ _udn = _udn.toLowerCase(); 
+ if (_uhash=="off") return 1;
+ return _uHash(_udn);
+}
+function _uHash(d) {
+ if (!d || d=="") return 1;
+ var h=0,g=0;
+ for (var i=d.length-1;i>=0;i--) {
+  var c=parseInt(d.charCodeAt(i));
+  h=((h << 6) & 0xfffffff) + c + (c << 14);
+  if ((g=h & 0xfe00000)!=0) h=(h ^ (g >> 21));
+ }
+ return h;
+}
+function _uFixA(c,s,t) {
+ if (!c || c=="" || !s || s=="" || !t || t=="") return "-";
+ var a=_uGC(c,"__utma="+_udh+".",s);
+ var lt=0,i=0;
+ if ((i=a.lastIndexOf(".")) > 9) {
+  _uns=a.substring(i+1,a.length);
+  _uns=(_uns*1)+1;
+  a=a.substring(0,i);
+  if ((i=a.lastIndexOf(".")) > 7) {
+   lt=a.substring(i+1,a.length);
+   a=a.substring(0,i);
+  }
+  if ((i=a.lastIndexOf(".")) > 5) {
+   a=a.substring(0,i);
+  }
+  a+="."+lt+"."+t+"."+_uns;
+ }
+ return a;
+}
+function _uTrim(s) {
+  if (!s || s=="") return "";
+  while ((s.charAt(0)==' ') || (s.charAt(0)=='\n') || (s.charAt(0,1)=='\r')) s=s.substring(1,s.length);
+  while ((s.charAt(s.length-1)==' ') || (s.charAt(s.length-1)=='\n') || (s.charAt(s.length-1)=='\r')) s=s.substring(0,s.length-1);
+  return s;
+}
+function _uEC(s) {
+  var n="";
+  if (!s || s=="") return "";
+  for (var i=0;i<s.length;i++) {if (s.charAt(i)==" ") n+="+"; else n+=s.charAt(i);}
+  return n;
+}
+function __utmVisitorCode(f) {
+ var r=0,t=0,i=0,i2=0,m=31;
+ var a=_uGC(_ubd.cookie,"__utma="+_udh+".",";");
+ if ((i=a.indexOf(".",0))<0) return;
+ if ((i2=a.indexOf(".",i+1))>0) r=a.substring(i+1,i2); else return "";  
+ if ((i=a.indexOf(".",i2+1))>0) t=a.substring(i2+1,i); else return "";  
+ if (f) {
+  return r;
+ } else {
+  var c=new Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9');
+  return c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r&7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5&m]+c[t&m];
+ }
+}
+function _uIN(n) {
+ if (!n) return false;
+ for (var i=0;i<n.length;i++) {
+  var c=n.charAt(i);
+  if ((c<"0" || c>"9") && (c!=".")) return false;
+ }
+ return true;
+}
+function _uES(s,u) {
+ if (typeof(encodeURIComponent) == 'function') {
+  if (u) return encodeURI(s);
+  else return encodeURIComponent(s);
+ } else {
+  return escape(s);
+ }
+}
+function _uUES(s) {
+ if (typeof(decodeURIComponent) == 'function') {
+  return decodeURIComponent(s);
+ } else {
+  return unescape(s);
+ }
+}
+function _uVG() {
+ if((_udn.indexOf("www.google.") == 0 || _udn.indexOf(".google.") == 0 || _udn.indexOf("google.") == 0) && _utcp=='/' && _udn.indexOf("google.org")==-1) {
+  return false;
+ }
+ return true;
+}
+function _uSP() {
+ var s=100;
+ if (_usample) s=_usample;
+ if(s>=100 || s<=0) return true;
+ return ((__utmVisitorCode(1)%10000)<(s*100));
+}
+function urchinPathCopy(p){
+ var d=document,nx,tx,sx,i,c,cs,t,h,o;
+ cs=new Array("a","b","c","v","x","z");
+ h=_uDomain(); if (_udn && _udn!="") o=" domain="+_udn+";";
+ nx=_uNx()+";";
+ tx=new Date(); tx.setTime(tx.getTime()+(_utimeout*1000));
+ tx=tx.toGMTString()+";";
+ sx=new Date(); sx.setTime(sx.getTime()+(_ucto*1000));
+ sx=sx.toGMTString()+";";
+ for (i=0;i<6;i++){
+  t=" expires=";
+  if (i==1) t+=tx; else if (i==2) t=""; else if (i==5) t+=sx; else t+=nx;
+  c=_uGC(d.cookie,"__utm"+cs[i]+"="+h,";");
+  if (c!="-") d.cookie="__utm"+cs[i]+"="+c+"; path="+p+";"+t+o;
+ }
+}
+function _uCO() {
+ if (!_utk || _utk=="" || _utk.length<10) return;
+ var d='www.google.com';
+ if (_utk.charAt(0)=='!') d='analytics.corp.google.com';
+ _ubd.cookie="GASO="+_utk+"; path="+_utcp+";"+_udo;
+ var sc=document.createElement('script');
+ sc.type='text/javascript';
+ sc.id="_gasojs";
+ sc.src='https://'+d+'/analytics/reporting/overlay_js?gaso='+_utk+'&'+Math.random();
+ document.getElementsByTagName('head')[0].appendChild(sc);  
+}
+function _uGT() {
+ var h=location.hash, a;
+ if (h && h!="" && h.indexOf("#gaso=")==0) {
+  a=_uGC(h,"gaso=","&");
+ } else {
+  a=_uGC(_ubd.cookie,"GASO=",";");
+ }
+ return a;
+}
+var _utk=_uGT();
+if (_utk && _utk!="" && _utk.length>10 && _utk.indexOf("=")==-1) {
+ if (window.addEventListener) {
+  window.addEventListener('load', _uCO, false); 
+ } else if (window.attachEvent) { 
+  window.attachEvent('onload', _uCO);
+ }
+}
+
+function _uNx() {
+  return (new Date((new Date()).getTime()+63072000000)).toGMTString();
+}
diff --git a/lib-timeout-home-widget.c b/lib-timeout-home-widget.c
new file mode 100644 (file)
index 0000000..a548981
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * This file is part of hildon-timeout-home-widget-example
+ *
+ * Copyright (C) 2009 Nokia Corporation. All rights reserved.
+ *
+ * This maemo code example is licensed under a MIT-style license,
+ * that can be found in the file called "COPYING" in the root
+ * directory.
+ *
+ */
+
+#include <gtk/gtk.h>
+#include <hildon/hildon.h>
+
+#include "lib-timeout-home-widget.h"
+
+#include "location-provider.h"
+
+HD_DEFINE_PLUGIN_MODULE (TimeOutPlugin, time_out_plugin, HD_TYPE_HOME_PLUGIN_ITEM)
+
+GtkTextBuffer *debugBuffer = NULL;
+
+static void printDebug(const char *msg)
+{
+    if (debugBuffer != NULL) {
+        gtk_text_buffer_insert_at_cursor(debugBuffer, msg, -1);
+        gtk_text_buffer_insert_at_cursor(debugBuffer, "\n", -1);
+    }
+}
+
+char debugStr[1024];
+#define debug(...) sprintf(debugStr, __VA_ARGS__); printDebug(debugStr)
+
+static void location_listener(double latitude, double longitude)
+{
+    debug("got location: %f, %f", latitude, longitude);
+}
+
+int locationTrackingOn = 0;
+void search_button_clicked(GtkButton *button, gpointer user_data)
+{
+    if (!locationTrackingOn) {
+        // Setup location tracking
+        setup_location_provider();
+        set_location_listener(location_listener);
+        start_location_provider();
+
+        locationTrackingOn = 1;
+        debug("Location tracking started");
+    } else {
+        stop_location_provider();
+        cleanup_location_provider();
+
+        locationTrackingOn = 0;
+        debug("Location tracking stopped");
+    }
+}
+
+static GtkWidget *build_ui(void)
+{
+    GtkVBox *contents = GTK_VBOX(gtk_vbox_new(0, FALSE));
+    GtkLabel *label = GTK_LABEL(gtk_label_new("Get me home"));
+//     HildonPickerButton *action;
+//     action = HILDON_PICKER_BUTTON (hildon_picker_button_new (HILDON_SIZE_FINGER_HEIGHT,
+//                                         HILDON_BUTTON_ARRANGEMENT_VERTICAL));
+//     HildonTouchSelector *action_selector;
+//     action_selector = HILDON_TOUCH_SELECTOR (hildon_touch_selector_new_text ());
+//     hildon_button_set_title (HILDON_BUTTON (action), "Action");
+//     hildon_touch_selector_append_text (action_selector, "Blank Screen");
+//     hildon_touch_selector_append_text (action_selector, "Suspend");
+//     hildon_touch_selector_append_text (action_selector, "Turn Off");
+//     hildon_picker_button_set_selector (action, action_selector);
+//     hildon_picker_button_set_active (action, 0);
+
+    GtkWidget* getmehomeButton = hildon_gtk_button_new(HILDON_SIZE_AUTO);
+    gtk_button_set_label(GTK_BUTTON(getmehomeButton), "Search");
+
+    g_signal_connect(getmehomeButton, "clicked", G_CALLBACK(search_button_clicked), NULL);
+
+//     HildonTimeButton *time;
+//     time = HILDON_TIME_BUTTON (hildon_time_button_new (HILDON_SIZE_FINGER_HEIGHT,
+//                                         HILDON_BUTTON_ARRANGEMENT_VERTICAL));
+//     hildon_time_button_set_time (time, 22, 00);
+
+    GtkHBox *buttons = GTK_HBOX(gtk_hbox_new(0, TRUE));
+    gtk_container_add(GTK_CONTAINER(buttons), GTK_WIDGET(getmehomeButton));
+//     gtk_container_add (GTK_CONTAINER (buttons), GTK_WIDGET (action));
+//     gtk_container_add (GTK_CONTAINER (buttons), GTK_WIDGET (time));
+
+    GtkWidget *debugView = hildon_text_view_new();  // gtk_text_view_new();
+    gtk_widget_set_size_request(GTK_WIDGET(debugView), 400, 200);
+    debugBuffer = hildon_text_view_get_buffer(HILDON_TEXT_VIEW(debugView)); // gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
+    GtkWidget* debugScroller = gtk_scrolled_window_new(NULL, NULL);
+    gtk_container_add(GTK_CONTAINER(debugScroller), GTK_WIDGET(debugView));
+
+    gtk_box_pack_start(GTK_BOX(contents), GTK_WIDGET(label), FALSE, FALSE, 0);
+    gtk_box_pack_end(GTK_BOX(contents), GTK_WIDGET(buttons), FALSE, FALSE, 0);
+    gtk_box_pack_end(GTK_BOX(contents), GTK_WIDGET(debugScroller), FALSE, FALSE, 0);
+    gtk_widget_show_all(GTK_WIDGET(contents));
+
+    return GTK_WIDGET(contents);
+}
+
+static void
+time_out_plugin_init (TimeOutPlugin *desktop_plugin)
+{
+    GtkWidget *contents = build_ui ();
+    gtk_container_add (GTK_CONTAINER (desktop_plugin), contents);
+}
+
+static void
+time_out_plugin_class_init (TimeOutPluginClass *class) {}
+
+static void
+time_out_plugin_class_finalize (TimeOutPluginClass *class) {}
diff --git a/lib-timeout-home-widget.h b/lib-timeout-home-widget.h
new file mode 100644 (file)
index 0000000..3c657aa
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * This file is part of hildon-timeout-home-widget-example
+ *
+ * Copyright (C) 2009 Nokia Corporation. All rights reserved.
+ *
+ * This maemo code example is licensed under a MIT-style license,
+ * that can be found in the file called "COPYING" in the root
+ * directory.
+ *
+ */
+
+#ifndef TIME_OUT_PLUGIN_H
+#define TIME_OUT_PLUGIN_H
+
+#include <glib-object.h>
+
+#include <libhildondesktop/libhildondesktop.h>
+
+G_BEGIN_DECLS
+
+typedef struct _TimeOutPlugin TimeOutPlugin;
+typedef struct _TimeOutPluginClass TimeOutPluginClass;
+
+#define TIME_OUT_TYPE_HOME_PLUGIN (time_out_home_plugin_get_type ())
+
+#define TIME_OUT_HOME_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+                        TIME_OUT_TYPE_HOME_PLUGIN, TimeOutHomePlugin))
+
+#define TIME_OUT_HOME_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
+                        TIME_OUT_TYPE_HOME_PLUGIN, TimeOutHomePluginClass))
+
+#define TIME_OUT_IS_HOME_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+                        TIME_OUT_TYPE_HOME_PLUGIN))
+
+#define TIME_OUT_IS_HOME_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
+                        TIME_OUT_TYPE_HOME_PLUGIN))
+
+#define TIME_OUT_HOME_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \
+                        TIME_OUT_TYPE_HOME_PLUGIN, TimeOutHomePluginClass))
+
+struct _TimeOutPlugin
+{
+    HDHomePluginItem hitem;
+};
+
+struct _TimeOutPluginClass
+{
+    HDHomePluginItemClass parent_class;
+};
+
+GType time_out_home_plugin_get_type(void);
+
+G_END_DECLS
+
+#endif
diff --git a/location-provider.c b/location-provider.c
new file mode 100644 (file)
index 0000000..58e3701
--- /dev/null
@@ -0,0 +1,100 @@
+#include "location-provider.h"
+
+#include <location/location-gps-device.h>
+#include <location/location-gpsd-control.h>
+
+void (*listener)(double, double) = NULL;
+
+/*static void on_error(LocationGPSDControl *control, LocationGPSDControlError error, gpointer data)
+{
+       g_debug("location error: %d... quitting", error);
+       g_main_loop_quit((GMainLoop *) data);
+}*/
+
+static void on_changed(LocationGPSDevice *device, gpointer data)
+{
+    if (device == NULL || listener == NULL) {
+        return;
+    }
+
+    if (device->fix) {
+        if (device->fix->fields & LOCATION_GPS_DEVICE_LATLONG_SET) {
+            listener(device->fix->latitude, device->fix->longitude);
+        }
+    }
+}
+
+/*static void on_stop(LocationGPSDControl *control, gpointer data)
+{
+       g_debug("quitting");
+       g_main_loop_quit((GMainLoop *) data);
+}*/
+
+/*static gboolean start_location(gpointer data)
+{
+       location_gpsd_control_start((LocationGPSDControl *) data);
+       return FALSE;
+}*/
+
+LocationGPSDControl *control = NULL;
+LocationGPSDevice *device = NULL;
+
+void setup_location_provider()
+{
+//     GMainLoop *loop;
+
+//     g_type_init();
+
+//     loop = g_main_loop_new(NULL, FALSE);
+
+    if (control != NULL) {
+        return;
+    }
+
+    control = location_gpsd_control_get_default();
+    device = g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL);
+
+    g_object_set(G_OBJECT(control),
+        "preferred-method", LOCATION_METHOD_USER_SELECTED,
+        "preferred-interval", LOCATION_INTERVAL_DEFAULT,
+        NULL);
+
+//     g_signal_connect(control, "error-verbose", G_CALLBACK(on_error), loop);
+    g_signal_connect(device, "changed", G_CALLBACK(on_changed), control);
+//     g_signal_connect(control, "gpsd-stopped", G_CALLBACK(on_stop), loop);
+
+//     g_idle_add(start_location, control);
+
+//     g_main_loop_run(loop);
+}
+
+void cleanup_location_provider()
+{
+    if (control != NULL) {
+        location_gpsd_control_stop(control);
+
+        g_object_unref(device);
+        g_object_unref(control);
+        device = NULL;
+        control = NULL;
+    }
+}
+
+void start_location_provider()
+{
+    if (control != NULL) {
+        location_gpsd_control_start(control);
+    }
+}
+
+void stop_location_provider()
+{
+    if (control != NULL) {
+        location_gpsd_control_stop(control);
+    }
+}
+
+void set_location_listener(void (*newListener)(double, double))
+{
+    listener = newListener;
+}
diff --git a/location-provider.h b/location-provider.h
new file mode 100644 (file)
index 0000000..31df5c7
--- /dev/null
@@ -0,0 +1,12 @@
+#ifndef LOCATION_PROVIDER_H
+#define LOCATION_PROVIDER_H
+
+void setup_location_provider();
+void cleanup_location_provider();
+
+void start_location_provider();
+void stop_location_provider();
+
+void set_location_listener(void (*newListener)(double, double));
+
+#endif
diff --git a/timeout-home-widget.desktop.in b/timeout-home-widget.desktop.in
new file mode 100644 (file)
index 0000000..a3faf4c
--- /dev/null
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Name=TimeOut Widget
+Comment=Execute an action at a given time
+Type=default
+X-Path=lib-timeout-home-widget.so
diff --git a/welcome b/welcome
deleted file mode 100644 (file)
index e69de29..0000000