[OSM-talk] Student Project Ideas?
Bernhard zwischenbrugger
bz at datenkueche.com
Wed Mar 10 19:00:02 GMT 2010
Hi
I have a project:
If you have nothing else just copy/paste from snip to snap and correct
my bad english.
---snip---
title: It's about zooming the browser maps...
The javascript map library khtmlib is a free library to display maps in
browsers.
It has a simple API to display map tiles at the browser window in a very
fast way.
Also the simple vector graphics circle, path and area are supported.
The API provides a complete WGS84 cordinate system and frees programmers
of thinking in screen x,y coordinates.
Browsers like webkit or opera are doing this job quiet well but webkit
has a bad bugs with image loading.
Firefox is slow, but I'm sure it will change.
To have a fast javascript browser map that can easily compete with
google or bing map will be the result of this project.
The way to get a fast map is benchmarking and that is this GsoC Projekt
Our unit is frames per second!
Most of the map libs and browsers are able to move the map
in a usable or smooth way.
To win a new dimension in map browsing we need the z-Axis. Also smooth
rendered.
A nice, responsive, smooth zoom opens a new intuitive way to explore the
world.
Like in video games we have a more usable map if we have more frames per
second.
Most of the computers have the hardware to show perfect frame rates.
From javascript to the screen, there are some problems.
This library has an interface to measure frames per seconds. It was used
to opitimice speed while developing.
====the project details===
Automatic Banchmark tests:
Calling the API in a loop is easy done in a for loop. Counting from
1..18 in small steps can result in a zoom and 1000 frames.
o moving the map
o zooming the map
(o caching)
Parameter:
10,100,1000,10000 vektor lines, areas, circles
Map size on screen
Hardware!
Browser (navigator.userAgent)
Visual feedback:
The tester should see the map and should be able to judge about the
behavior of the browser.
Is flickering...
Some browsers are cheating. Pointer devices deliver lots of events and
every event is a task. Now it's programming with parallel tasks and to
have good speed, serializing is nesessary. To serialize this tasks is
not easy. Firefox starts extra tasks to render images and gives a
success message bevor the work is done.
It can result in flickering image or speed penalty the automatic test
does not recognice.
API Dokumentation
The API should be documented in a half automatic way. (grep
this.xyyx=function in js)
Collecting results:
Like other browser benchmark tests, this test can be done by many users.
For collecting results, there must be an AJAX feedback collector.
This feedback should be generated without user action.
The user must be able to add more information and send it to a central
db (one click).
As a result of this action, the result will be displayed on a ranking.
There must also be an administrator option to delete entries.
A Highscore in gameboy or what ever design! would be ok.
If there are many Chrome on the top of the list, it's very likely that
Chrome is the fastest browser.
To prevent manipulation a simple ip based system should be ok. 1 IP == 1
Result.
(ignoring proxys,...)
If the test provides a faster benchmark result on this IP adress, the
faster result overwrites the slower.
Graphics:
Display vector data on browser is not widly used because of Internet
Explorer is blocking SVG.
For map data it is essential.
There must be a diagram that showed the framerate and the number of
lines in an x,y diagram.
The library:
(I made this library and did put it under GPL)
The library khtmlib is not perfect at all. It's buggy but fast.
At least it is a prove of concept.
To see it live go to:
Please use Chrome 5 (faster than 4), Safari or Opera 10.50 (windows).
Try to zoom on cached tiles.
http://www.khtml.org/iphonemap/
Project Home:
http://github.com/robotnic/khtmlib
---snap----
Firefox does not provide the same speed at the moment. Internet Explorer
does not work at all (evt.pageX).
I'm working here on a netbook and have no idea how it works in
fullscreen on a 24" monitor.
That's my project idea. A benchmark test for my map lib.
Maybe it's also help for the programmer of this lib to make it really good.
In a few days I hope to have some more documentation and I will give
more informations about the khtmlib.
Btw. I'm still in Phnom Penh but in a few days I will continue traveling
to Laos.
Bernhard
More information about the talk
mailing list