OSGeo Code Sprint Bolsena 2010

July 23rd, 2010 just No comments

Like in 2009, I attended the OSGeo Code Sprint (and Hacking Event) in Bolsena, Italy during June 6-12, 2010. For one week developers from various Free and Open Source for Geospatial (often abbreviated as FOSS4G) projects get together in a monastery near Bolsena for code sprints, cross-project collaborations, presentations and geo-hacking in general. This all takes place in a relaxed atmosphere mostly outside. Thanks to the cook Enzo we enjoyed the Italian kitchen. This year I did some work on GeoNetwork and more in depth on INSPIRE FOSS, a new FOSS project I initiated to support the development of INSPIRE using FOSS. In Bolsena I worked closely together with the deegree lead developers Markus Schneider and Andreas Schmitz from lat/lon. At the spot we were able to construct a demo that showcased the power of the upcoming deegree version 3 WFS/WMS in supporting INSPIRE Data Themes. Meeting project leads and developers and following presentations from other projects like GeoServer, deegree and MapBender was really worthwhile. Like last year I have made a video impression you can see below or on YouTube.

Categories: General, GeoCetera, Projects, Software, osgeo Tags:

OpenStreetMap Tiles for Dutch Projection EPSG:28992

March 17th, 2010 just No comments

This article documents how to generate OpenStreetMap (OSM) tiles for the Dutch RD (“Rijksdriehoeksmeting”) projection also known as EPSG:28992. The steps described below can be used for other projections as well. I assume you are familiar with the OpenStreetMap (OSM) project. If not, there is ample information on the web, for example the OSM Wiki. What makes OSM very attractive is not just the shared mapmaking and an unrestrictive license on the resulting map(data), but a toolchain, that allows you to generate/render your own maps !.

In addition, OSM within The Netherlands is very detailed since Automotive Navigation Data (AND) has donated a complete road dataset for The Netherlands in 2007 to the OSM project. OSM maps are usually rendered as 256×256 tiles in a Spherical Mercator projection with the (unofficial) code EPSG:900913, a.k.a. the “Google Projection”. Spherical Mercator has an official designation of EPSG:3785 but you will mostly find EPSG:900913. Most countries however use local map-projections, mainly for better accuracy and calculations. Most Dutch mapping applications use the aforementioned Dutch RD projection, EPSG:28992. Generating OSM tiles for EPSG:28992 requires some extra steps and has some gotchas you need to be aware of.

Below, I will not describe the setup of the entire toolchain needed to generate OSM map tiles with Mapnik, but just the steps that are specific to our goal: generate OSM map tiles for extent of The Netherlands with the projection EPSG:28992. These steps were done on Ubuntu Linux 9.04 (Jaunty). So let’s take the seven steps!

Step 1: download OSM data
Since we only plan to generate tiles for The Netherlands, plus the fact that the projection EPSG:28992 will not even work around the world, we need only an extract for The Netherlands. I have downloaded this extract from
http://hypercube.telascience.org/planet/planet-nl-latest.osm.gz,
but at the time of this writing this file was not present. Best is to go to http://wiki.openstreetmap.org/wiki/Planet.osm to find a suitable download server. Unpack planet-nl-latest.osm.gz. The resulting XML file planet-nl-latest.osm is around 4.5 GB.

Step 2: import OSM data in PostGIS
Use osm2pgsql to import the Planet XML file into the PostgreSQL/PostGIS database. Since the standard version from the Ubuntu repository gave errors I have built a custom version of osm2pgsql from SVN (rev. 20274) using these steps:

 sudo apt-get install build-essential libxml2-dev libgeos-dev \
                                       libpq-dev libbz2-dev proj
 mkdir /opt/osm/osm2pgsql
 cd /opt/osm/osm2pgsql
 svn export \
    http://svn.openstreetmap.org/applications/utils/export/osm2pgsql \
                                                       svn-20274
 sed -i 's/-g -O2/-O2 -march=native -fomit-frame-pointer/' Makefile
 make
 make install

