{"id":1654,"date":"2012-03-31T20:39:42","date_gmt":"2012-03-31T20:39:42","guid":{"rendered":"http:\/\/www.ollmetzer.com\/?p=1654"},"modified":"2012-03-31T20:39:42","modified_gmt":"2012-03-31T20:39:42","slug":"standortbestimmung-in-websites-fur-smartphones","status":"publish","type":"post","link":"https:\/\/www.ollmetzer.com\/?p=1654","title":{"rendered":"Standortbestimmung in Websites f\u00fcr Smartphones"},"content":{"rendered":"<p>Im Moment bastele ich an einer neuen Version von zzap &#8211; meinem Micromessaging Tool, das ich zwischen 2005 und 2008 entwickelt hatte. Zu jeder Nachricht soll dabei der Ort gespeichert werden, an dem die Nachricht versendet wurde.<\/p>\n<p>Das ist <em>eigentlich<\/em> kein Problem mehr, seit die modernen Smartphones HTML 5 mit der geolocation API unterst\u00fctzen. Die Methode<\/p>\n<pre>navigator.geolocation.getCurrentPosition<\/pre>\n<p>wird mit den Namen von zwei Callback Functions f\u00fcr success und error aufgerufen, an die dann das Positionsobjekt mit Angabe zu L\u00e4ngen- und Breitengrad \u00fcbergeben wird. Interessierten sei hier die offizielle Dokumentation nahegelegt (<a title=\"w3c: Geolocation API\" href=\"http:\/\/dev.w3.org\/geo\/api\/spec-source.html\" target=\"_blank\">W3C: Geolocation API Specification<\/a>).<\/p>\n<p>Eigentlich ganz einfach. Genau &#8211; <em>eigentlich!<\/em><\/p>\n<p>Der Teufel steckt nat\u00fcrlich mal wieder im Detail. Eine entsprechende Seite war schnell gebaut. zur Darstellung der Karte verwende ich OpenStreetMaps und alles w\u00e4re so sch\u00f6n &#8211; wenn die zur\u00fcckgelieferten Koordinaten nicht so schrecklich ungenau w\u00e4ren.<\/p>\n<p><strong>Warum so ungenau?<\/strong><\/p>\n<p>Ich habe in den letzten zwei Wochen etliche Positionsbestimmungen in Berlin (Kreuzberg, Mitte, Prenzlauer Berg), Hannover und Kirchhorst (einem Vorrort von Hannover) und im Stau auf der A2 ausprobiert. Die Ergebnisse lagen h\u00e4ufig um bis zu 200-300m daneben &#8211; egal ob im hochverdichteten Kreuzberg oder auf dem Land. Manchmal stimmten sie aber auch bis auf 5m.<\/p>\n<p>Ich hatte zun\u00e4chst mein Handy &#8211; ein immer nocht recht aktuelles HTC Desire S mit Android 2.3.5 im Verdacht. Andererseits funktioniert die Peilung bei Google Maps sehr schnell und pr\u00e4zise.<\/p>\n<p><strong>Immer exakt gleich falsch<\/strong><\/p>\n<p>Als ich mir dann die Daten ansah, entdeckte ich, dass ich bei den Meldungen aus Kirchhorst immer um ca. 300m auf den Acker verschoben wurde &#8211; und zwar bis auf 8 Nachkommastellen immer auf exakt dieselbe falsche Position. Das machte mich dann doch etwas stutzig. Bei Recherchieren fand ich dann den Artikel &#8222;<a title=\"Rolf Dohrmann: Pr\u00e4zise GPS Daten\" href=\"http:\/\/blog.rolfdohrmann.de\/2010\/07\/prazise-gps-daten-uber-die-w3c-geolocation-api-bekommen\/\" target=\"_blank\">Pr\u00e4zise GPS-Daten \u00fcber die W3C Geolocation API bekommen<\/a>&#8220; von Rolf Dormann. Seine zusammenfassende Erkenntnis (Zitat):<\/p>\n<blockquote>\n<ol>\n<li>Es ist m\u00f6glich, \u00fcber die W3C Geolocation API an die GPS-Daten zu kommen.<\/li>\n<li>Die ersten Daten, die die beiden daf\u00fcr vorgesehenen Methoden liefern, sind nie GPS-Daten.<\/li>\n<li>Irgendwann kommen GPS-Daten.<\/li>\n<li>\u00dcber einen einmaligen Aufruf von getCurrentPosition kommt man nicht an GPS-Daten.<\/li>\n<\/ol>\n<\/blockquote>\n<p>Mann bekommt zwar sehr schnell Positionsdaten, allerdings aus einer Funkzellenabfrage. GPS Daten kommen erst sp\u00e4ter, und man muss die Position dazu mehrfach abfragen.<\/p>\n<p>So &#8211; und damit soll man nun eine intuitive, schnelle Mobile Website bauen, die dann auch noch auf allen wichtigen Ger\u00e4ten funktioniert. <em>grrrr&#8230;<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Moment bastele ich an einer neuen Version von zzap &#8211; meinem Micromessaging Tool, das ich zwischen 2005 und 2008 entwickelt hatte. Zu jeder Nachricht soll dabei der Ort gespeichert werden, an dem die Nachricht versendet wurde. Das ist eigentlich kein Problem mehr, seit die modernen Smartphones HTML 5 mit der geolocation API unterst\u00fctzen. Die [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,4,11],"tags":[],"class_list":["post-1654","post","type-post","status-publish","format-standard","hentry","category-development","category-mobilesleben","category-onlinedienste"],"_links":{"self":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/1654","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1654"}],"version-history":[{"count":1,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/1654\/revisions"}],"predecessor-version":[{"id":1655,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/1654\/revisions\/1655"}],"wp:attachment":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1654"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}