[OSM-dev] Writing an OSM map application

Jon Burgess jburgess777 at googlemail.com
Fri Mar 23 20:09:37 GMT 2007


On Fri, 2007-03-23 at 20:26 +0100, Andreas Volz wrote:
> Hello,
> 
> I like to write an application that uses the map data from OSM. I
> looked how other applications solved this. They import the world.osm
> into a SQL database an read all map information from there. So please
> try to answer these OSM beginner questions:
> 
> - Is there a proposed SQL database format for OSM based maps? 

I think there are several in SVN, generated by different utilities for
different purposes:

utils/osm2pgsql
utils/planet.osm/planet2mysql.rb
utils/planet.osm/php/planet_to_mysql.phps
www.openstreetmap.org/osm/db/README


> This would
> be usefull to share end user generated map data between various systems.

I think the only true common OSM format is the planet.osm file. Each
application has its own special needs about what data it needs to access
and what restrictions and other requirements it has. 


> - Is there an application which converts the world.osm into a SQL
> database?
> 

See list above.

> - Are there any libraries (C/C++) which give me a higher level of
> abstraction on the map data then operating with SQL queries?
> 

I don't think there are any C/C++ libraries specifically for processing
OSM data directly although you could extract the relevant pieces from
several existing utilities like mapnik (C++) or osm2pgsql (C) and then
build upon these.

Some people convert the OSM data into other standard GIS formats like
shapefiles and then use external libraries like GDAL.


> - Is there a library (or algorithm) which converts a GPS position into
> a 2D viewport position to display it in an application?
> 

I'm not sure I understand what you want, but several programs exist for
displaying rendered map at a given location e.g. mapnik, gpsdrive,
roadnav, or using pre-rendered tiles like maemo-mapper. I believe these
all have some facility for using OSM data but often have other data
sources too. If you just want to embed something in a web page (or other
HTML control) then OpenLayers is fairly easy to use.

	Jon






More information about the dev mailing list