Import the OSM file with this command line:

 osm2pgsql --slim -c -E EPSG:4326 -d georzlab -U postgres -W -H localhost
      -S /opt/osm/osm2pgsql/svn-20274/default.style
          /path/to/planet-nl-latest.osm

Note the use of EPSG:4326 (standard lon/lat projection) to store data in the DB. Maybe I could have used the default EPSG:900913. The
--slim option was needed to prevent errors.

Step 3: install Mapnik
An install of Mapnik, the map tile renderer, version 0.7.0 from http://svn.mapnik.org/tags/release-0.7.0 was done. Installing Mapnik itself involves many steps. These are described in many places, such as here and for Ubuntu at http://trac.mapnik.org/wiki/UbuntuInstallation. Best is to have a Mapnik version as recent as possible.

Step 4: download and extract World Boundary files
This is a standard step in the Mapnik rendering process for OSM. Specific in our case is that we will extract only the area of The Netherlands from the World Boundary shape files. This is not just for efficiency purposes but required, otherwise rendering boundaries/geonames will silently fail (see below). Two steps are required here: 1) extract/clip the Netherlands’ bounding box and 2) reproject extracted data to EPSG:28992. Thanks to the wonderful geo-library GDAL/OGR and the command ogr2ogr for vector data manipulations, this can be done in a script as follows:

#!/bin/bash

# location of shape files
cd /var/kademo/data/osm/world_boundaries

#
# Extract NL area to Dutch RD (EPSG:28992)
# get extent in EPSG:900913 from PostGIS:
#    select ST_Extent(ST_Transform(way,900913)) from planet_osm_line;
#
extent="311523.765594493 6555476.44574815 822461.515529216 7160903.43417988"
srs=28992
echo "Extract NL for EPSG:${srs}"
/bin/rm `/bin/ls *${srs}*`
ogr2ogr -f "ESRI Shapefile" -s_srs EPSG:900913 -t_srs EPSG:${srs} \
               -spat ${extent}  builtup_area_${srs}.shp builtup_area.shp
ogr2ogr -f "ESRI Shapefile" -s_srs EPSG:900913 -t_srs EPSG:${srs} \
               -spat ${extent}  processed_p_${srs}.shp processed_p.shp
ogr2ogr -f "ESRI Shapefile" -s_srs EPSG:900913 -t_srs EPSG:${srs}  \
               -spat ${extent}  shoreline_300_${srs}.shp shoreline_300.shp

The extent in EPSG:900913 can be obtained from the data in PostGIS with the psql command
select ST_Extent(ST_Transform(way,900913)) from planet_osm_line;.

This extra step came about after great help from the very active Dutch OSM mailing list. You can read the relevant thread here. It became clear that the clip/reproject step was necessary. The reason is most probably the Mapnik bug http://trac.mapnik.org/ticket/308.

Also make sure that you have the proper settings for EPSG:28992 in PROJ’s EPSG file, usually located in /usr/share/proj/epsg and make sure that this setting is actually used by ogr2ogr. Older versions of GDAL may use their own PROJ settings in their .csv files. The PROJ/PostGIS/GDAL issues around EPSG:28992 deserve a blog-post by themselves. At this moment even http://spatialreference.org/ref/epsg/28992 publishes wrong PROJ values. The issue mainly deals with the +towgs84 parameter, needed for reprojections, not being present.

Step 5: install and configure OSM Mapnik tools
This step involves changing the OSM-specific Python-scripts and the Mapnik XML configuration (“The Mapnik Map File”) for invoking Mapnik.

I installed SVN rev. 20274 with the command
svn export http://svn.openstreetmap.org/applications/rendering/mapnik
and ran
generate_xml.py to generate a basic configuration.

The main step is making changes to the Mapnik map file osm.xml and its included files in inc/*.xml.inc. Below is relevant info.

We need to determine the extent for our tiling scheme. This is in general different from the extent of the dataset. It is the same extent that you will need in your tiling server like TileCache and your web client like OpenLayers. There is unfortunately no Dutch standard for this extent. I have used the following values

 EPSG:28992 (RD)       -65200.96,    242799.04  375200.96,   683200.96
 EPSG:4326 (WGS84)     2.307,	       50.134         8.752,	       54.087

Change extent in datasource-settings.xml.inc:

2.307,50.134,8.752,54.087

Since our PostGIS data is in EPSG:4326 change inc/settings.xml.inc:

  < !ENTITY osm2pgsql_projection "&srs4326;">

Edit inc/entities.xml.inc and add new XML entity for the Proj definition for EPSG:28992.

 < !ENTITY srs28992 "+proj=sterea
          +lat_0=52.15616055555555 +lon_0=5.38763888888889
          +k=0.9999079 +x_0=155000 +y_0=463000
          +ellps=bessel
          +towgs84=565.237,50.0087,465.658,-0.406857,0.350733,-1.87035,4.0812
          +units=m +no_defs">

See also here for the right “Proj” definition. The only change required in osm.xml is:

   <Map bgcolor="#b5d0d0" srs="&srs28992;" minimum_version="0.6.1">

There is no need to change Layer elements in osm.xml since they keep the projection from the entity osm2pgsql_projection.

In inc/layer-shapefiles.xml.inc change the names/projections to those of the extracted/reprojected shape files in Step 4. I have used XML entities as follows:

 <layer name="world" status="on" srs="&srs;">
     <stylename>world</stylename>
    <datasource>
       <parameter name="type">shape</parameter>
       <parameter name="file">&world_boundaries;/shoreline_300_&projection;</parameter>
    </datasource>
</layer>

With &srs; being EPSG:28992 and &projection; 28992.

Step 6: Generate Test Tile
The moment of truth ! We are going to generate a single map image to test all of our settings.
I made a copy of the Python file generate_image.py and modifed this file as follows:


if __name__ == "__main__":
    try:
        mapfile = os.environ['MAPNIK_MAP_FILE']
    except KeyError:
        mapfile = "osm.xml"
    map_uri = "/path/to/output/file.png"

    # Map image bbox
    ll = (4, 52.3, 5, 52.5)

    # zoomlevel
    z = 10
    imgx = 50 * z
    imgy = 50 * z

    m = mapnik.Map(imgx,imgy)
    mapnik.load_map(m,mapfile)
    prj = mapnik.Projection("
     +proj=sterea +lat_0=52.15616055555555
     +lon_0=5.38763888888889
     +k=0.9999079 +x_0=155000 +y_0=463000
     +ellps=bessel
     +towgs84=565.237,50.0087,465.658,-0.406857,0.350733,-1.87035,4.0812
     +units=m +no_defs")
    c0 = prj.forward(mapnik.Coord(ll[0],ll[1]))
    c1 = prj.forward(mapnik.Coord(ll[2],ll[3]))
    if hasattr(mapnik,'mapnik_version') and mapnik.mapnik_version() >= 800:
        bbox = mapnik.Box2d(c0.x,c0.y,c1.x,c1.y)
    else:
        bbox = mapnik.Envelope(c0.x,c0.y,c1.x,c1.y)
    m.zoom_to_box(bbox)
    im = mapnik.Image(imgx,imgy)
    mapnik.render(m, im)
    view = im.view(0,0,imgx,imgy) # x,y,width,height
    view.save(map_uri,'png')

It was here that many of the issues solved above emerged. Below is the image of the first attempt with a silent failure resulting in the World boundary shapefiles being ignored.

After using extract/clip (Step 4) the resulting image became as follows.

This looked much better. Now the final step is generating all tiles for The Netherlands. Normally this can be done with the OSM script generate_tiles.py, but this script is specific for the Google projection and should be rewritten for EPSG:28992 and the extent used above. For the time being I have used TileCache to render and serve the tiles. This is the final step.

Step 7: render tiles with TileCache
Here I used a standard TileCache installation with the following configuration.

[osm_28992]
type=Mapnik
mapfile=/path/to/osm.xml
spherical_mercator=false
resolutions=860.160,430.080,215.040,107.520,53.760,26.880,13.440,6.720,3.360,\
                     1.680,0.840,0.420,0.210,0.105,0.0525
metatile=yes
bbox=-65200.96, 242799.04, 375200.96, 683200.96
srs=EPSG:28992

Note that the bbox is the same as the extent in the Mapnik mapfile. Together with these specific resolutions the resulting zoom-levels will approach natural map scales used in The Netherlands like 1:25000. Tiles will be generated during requests. One can also explicitly generate tiles using the standard TileCache script tilecache_seed.py. I used:

  su -s /bin/bash -c "tilecache_seed.py osm_28992 0 12" www-data

This will take quite some time also dependent on your TileCache installation (CGI/FastCGI). IMO it will be better to rewrite OSM generate_tiles.py. Below is a resulting excerpt from generated tiles.

Somehow the map looks somewhat more busy than the standard OSM “Slippy Map”. This may be due to settings in osm.xml with respect to scales and showing/hiding layers.

Finally

I hope the above info is useful not just for those that need to generate tiles in Dutch projection but also for other projections. For example for an INSPIRE project I have generated tiles in ETRS89 (EPSG:4258) with some slight modifications to the Mapnik config and TileCache config. Some further work could include more automation within the OSM Mapnik scripts/config in particular generate_tiles.py. Also, being able to use these tiles in GeoWebCache would be very useful.

Guilty landscapes, an Omaha Beach/Band of Brothers geo-journey

January 22nd, 2010 just No comments

Last summer I participated in a full-day guided tour along the second world war (WWII) invasion beaches in Normandy, France. Specific subjects of the tour were Omaha Beach and places where events of “Easy Company” (E Company of the 2nd Battalion, 506th IR, 101st Airborne Division, US Army) a.k.a. the Band of Brothers took place. These true events are described in a book by Stephen Ambrose from which the famous TV-series was made in 2001 (the book is also worthwhile!). The tour was organized by Overlord Tour. This tour, in a company with mainly American WWII-buffs, was very in-depth and worldwhile, in particular in combination with the landscape. The Dutch painter/writer Armando once coined the phrase “guilty landscape” (“schuldig landschap”).

Since I have an interest in WWII history, geography, geospatial, GPS and multimedia, I made a trace with my Garmin eTrex Legend® HCx, shot photo’s/video and uploaded all to georambling.com, one of my pet projects. You can view the trace with geotagged media there as well. I’ve also created a video with iMovie from all materials including the GPS traces (see below).

Subsequently I got a message from Google that my video was banned in Germany ! First I thought because of some swastika’s appearing (carried btw by American soldiers as a trophy after conquering Marmion’s farm), but the reason was more modern: it has to do with a long-standing dispute between Google and the German collecting society, GEMA. This makes more sense and may also explain the ads popping up to buy the music (roll over Beethoven). So it is not a “Don’t mention the war” thing. BTW I am a pacifist.

Categories: General, GeoCetera, osgeo Tags:

OSGeo Hacking Event Bolsena

June 29th, 2009 just No comments

Last week I attended the OSGeo Hacking event in Bolsena, Italy. For a week developers from various Free/Open Source Geo-projects (mostly OSGeo projects) get together in a monastry near Bolsena for code sprints, cross-project discussions, presentations, enjoying italian food and more fun. I have been working on the GeoNetwork project some time, so it was good to meet and work with the GN team. Meeting project leads and developers and following presentations from other projects like GeoServer, Deegree and MapBender was really worthwhile. To get an impression you can watch the media mix I made from various photo’s/videos made by me and other participants.

Categories: GeoCetera, Projects, Software, osgeo Tags:

Tracking Frisian Solar Challenge

June 28th, 2008 just Comments off

Tracking the 2009-edition of the Frisian Solar Challenge, a ‘World Cup for Solar Powered Boats’, with GeoSailing. See www.geosailing.com/fsc08.

Random images from the race.

random image random image
Categories: GeoCetera, Projects Tags:

Waag/7Scenes Launches GamesAtelier

March 17th, 2008 just No comments

On friday march 14, 2008 Mayor Job Cohen of Amsterdam was the first player of the GamesAtelier product that Waag Society launched. We at 7Scenes have worked hard to get the software done.

Cohen Sara

links
www.gamesatelier.nl
Games Atelier officieel van start
parool.nl

Categories: General, GeoCetera, Projects Tags:

Making a Mobile Game at Picnic 07

October 3rd, 2007 just No comments

At Picnic 07 we held 2 workshops using our WalkAndPlay mobile gamekit (based on GeoTracing). Here participants can Create, Play and View a GPS-based locative mobile game.
Below is one of the results from the Picnic Junior Workshop for highschools. You may also want to view the high resolution movie.

This work will be continued at 7scenes (more info soon).

Categories: GeoCetera, Mobile, Projects, Software Tags:

Geosailing Tracks Schuttevaer Sailing Race

June 8th, 2007 just No comments

(Random images taken by sailors from www.geosailing.com/svr)

random image random image

During June 7-9, 2007 the Dutch Schuttevaerrace was covered live using GeoTracing in combination with Falcom Mambo GPS/GPRS tracking devices attached onboard with 15 boats. I did this project jointly with the Kenniscentrum Jachtbouw (Dennis Carton, project initiator), Grrr (Jelmer Boomsma and Rolf Coppens) and the Internet Acedemy of the Noordelijke Hogeschool Leeuwarden (Frederik van der Meulen, Ronald Klooster). Except with some GPS-fixing and GPRS coverage issues and this event was a huge success.

Some screenshots.

screenshot image
The Start
screenshot image
Routes and Photo’s

Read more on www.geosailing.com.

Categories: General, Mobile, Projects Tags:

Waag Society Sarai Workshop with GeoTracing

April 2nd, 2007 just No comments

Waag Society held a Locative Media workshop @ Sarai Media lab, Delhi, India using GeoTracing. View the video for an impression.

Categories: GeoCetera, Mobile, Projects Tags:

Bliin

November 20th, 2006 just No comments

(Random images from bliin.com)

random image random image

And another GeoTracing project: bliin is a social networking service where users can spot, trace and share experiences — pictures, videos, audio and text — with one another in real-time on a Google Map.

Users create ‘bliins’ to navigate and monitor their interests in a location or area. bliins can be saved and shared amongst users.

bliin is available for Desktop & Pocket internet.

bliin is currently testing in closed beta. Users you see are live and media is uploaded in real-time.”

Read all on bliin.com. While still in alpha-stage bliin already attracted press and 1000-s of visitors. Below some links to various press articles and blogs.

“Altijd te vinden via GPS”, Editie NL, RTL 4, David Behrens, 10-30-2006
“Digitale pioniers”, Elektronische Eeuw, BNR Nieuwsradio, Herbert Blankesteijn, 10-26-2006
“Op bliin kan je jezelf volgbaar maken…” Radio Online, Tros, Francisco van Jole, 10-24-2006
“Digitale pioniers?”, Ymerce, Yme Bosma, 10-23-2006
“Woophy, bliin en Bugpool winnaars…”, Digitale Pioniers Academy, Syb Groeneveld, 10-23-2006
“Drie digitale pioniers krijgen 25 duizend euro”, Bright, Tonie van Ringelestijn, 10-23-2006
“Digitale pioniers academie, de uitreiking”, SUbWAY, 10-21-2006
“Final Part of Digital Pioneers Academy”, gnispen World in Pictures, Guido van Nispen, 10-21-2006
“GeoTracing”, O’Reilly Radar, Brady Forrest, 9-14-2006

Categories: GeoCetera, Mobile, Projects Tags:

Sense of Brainport

November 20th, 2006 just No comments

Sense of Brainport again a GeoTracing project was launched on september 21, 2006. During one week participants from Brainport were “geotracing” the region of Eindhoven/”Zuid Oost Brabant” with a mobile phone and a GPS.

During the event they could be traced in real-time on the map. While tracing the tracers are posting photos of their impressions. These photo’s are geotagged at the location taken. All their routes are stored in an archive for viewing and playback. Below are some random images (refresh this page to see new images).

random image random image
random image random image
Categories: GeoCetera, Mobile, Projects Tags:

Sense of the City

April 25th, 2006 just No comments

Sense of the City the latest GeoTracing project was launched on april 21, 2006. During the last week of april 2006, ten civilians are “geotracing” the Dutch city of Eindhoven with
a mobile phone and a GPS. During the event they can be traced in real-time on the map. While tracing the tracers are posting photos of their impressions. These photo’s are geotagged at the location taken. All their routes are stored in an archive for viewing and playback. Below are some random images (refresh this page to see new images).

random image random image
random image random image
Categories: GeoCetera, Mobile, Projects Tags:

GeoDrawing in the Night

November 8th, 2005 just No comments

Again I had the opportunity to do a fun and technically challenging geo-project using my GeoTracing platform: developing a GPS-based mobile drawing game for the Amsterdam Museum Night. Teams would go into the city where they compete on who would (geo)draw the most beautiful “8″ by walking with a GPS and a mobile phone. They could embellish their drawings with photo’s and video’s taken and submitted on the spot. The competitive element was creativity with both the drawing and the media. All submitted media were tagged to the geographic locations where they were taken. The player’s movements, tracks and media could be followed in real-time through a webbrowser. You can view a report with video made by Bright magazine.

N8 Game Screen Shot (src: Bright) Screen Shot with winning 8
N8 Game Live Screen Shot (src: Bright Magazine) N8 Game Archive Screen Shot with winner

You can view all results on www.n8spel.nl (select “archief”). This project was initiated by Waag Society. and sponsored by KPN and Geodan

n8-8wacht.jpg n8-botje-1.jpg
n8-duh-1.jpg n8-flip.jpg
Some of the submitted media

Tech Stuff – A Dense Description

The N8-game application was developed in about one month by two developers. It consisted of three main components: (1) the server (2) mobile clients and (3) a web-browser front end.

The mobile client is a Java J2ME application (Midlet) running on a Nokia 6600 communicating with a Holux GPSlim Bluetooth Sirf III GPS module. The main function of this app is to sample GPS data and transmit it to the server. Players could indicate with a button push to start (“pen-down”) and stop drawing (“pen-up”). Media were captured using the standard camera application on a Sony Z1010 phone. Media was submitted by email. The phone’s email adress is coupled to each team.

The server utilized the GeoTracing server without any modification. Basically a GeoTracing server functions as a remote GPS track-logger coupled to a Content Management System. GeoTracing is based on KeyWorx. Incoming media are tied to a player (tracer) and a tracklog and a geographic location using the date in the medium (e.g. EXIF date) or the email submit time. The GeoTracing server provides a REST service for clients to obtain tracklog meta information, (converted) media and tracklog data in an extended GPX format. This also facilitates coupling with AJAX browser-technology (see below). The server also pushes live events like user movements and other tracklog events through Pushlets.

The web-browser front-end was written using pure DHTML with Google Maps, AJAX and a Pushlet client.
Through Pushlets the browser receives real-time events like player movements and incoming media. Using the server REST service with AJAX player and tracklog info is obtained. Conceptually the browser-server interaction follows a distributed Model-View-Controller pattern with the Model on the server, the events to the View (browser) transmitted with Pushlets and the Controller function using AJAX.

Categories: GeoCetera, Mobile, Projects Tags:

Google Maps Hacking is Fun

September 16th, 2005 just 3 comments

(The quick link for my experiments is www.geoskating.com/gmap.)

Just a week ago I learned about the Google Maps JavaScript API. Surprising how easy it was to use and build upon. Especially for my GeoSkating project I needed a more flexible way to display routes and media on a map. So I started experimenting with the Google Maps API. In less then 5 minutes I was able to create a basic map. But I needed more. Based on a GPX (GPS track format) player from Jim Ley I built a TrackPlayer to play back skate routes. In addition the TLabel lib allows you to overlay any HTML on a Google Map. Note: also check out ka-Map. With ka-Map you can do similar things plus it is open source.

Adding layers from any WMS server

Many map servers use a standard URL-pattern based on the Web Map Server (WMS) standard.

So I wanted more: adding my own layers integrated in the map preferably with transparency. Well, this is possible thanks to work by Brian Flood and Kyle Mulka. I have created a simple JavaScript library, gmap-wms.js through which you can add your own WMS layers to a Google Map. The example above is trivial using a single transparent GIF image by faking a WMS server. All Google Maps does is requesting tiles from your WMS server (a lot of them!). In reality you will be running your own WMS server like MapServer.

See all experiments at www.geoskating.com/gmap

Categories: GeoCetera, Software Tags:

From GeoSkating and GeoSailing to GeoTracing

August 21st, 2005 just 1 comment

geosailing logo Opened an experimental site for GeoSailing to cover the 24 Uurs Zeilrace, the largest Dutch annual sailing event. Some 800 ships are competing on the IJsselmeer, Markermeer and Waddenzee to cover as many miles as possible within a 24 hour period. This event is held on August 26 and 27, 2005. One of the competitors will be the Semper, sailed by Dennis,Peter, Rolf and Jelmer. If it all works out the Semper can be followed live, complete with media made and submitted on the spot.

Based on the concepts and software for GeoSkating and GeoSailing I am working on a more generic framework for GeoTracing. The key idea is to provide a customizable application for live tracing, annotated mapping, GPS-based digital storytelling and location-based media for any outdoors activity.

Categories: MediaTech Tags:

GeoSkating in the News

June 18th, 2005 just No comments

News travels fast on the Net. My website for the mobile GPS project GeoSkating went from 10s to 1000s of visitors a day when it entered the international blogsphere and the Dutch national newspaper De Volkskrant. On Google “geoskating” went from 10 hits to 16900 in a week.. I want to thank everyone for their interest, also for the many kind emails I received. It encourages me to proceed with the project.

w

Webalizer Stats on June 18

w

www.we-make-money-not-art.com

w

www.engadget.com

w

www.100shiki.com

w

Volkskrant article (by Carel Helder).

w

www .mobilebulgaria.com

a

Skate en Skeeler (SBN)

Categories: General, Projects Tags:

GeoSkating – Draw maps while skating

May 29th, 2005 just No comments

GeoSkating is my latest project started in february 2005.

GeoSkating aims to automate the generation of interactive annotated skate-maps by using the Global Positioning System (GPS), Mobile Phones and the Internet. The key idea is that while skating, GPS position data is being assembled and published to a server through a mobile phone. At the same time the skater can enrich the GPS data with road surface ratings and by submitting media items like pictures. The server will draw geographic maps showing road quality through colouring plus the submitted media on the GPS locations where they were captured. In addition, skaters can also be seen moving in real-time on the map while skating!

The technical setup is globally as follows. GPS data is sampled using a standard Bluetooth GPS module. This module communicates with a mobile phone, a Nokia 6600. On the mobile phone runs a small Java (J2ME) program that reads the GPS data from the GPS module and sends it through the mobile data network (GPRS) to the geoskating.com server. The skater can enter the road quality as a number (1-5) on the phone keypad. The current quality is always added to each GPS sample sent to the server.

Categories: Mobile Tags:

MIDP 2 on Mac OS X is here !

March 11th, 2005 just 4 comments

bluetooth Since Mac OS X is already my preferred platform for Java development, I was very pleased to experience that J2ME development for MIDP 2.0 has finally become reality. I can now develop, compile, verify, package, run, debug and deploy MIDP 2.0 MIDlets from within my Java IDE (IntelliJ IDEA). All thanks to Michael Powers mpowerplayer. Best way to start is to go to developer.mpowerplayer.com and download the SDK. But there is more.

The Mpowerplayer offers the tools familiar to J2ME developers: MIDP2.0 jars, the preverify tool and a MIDP2.0 emulator. Additionally, if your Mac has Bluetooth support, you can quickly deploy your MIDLet using the OS X Bluetooth File Exchange. To automate deployment I wrote a one-line script btsend.sh that is called directly from within Ant:


#!/bin/sh
/usr/bin/open -a "/Applications/Utilities/Bluetooth File Exchange.app" $1

and then from within Ant

<target name="deploy">
 <exec executable="${basedir}/btsend.sh">
   <arg line="${myproject.jar}"/>
  </exec>
</target>

The only manual action is to select your mobile device from the Bluetooth File Exchange list of devices. On my Nokia 6600 phone I receive an incoming message and the installer is run.

GPS img
If you are developing Bluetooth-based MIDlets using the JSR-82 Bluetooth API you can additionally download, evaluate and acquire the Avetana JSR-82 implementation for OS X. This allows you to fully test Bluetooth-based J2ME apps from within your IDE on Mac OS X. For example, I was able to connect and test to the Delorme Blue Logger GPS

Categories: Apple, Mobile, Software Tags:

Frequency 1550 – cross-media gaming into medieval times

February 9th, 2005 just No comments

Frequency 1550 is a multi-user city game using mobile phones and GPS-technology. The game provides a real-time, location-based experience, transporting players into medieval Amsterdam of 1550 via today’s most advanced personal medium: a UMTS mobile phone. It is the one of the most exciting projects I ever worked on!

Find more info in an article in the Computable magazine (Dutch). There is a project presentation in streaming video on connect.waag.org. There are also
slides of presentations I gave at the Dutch Java User Group (NLJUG) and at the Society for Old and New Media (KillerClub).

The project even hit the national news ! Click on anchor-man Gijs to watch the Flash video.

The game evolves around players being personages in an adventure where they help the “schout” (medieval police) who will contact them by video when entering zones or reaching (GPS) locations. Players will try to solve assignments given by the “schout” on the street or through one of their
team members on the home base, HQ, (behind a Flash-based interface). Assignments are solved by making media (photo’s, videos) at the spot
and submitting these. The HQ may consult internet for additional media and textual answers. Thus together, teams provide multi-media
content, resulting in a media-collage at the end. Additional game elements include, GPS-based boobytrapping, confrontations and cloaking.

My task in this project was development of the server-side gaming engine, media management and location tracking. Yes, the server was done in Java using the KeyWorx platform. Client software was done using the Java 2 Mobile Edition (J2ME) for the phones and Macromedia Flash for the HQ.

I am grateful to have been part of the team at Waag Society who has initiated and developed this mobile learning game together with IVKO, part of the Montessori comprehensive school in Amsterdam. The project was supported by KPN who supplied mobile phones and access to their
UMTS network. A pilot has just been conducted in 2005 from 7 to 9 February.

mobile game hq
mobile game journaal
mobile game pres
Categories: MediaTech, Mobile, Projects Tags:

Vertical centering with CSS

January 19th, 2005 just No comments

After years of tweaking with HTML tables I finally found how to vertical Centring with CSS. Found this through www.hicksdesign.co.uk.

Categories: Software Tags: