GSoC Applications 2008
Back to the Google Summer of Code/2008 page.
A proposal for bicycle route-finding for OpenStreetMap.com Douglas Young
For many years now motorists have greatly enjoyed the advances made in technologies such as Google's maps in order to travel with ease. Over the same time period, however, the number of people who have started to leave the cars at home and who increasingly rely on their bicycles for their mode of transportation has risen dramatically along side oil prices, concerns about health, and mounting environmental issues. The concerns of the bicyclist are different than that of the driver, however, and the tools provided for vehicle route-mapping to date are often not well suited for them. Within the city especially, a continually growing number of people who represent the expanding bicycle traffic in the urban environment would greatly benefit from their own route finding service, one geared for bicyclists. In my proposal I examine the need for, as well as the ways and methods of creating such a tool.
For many years now companies such as Google and Yahoo have released great maps for motorists who wish to plan out their trips, whether cross-country trips or rides in to work, and each organization has made many great advances in the use of these. One large area that these sort of tools have yet to deliver on, however, is a general mapping system for the biking public. Over the same years that groups have been perfecting their automobile mapping systems, the number of people who have relied on bicycles for their transportation in the city has risen dramatically, along side concerns over oil, health, and mounting environmental issues. This generally positive increase in public health awareness and environmental responsibility is being inhibited, however, by the lack of appreciable gains in the quality of these sorts of tools for bicyclists.
Other than the, as yet, predominance of automobiles on public roads, and subsequently the demand for those specific tools, one reason that these projects have yet to invest much time in bike-friendly services is that the concerns of the bicyclist are often more complex than that of the driver. First, traditional route finding algorithms for automobiles place importance, primarily, on expedience. Bikers, on the other hand, need to deal with situations which drivers often do not. You are not likely going to want to take the freeway on a bike because it's quicker, for example, and out of two routes which are otherwise equivalent, the informed biker will take the route which generally has less automobile traffic than the other or perhaps the one with a dedicated bike lane. Tools like this that help bicyclists in choosing appropriate bike routes would not only greatly benefit the health, safety, and enjoyment of the biking public, but a busy street with less bicycle traffic to deal with would greatly aide the driver's experience as well as improve traffic alike.
Bicyclists need not only to have their own route finding algorithm that takes heed of things like bike paths, which current tools fail to do, but they also need to be able to rate what is most important to them on their journey. For example, safety may be the principle concern of one bicyclist, while another wishes to get to where they are going as fast as possible. One may want to know where the steepest hills can be found so they can get the most out of an exercise routine, while another aims to stroll and enjoy the scenery. The main issue behind the implementation of just this sort of bike route-finding service, however, lies with identifying the proper representation, quantification, and collection of “good” data that describes these qualities. What constitutes the fastest trip time is trivial, you merely look at distance and speed limit, but what constitutes the safest path? Or worse yet, the most scenic? The following are some of my implementation-level ideas for how to provide such a service.
First, one of the most important aspects in imagining this sort of service would be the community level support. In order for us to decide what would make the best bike route, we need input from people who have tried it and the alternative. Certain aspects, as described later, will heavily depend on objective and subjective input from the collected users of the tool. Some information can be garnered from official sources, such as which streets have a bike path or are official bike routes, but other information will not be readily available, and as such it would be helpful if users could input this and other sort of data which would aide the route finding algorithm. Another example of what users might input would be a description of the condition of the road, in terms of potholes or general wear, as well as others described later.
Next is the way the search will be performed. The service-user will define their preferences for a route, choosing between safety, speed, exercise, and quality of life. These preferences will be input on a sliding scale, selecting each from one to five in each category. Each of these will then be ascribed a weight and assigned as the algorithms preferment towards the variables. These variables themselves, which identify certain characteristics of a path, will serve the algorithm's heuristic information about what comprises the "best" path to explore, based off the user's preferences. These preferences will be checked against the attributes of each node, where a node is the instance of some path segment. That is, a node is a block of a street, a segment of path, or some delineation between route segments. These nodes, furthermore, will be connected about a weighted graph. The quantities of these node attributes are then multiplied against the preferences for them as input to the route finding heuristic. The algorithm itself will be a bidirectional best-first search, more than likely Dijkstra's. For complexities' sake the algorithm should search in a best-first way, from both the origin and the destination to in order to reduce the time complexity from about O(b^d) to O(b^(d/2) + b^(d/2)), where b is the average branching factor, and d is the depth of the search. Considering that the average distance for bike travel is less than that of an automobile, however, d should be on average small, and the complexity thus manageable. For choosing the edge to pursue, unlike an arbitrarily weighted graph, the modified algorithm will use those attributes of the nodes multiplied by the service-user's preferences as the weights on its edges, comprising a strong heuristic.
Beginning first with safety, the types of things which would comprise one's preferences, and the algorithms heuristics, would be things such as whether a particular path (node) has a bike lane, wide shoulders, how well lit it is, how heavy its traffic is, what the condition of its surface is, or whether it is an official bike route. A preference for speed would cause nodes closest in Euclidean distance to the destination to be explored first, and it might want to watch out for pot holes, lots of stop lights, and speed bumps. A preference for exercise will give higher weight to routes which produce lower weight, that is a steeper grades which avoid stop signs and lights. A quality of life filter will run a bicyclist down a gorgeous river front before having them save two blocks down a busy and dangerous thoroughfare. As much of this information should be culled from official sources as possible, but as stated above certain aspects of the model will rely on community involvement. Furthermore, what constitutes any one of these preferences is likely to be expanded on, and as such the implementation will also need to pay special mind to allow for the definition of new types of variables.
In conclusion, as a bicyclist myself, I believe a service of this sort would be highly popular. For many years now motorists have enjoyed the advances made in technologies such as Google's maps in order to travel with ease, but over the same period the number of people who've started to leave the car at home and rely on their bicycles for their transportation has come to represent an increasing amount of urban traffic. The concerns of a bicyclist are often different than that of a driver, however, and the tools provided for vehicle route mapping are often not well suited for them. Within the city especially, a growing number of people would benefit greatly from their own route finding service, one geared for bicyclists. A certain amount of participation would be required and expected from the users of the service themselves, as well as input per route search about what, to them, constitutes a good ride, but this input is necessary due to the complex concerns of the biker. With this input and preferences a search should be able to be performed that matches a rider with their personal best way to get where they're going.
RoadReader library Abhishek Chakraborty
Abstract The representation of data at various resolutions is a difficult job.It requires special understanding of image characteristics.The given library provides functions that enable extraction of the structures of roads at different levels of detail.
This library is useful for rendering as it provides hierarchical information regarding road(other images)using segmentation algorithms.By providing this information,it is possible to plot those points that are required only.
Implementing a Generalizing Algorithim Matthew Nathaniel Ludlum
Map Marker Data Generalization is necessary especially when showing LARGE amounts of data. However, the key is to successfully merging and promoting data changes based on what the overall desire to display certain data is.
The goal is to make changes to the rendering side of the map software. The result should be that the rendering process completes before icons begin being drawing.
The end result will need to be getting an accurate depiction of a map area without cluttering the map with needless labels or icons.
I hope to reduce the "Clutter" problem that determines what/how much is displayed at a certain zoom level. This revolves around adding a "weight" property to icons.
1.By assigning weights to items, it allows you to have an "overweight" function that merges the items into one display object. The renderer can then take a single or "cluster" item that represents multiple types of objects and draw that instead of the multiple objects that would instead obscure the map.
For instance, take a number of gas stations at an intersection. At a close zoom, say 5000ft:1ft, the map would clearly label the objects with their respective labels. At higher levels, this label still needs to appear as long as it's weight is relevant. However, at a certain zoom level the data may still be relevant though not the individual labels.
A gas station icon should appear at the intersection, but without labels. At a higher zoom level, the icon disappears, since the icon would dwarf the intersection entirely. Default weights should also be applied to icons. This is to say, that, if hospital and gas station are next to each other, the hospital icon should appear over the gas station icon at a respective zoom level.
2. When rendering icons onto the appropriate layer, keep a running count of the weight for icon saturation (IE- 3 icons are overlapping or close proximity).
If an overweight limit is hit, the renderer labels one icon rather than more. Additionally, the icon may be different than the "single" icon by showing a grouping icon to let the user know there is more than one point of interest (IE- a collection of glasses as an icon for many bars rather than one).
3. Once the renderer is done drawing the user can then observe the clusters seen. As for label drawing, the option to draw a label can be decided by weight once again. Such as, for a collection of hospitals, the more-well known name may be displayed for the center if the weight is appropriate (cluster-naming).
- Generalization Algorithm Code
- Implement code in at least one of the renderers
- Grouping and individually zoom-related icons that are changed for project.
- List of Icons and any changes to other parts of the OSM project
I feel I'm capable of performing this project after having dealt with map technology already. I've dealt with using the API in the Google Maps API. My Senior Project called Geolocate, in order to graduate, dealt entirely with georelational data. In addition, I feel I can commit more time than the average student due to I will be finishing my degree before the heavy code writing can begin. This will allow me a head start on diving into the Mapnik and OSM Tile Renderers. I have programmed in several languages, including C++ and Java (of course I'm familiar with pointers and some web languages such as php, java script, etc. I have also worked on and delivered a software project to Jackson Public Schools, called CLOWNS. It was a pre-K software program designed for easy to use capabilities(unfortunately not hosted anywhere on the school's website).
For hardware purposes, I have a Pentium 805D OC'd to 3.3ghz, 2GB of RAM and plenty of Hard drive space. I have a Comcast Cable connection as well. If, for some reason I am taken away from home, I have my HP TC1100 Tablet available and can also respond to emails on my mobile phone (Who can't nowadays?).
I look at this project as a way to finally get experience programming in a real world application and culmination and as a way to identify deeper with open source applications.
Documentation of code @ as written and looked over at end of week.
- April 2nd - April 21st: Learn as much as possible about the rendering methods and icon/object layers in OSM. Learn about current "Generalization" techniques in use; hash out general requirements for the generalizing algorithm.
- April 21st - May 21st Learn from mentor about relevant data; locate ideal testing area for new algorithm and discussion of appropriate weight values; get test environment setup and functioning; pinpoint lines of code that will be improved and/or replace. Brew a SoC Beer for completion of project (Hobby of mine)
- May 21st - June 8th Confirm working environment and "Alpha" algorithms performance; communicate all relevant data,results and ideas with mentor.
- June 8th - July 4th Improve upon "Alpha" algorithm and implement weighting/clustering; keep in contact with mentor over current performance and all relative questions.
- July 4th/5th discuss current performance of work to date and direction of the project; complete *mid-term evaluations
- July 6th - July 16th Redesign to new "Beta" algorithm and begin implementation into the testing environment.
- July 16th - August 9th Implement, clean and confirm performance of "Beta" algorithm in test environment. Test data is isolated and decided upon for "Final" testing.
- August 9th - 18th Code is cleaned, tested. Documentation touched up where needed. Mentor writes off on changes and is given for consideration. Final Evaluations submitted
- Sept- Submit code
- Oct/Nov Google Summit- Meet up and discuss further expansion any obstacles or optimizations that can be done to the generalizer. Bring a case of SoC Brew if applicable.
I am a 23 year old from Houston, TX graduating from Millsaps College in Jackson, MS with a CS degree. I've been working through college as a System Admin for MS State Government . Being a lazy American, I only speak English(sorry!) but look forward to working with folks all over the world.
Link to Further Information: http://sourceforge.net/projects/geolocate/
Digitizing and Exporting Data for GIS application through use of Mapping API Apoorv Gehlot
There is a shortage of Geographic Information Systems (GIS) related data, especially at places outside USA where GIS is still relatively new. The modern day methodology of creating GIS data involves on-screen digitizing, creating spatial dataset by tracing, from aerial imagery. In most cases, lack of structure and financial support limits people from getting access to such resources. I am going to build a tool to digitize inside a browser using existing image sources like Google Maps. The resolution and detail level of these satellite images is significantly lower than that of aerial imagery, but it is good enough to digitize and do analysis for relatively larger areas like villages and towns. This tool will give users the capability to digitize using satellite images from sources like Google Maps and then export the digitized data on to their computers in various formats including .kml, .shp, .dxf, .csv, .gpx, .txt and others. The tool is going to give users tool to digitize points, polyline and polygon.
This tool can be implemented for Google Maps or any other Web Mapping API provider that provides high quality satellite imagery. This tool will not need Google proprietary technology. This tool will essentially run of top of the web mapping API. The end user experience is going to be similar irrespective of Mapping API chosen. After the user has chosen the tool, the user would be asked to select if they want to digitize points, polyline or polygon. Then the user can start digitizing using a mouse or track-pad. After the user has finished digitizing, the user can chose the format that they would like the data to be exported onto their computer. An extra feature that could possibly be implemented is giving the user an option to add attributes to every digitized point, line or polygon. This would make it easier for the user to interpret the data after they have imported the data into some GIS software for analysis.
Support for OSM data in SUAS MapServer Qian Min
I would like to develop one component of OpenStreetMap for SUAS MapServer, so that OSM data can be imported into SUAS geometry database and SUAS can also provide OSM data and render the map data in many formats through the SUAS map engine.
Now there is no open Web Map Server for OSM available, depending on this component, OSM will have flexible map publishing method and there are more chances to visualize combination of OSM data with other raw data.
There are several open WMS solutions, but SUAS MapServer specifically integrates different formats and provides flexible output format solutions. Other WMS such as UMN, GeoServer need additional hardware or not cheap Java run environment to be as host server, and their complex configuration will decrease the interests of users.
The Open Geospatial Consortium is a non-profit, international, voluntary consensus standards organization that is leading the development of standards for geospatial and location based services. A Web Map Service (WMS) which conforms to OGC standard can produce maps of georeferenced data.
OpenStreetMap does not support Web Map Server currently, the producing of OSM data can be done by some special developing tools, and people can not easily publish the OSM data as map format, so many people can not know nor has no time to know the power of OSM. And some GIS specialists or the students have some data in other formats; they want to convert those data to OSM format and meanwhile rendering the data on map, with SUAS MapServer, they can easily convert and publish the data, and store the data with database permanently.
With this OSM component for SUAS MapServer, the map rendering and data storing become flexible and the data from users could be more quickly and easily used for OSM. The attribute of geometries of OSM data can be also published by SUAS Web Feature Server. The interoperability will enable that OSM data can be queried via WMS and WFS in the great number of WMS/WFS viewers and desktop GIS applications. This will move the main understanding obstacle of OSM for those non-GIS specialists; they will have more interest to contribute in the development of OSM.
SUAS MapServer was written in PHP, can be run on any Windows, Linux, Apple OS, with low cost (PHP Apache server is the most used server). SUAS MapServer information could be found here http://suasdemo.easywms.com and http://suas.easywms.com
1. Tom has created his map on OSM and now he wants to use those data for his own project, for example, displaying the OSM data with other data on the map. He could import his own OSM data into SUAS database and work with other data. Then those data could be published as internet map.
2. OSM now supports only raster image format for the outputting map. Jerry wants to have the map in other formats, such as PDF or the map could be displayed in Google Earth. SUAS can render map in many formats, such as any raster images, Flash, SVG, PDF and 3D GML, VRML.
3. Mary wants to view the OSM map on mobile device. SUAS has J2ME map client to view the raster map such as PNG and vector map such as SVG Tiny (SVGT).
Some issues need be solved in the future. Firstly the users could download their own map as OSM data; if possible, the users could download other public OSM data. The data importing component for SUAS will be developed for importing the OSM data into SUAS dataset.
Users could set the style for each layer free, for example, setting the color, border and width for one layer. OSM has its special Map Features, those Feature keys could be kept in SUAS. So one style table for SUAS should be created so that the users could select the features directly from one list, of course, they could set their own style.
SUAS will be charge of map rendering in many formats. If the users have some raw data in other formats, such as MapInfo MIF, Esri Shapefile and E00, SVG file. Those data could be imported into SUAS dataset firstly; one OSM output component for SUAS will be developed to output those data in format of OSM.
Those mentioned functions above could help users to publish their own OSM map in many formats or in free styles as they need, and many GIS data formats could cooperate with OSM data. This will encourage the users to use and publish OSM data in many fields.
1. Understand OSM data format and make one document for plan.
2. Write code to parse and import OSM data into SUAS database.
3. Classify the OSM data into different layers.
4. Use OSM map features as WMS style table, so that users could set the style for layers.
5. Render OSM map other raw GIS data via WMS.
6. Output map with other raw GIS data in many formats, including GPS track data.
7. Get attribute for each geometry via WFS
8. Display route from OSM with WMS, in raster and vector maps.
9. View OSM data in mobile device using SUAS mobile client, extending the functionalities of SUAS client for OSM, such as tracking and receive track logs. (If time available)
I am a Master student, now studying in major of Photogrammetry&Geoinformatics at Stuttgart University of Applied Sciences, which located in Germany. I got my Bachelor degree at Wuhan University with major of GIS. My bachelor thesis was electronic city tour map. And after graduation I have worked 3 years in field of GIS and Database management.
I have great interests in open source project and Web GIS technique. Now I am contributing in SUAS MapServer. I had grad to see that OpenStreetMap could work with SUAS MapServer very well.
Link to Further Information: http://suas.easywms.com
Public Comment History
- 04/07/08 20:31 Dr. Franz-Josef Behr User:fjbehr
- Delivering OSM data based on OGC standards (Open Geospatial Consortium) achieves interoperability which enables that OSM data can be integrated via WMS and WFS in a great number of WMS viewers and desktop GIS applications. Hence OSM data could be more widely used.
OpenStreetMap Tawatchai Siripanya
Web app to geotag photos (in EXIF, or flickr tripletags) by matching photo's timestamp with user's GPX tracks uploaded to OpenStreetMap. Allows interactive positioning as well.
Java,C/C++ Skills Relation DB Access
Osmarender's WYSIWYG GUI frontend: an hybrid web/standalone-user/developer oriented architecture approach Mario Ferraro
Working demo and Flash screencast
A simple working demo (tested only in Firefox 3 beta 4 for Windows) that shows some of the features is available at . There you can also find a little screencast, which also shows textual description of current demo features, for those who don't want to install Firefox 3 beta 4 on their computer.
1) For users: Thanks to the usable WYSIWYG GUI, it will let common people start to really interact with OSM data. A wiki-style gallery for custom rules and styles will also provide that Web 2.0 taste to attract more non-tech people, so enhancing OSM spreading. Furthermore, its hybrid web/standalone architecture will let common people download the standalone version for time-consuming renderings, or to customize their rules/styles without an Internet connection, thus letting non-broadband/non-flat-connected users contribute anyway.
2) For developers: The public API will let other (even beyond OSM's) developers start new Osmarender handling projects, on a solid base and in a simple way. This will lead to an unpredictable number of new applications and contributions.
Thanks to Osmarender's XSLT-approach and my application's hybrid JS/PHP architecture, all this features will be achieved without loading OSM's server, thus scaling well.
Actually OSM counts on two engines to render map data: Osmarender and Mapnik. Both are able to work with a XML input file to modify the custom style of the resulting map, and both lack a GUI frontend to let XML-unaware people modify them. An usable GUI frontend would be a great enhancement for OSM spreading: the overall potential is there, but almost hidden to common people. I've started and then followed a very interesting discussion in the dev list to know community feelings and willings for a GUI frontend, focusing on Osmarender. I've read many different opinions about what an useful GUI frontend should be:
- Web application
- JOSM plugin
- Standalone application
- Inkscape plugin
I've also read many interesting opinions about features and enhancements, which I integrated with mine.
- Accepted inputs: test file, OSM files, lat/lon bounding box
- Outputs: SVG, PNG
- Communication through OSM API for OSM files retrieving
- Communication through osmxapi to retrieve shrinked OSM files
- Developing of an own JS API to handle rules files
- Wiki-style gallery to share custom rules and SVG symbols
- Filtering loaded OSM files to help, if wanted, changing rules accordingly to specific OSM file content
Here the logical architecture and corresponding features:
Common Core (Innermost Model)
- Reading, editing and writing "osm-map-features.xml" files (rules and styles)
- Handling of tangled CSS styles (i.e. core and casing lines for a road)
- A test file with common used OSM features to have a test preview
- Accepted input: OSM files
Web Application Core (Outermost Model)
- Including of custom SVG symbols in "osm-map-features.xml" by uploading SVG file
- Communication with OSM API to accept bounding box coordinates as input and automatic retrieving of corresponding OSM file
- Rules smart handling to communicate properly with Osmxapi and retrieve filtered OSM file to speed up rendering.
- Linking to SVG symbols libraries
Common Wrapping (Innermost Controller) The core will be wrapped (called, indeed) under a layer which will include common functions for the outermost controller.
- XSLT transforming for WYSIWYG preview
- Common Controller functions
Web Application Wrapping (Outermost Controller)
- List of SVG symbols/libraries available on server
- List of rules files available on server
- Upload custom SVG symbols and/or custom rules in server gallery
- SVG2PNG using Inkscape serverside, automatic for browser with bad SVG support.
- Downloading of all involved files (rules, SVG, PNG, separated or zipped together)
Then there will be a common GUI layer (Common View) and a web application one. The GUI will have facilities like a color-picker for CSS and wizard-style handling of rules. I'm leaving GUI features a little bit undefined because I prefer to better collaborate with OSM community to decide them, "opensource style".
Standalone version will have similar functionalities, given the limited possibilities:
Standalone Core (Outermost Model)
- Including custom SVG symbols
Standalone Wrapping (Outermost Controller)
- List of SVG symbols available in the distribution
- List of rules files available (standard files like "osm-map-features-zXX.xml")
- Output to GUI of all involved files (rules, SVG)
What and how I'll achieve during SoC (Timeline)
I'm perfectly aware that not all that I've written could be achieved in three months because of project's proportion: I want to be in strong contact with my mentor and OSM community, so many new and exciting features will come out. Furthermore, I know Murphy's law is everytime behind the corner :) However with an incremental development, as described below, we'll get something perfectly functional by SoC ending anyway. Here the timeline:
- April 15 - May 26: I'll study more about OSM and Osmarender. I'll search and study any useful opensource libraries to be included or used for better development (such as Sarissa,JSDoc,etc) keeping in contact with the dev list and/or my mentor (as needed) to better refine and analyse the architecture and define GUI usability guidelines.
- Deliverables: UML class hierarchy, GUI mockups, ER diagrams, API
- May 26 - end of June: I'll start to setup the project. First step will be enhancements to my last demo, which is available at . Then will come the common core to handle XML rules. I'll also develop the corresponding GUI elements. At this time, the application will not be aware of CSS classes (they will be in a textarea), so they will be referred through text fields. However, the application will already start to be usable.
- Deliverables: Working GUI demo that handles XML rules
- July: This month will be focused on CSS handling, wiki/gallery functions and output to PNG.
- Deliverables: CSS base handling, wiki/gallery functions, PNG export
- August-(end of SoC): I'll focus on refining the overall functioning, including general debugging, revising of unit tests, documentation
What I'll do to feedback OSM community
I always pay attention to proper communication, also because I like feedbacking my works very much. During SoC I'll:
- participate in the dev list
- document my code
- write unit tests
- document the API in the Wiki
- release often to the svn
- maintain a blog describing my progresses
My name is Mario Ferraro, and I'm studying Computer Engineering in Rome's University "La Sapienza". My interest for coding begun when I was 9, trying to build something like a textual adventure in QBasic on an Intel 386. Since that day, I've started learning languages such as
- x86 Assembly (studying Randall Hyde's book)
- Object Pascal (Delphi)
- Java/Java servlet
- SQL (having worked with HSQLDB, MySQL and Oracle)
Having worked full time (and now part time, however I agreed not to work during SoC) for a roman web agency, I've now a strong background also on PHP 5 (using DB_DataObject, Image_Graph, XML_Serializer PEAR libraries and template engines like Smarty) and Web/XML-related technologies, such as XHTML, CSS (fixed or fluid layout), XSLT, DOM, XInclude, XPath, JSON, GoogleMaps API, etc. I grew a strong awareness of such technologies working on Backbase Enterprise Ajax framework also. I'm also experienced and/or interested on
- software design (DBDesigner, Axure RP Pro, ArgoUML, Enterprise Architect)
- documentation (PHPDocumentor)
- test (PHPUnit, Selenium)
- debugging (Firebug, XDebug)
- software quality
- web usability
- information architecture
I applied most of these technologies and concepts developing an Italian Public Administration site, which you can see at 
Roll your own OSM derivative Gerald Abshez
Make it easy to set up a Slippy Map with your own layer information on top
Make it easy/easier to set-up a slippy map web site with your own information layered on top. As a bonus, make it easy to edit just this layer with Potlatch/the applet/etc. so people can for example encourage people to add park benches, nice views, local meeting places, etc. a bit like Google Maps
The idea here it to enable things like mashups, local maps, and specialized maps like the Cycle map, but in an easy to use and friendly to deploy manner.
Connecting external opening times from wikis with openstreetmap Johannes Böck
The purpose of this project is to associate the openstreetmap data with data from external sources, the example that should be worked on are opening times of shops, restaurants and everything else that has opening times.
The idea is to have a map that shows open and closed facilities in different colors (e. g. open ones in a light color, closed ones in grey), for tasks like finding an open restaurant nearby.
The following tasks should be completed within the SoC:
- Defining a syntax how to associate an entry in a local/town wiki with an element (node or building) in openstreetmap.
- Defining a semantic syntax to include opening times in a wiki.
- Implementing a plugin or template for the MediaWiki software that displays the opening time data and, optionally, include a slippy map with the associated object.
- Find a way to extract the data from the wiki.
- Implement an openstreetmap slippymap which shows a time-dependent overlay to visually show open and closed facilities.
Optional, incomplete thoughts:
- Does it make sense to implement a colored visualization to show the remaining opening time?
- Can events with a fixed starting time (or just a fixed time) be included in this system? Examples would be cinema programs, one-time events, but also things like the times where a postbox get's cleared.
I am operating a local wiki in my hometown (Murrhardt), so I have some place to implement tests, but I'd also try to cooperate in this issue with other local wikis in my area (Stuttgart, Karlsruhe, both have quite big townwikis). The goal should be that the whole system can easily be implemented from other local wiki or similar projects that collect suitable metadata.
Some additional Information about myself: I'm a Gentoo Linux Developer and have been involved in various free software projects in the past years. I was always interested in bringing the ideas of free software to other areas, so I was always looking excited at projects like the wikipedia. I began with openstreetmap about a year back and I think I'm pretty much familiar with the project. It has always been my interest to bring different »free« projects together, thus I think I'm qualified for that task.
This project, if accepted, will probably involve not one big code block, but various small code parts to other projects (mediawiki plugin, openlayers, maybe some database stuff), which makes it especially interesting for me.
Some more information about myself and my computer experiences:
- Student of computer sciences at the University of Karlsruhe.
- Started with about 7 years on an Olivetti M24 with 8086 CPU.
- Programming since about the year of 8 (starting with GW-BASIC, later TurboPascal).
- Active in the Demoscene since the late 90s.
- Using Linux and interested in free Software since 2001.
- Gentoo Linux Developer since 2002.
- Running a company called schokokeks.org (webpage with the same name) providing web hosting services based on purely free software.
- Writing a blog with approx. 2000 visits/day.
Link to Further Information: http://wiki.openstreetmap.org/index.php/Google_Summer_of_Code/Opening_times
GPS Companion Software Application Luay JE
This application will feature two nice additions to current GPS systems found in cars, which are Reminders, Notes and Chat using GPS Technology.
As this is my graduation project, The application helped to be notified of pre-set reminders depending on the place I am currently located in real time.
For example, if you wish to be notified to buy bread if pass nearly a certain Supermarket, you would click on the Supermarket place on the map then click Add Note, then would type in the text box "Buy Bread" and click OK.
Next time if you pass by this exact Supermarket, a popup visual message accompanied with a sound beep, would tell you to buy bread.
And many similar cases apply, imagine if you would to visit a doctor, shop everyday groceries in different places.
Using this application, you will not miss a meeting, a shopping list item, and you will also save fuel.
GPS Companion Software Application User functional requirements:
The following basically describes what the system should do:
- The GPS receiver will receive the current coordinates from the satellites.
- The computer will communicate with the GPS receiver though the serial port interface to receive data.
- The software will start parsing this data to get the current position’s coordinates.
- The software will store the position’s name along with its specific coordinates in a database.
- As the user travels along and changes position, the system will track his/her position on the map relating to time.
- The system will be able to take notes and reminders of a place depending on the user’s choice.
- The system will be able to alert the user if he/she approaches a specific place as a visual and/or audible alert. The system would be previously programmed using notes and/or reminder modules. For example, I want to be alerted if I reach the proximity of a certain Supermarket because I need to be reminded to buy bread for example, or else I would forget.
The project consists of the application software, Garmin GPS receiver (which is connected to the serial port) and a laptop so it can be carried away with you all time.
The application is ready, the source code is compiled, and the application is working in a very good condition.
I would be glad to work with OpenStreetMap to enhance my application and it's features.
For more information please see : .
Internationalization setup for OSM web pages and map tiles Arindam Ghosh
I would like to develop an internationalization setup for OpenStreetMap web pages and map tiles that would actually enable users who do not know English use it in their local languages. This idea is inspired from Things to do in the osm wiki, .
The problem is that OpenStreetMap is currently available only in English. So people in different parts of the world who speak different languages, especially those who doesn't know English can't derive the best out of the osm.
This further extends into the fact that it also prevents them from actively taking part in mapping their localities and contributing directly with much needed raw data. Also, sometimes conflicts turn up in maps regarding different place names of same places in different locales.
Therefore, the web pages and the map tiles needs to be available in different local languages as far as possible. So, an internationalization (i18n) setup is quite evident. In this process every user will have a choice of the locale/language in which he wants to see the openstreetmap. This can also minimize the conflict of place names from the fact that every user can set his own locale in his 'preferences'.
1. Rakesh reads in a Hindi-medium school. He wants an updated map of say Europe in Hindi. Or my grandmother knows only Bengali and she wants to know the possible routes between two places. In both these cases, localized environment can prove very helpful. Note that, Hindi  and Bengali  are two popular native languages of India. Specifically, Hindi alone is used by 40% of the Indian population.
2. Suppose a place 'X' is known by name 'A' in language 'one' and by name 'B' in language 'two'. A person can easily set his language preferences and enjoy the respective localized name of that particular place, e.g., the Cyprus naming conflicts . There are several instances of multi-lingual place names as given here: .
There are number of issues that needs to be addressed. The i18n setup first includes the generation of 'pot' files (message templates) for different sections of the web pages. This can be done with the help of ri18n or ruby-gettext libraries .
The next step involves setting up of a mechanism by which message translations or 'po' files (submitted by translators), will be incorporated in the subversion repository in respective language branches, and the web pages can be updated periodically so as to automatically render the translations. Also, an option has to be created in user preferences of a valid user for setting his default language preferences. The generic list of languages and corresponding codes can be obtained from .
The same holds true for the map tiles where simply 'po' files has to be generated from their xml meta-data. The preparatory works to internationalize the map tiles can be done in the stipulated time. Now, every map tile has to be rendered separately according to the translation messages of each language branch.
A direct extension to this i18n setup is to create a WebUI that will actually show the progress of translation for each language. Translators can even create an account and submit their message translations in there, just for example, WebUI of Fedora l10n project .
Also internationalization of map tiles can be improved/optimized further as rendering the same map tile for different language branches takes lot of server power.
Benefit of OpenStreetMap:
The ability for the users to see openstreetmap in different locales/languages will actually help increase the user base of osm.
Already one of main reasons people choose osm over others because of the fact that its' released under cc-license and kept as much updated and error-free as possible. I want to further enhance the advantage with this proposal.
- Till April 18: Discuss the idea with openstreetmap community.
- April 25: Get myself more familiar with the internals of openstreetmap especially the rails port in there.
- May 3: Brush up Ruby on Rails which is required to do the setup.
- May 6: Setup a local osm server for testing the setup.
- May 12: Identify the basic requirements to generate and merge message translation files for the web pages.
- May 26: Create a rough implementation to generate the message templates or 'pot' files using ri18n libraries.
- June 25: Setup the mechanism to merge the 'po' message translation files and render the web pages.
- July 5: Add the ability for the users to set the language/locale of the osm web page in their 'Preferences'.
- July 12: Submit for mid-term evaluations.
- July 26: Identify and implement the preparatory method to internationalize map tiles.
- July 30: Polish the implementations.
- August 5: Test the features and take comments from potential end-users and translators.
- August 10: Write any associated documentations.
- August 18: Time out and final submission.
- I would like to carry forward the 'future expansion' works with the help & support of the osm community even after this.
I am a 20-year old Computer Science and Engineering student based at Durgapur, which is located in the state of West Bengal in eastern India.
Being in the open source world for last couple of years, I have contributed in different open source projects. I am also a translator for Bengali(India) language (which is my local language, code: bn_IN) for some of these projects. I even took part in the mapping parties of FreeMapIndia2008. Now, around here in this state of West Bengal, Bengali is the most popular language. So to say, more or less every state of India boasts of its' local language. This applies to many other countries as well. Localized osm can make much headway into schools, colleges and different government institutions. Thus, i am very enthusiastic about this proposal, because i would love to see the OpenStreetMap used more and more in different parts of the world.
Openstreetmap OGR driver Olga Mardar
Openstreetmap (OSM) is a global project that provides free geospatial data for everybody. GDAL/OGR is the library used in many open source and
commercial proprietary GIS software (QGIS, MapServer, ArcGIS etc.) A read/write OSM OGR driver will open up possibility to import OSM data to various GIS software directly. It will also allow easier data transfers from multiple formats supported by GDAL/OGR to OSM.
In this project the read/write drive for OSM files will be written.
Why I would like to complete the project
Currently, Openstreetmap data in Ukraine is more detailed than in most of the
commercial proprietary applications. This example of my native country shows the power of opensource approach to GIS data collection. OGR driver will make OSM data even more useful and easier accessible for more people. It will also make data import from many formats supported by OGR to OSM easier.
The project can be divided into three stages.
During the first stage a few major elements of the OSM protocol will be implemented. I think that the best way to code is to use code of other people as example. Opensource projects fits this concept very well. Last year Summer of Code full support of KML files was implemented in GDAL. Both KML and OSM data format are XML formats. Study of last year work will help a lot during this stage.
The second stage is careful implementation of all items from the current OSM protocol specification.
Finally, extensive testing of the driver will be done. During all stages the progress will be documented on OSGEO and OSM wikis. During the last stage extra effort will be made to clean up the documentation and write examples showing how the driver can be used.
OSM has HTTP protocol to access the data. If time allows, the ability to read the data directly from HTTP connection will be implemented.
I am a third year student in Donetsk National University. My major is Applied Mathematics. In parallel with studies I work in the institute for Problems of Economics Dynamics. My work involves database development and support. The programming languages that I use are C++, Delphi, Visual Basic. As a hobby project, I am working on improvement to script that generates maps for project geovodi.com that uses OSM tiles. At the moment the goal of geovodi.com is to georeference mentionings in Internet of places located in Ukraine. The driver from the current proposal and last year Summer of Code project GDAL2Tiles will make it easier to generate custom maps for that and other projects.
I approach projects I am interested in with passion and always finish what I start. This is why I am the best person to complete the project.
Qt mapping application for mobile devices Michel Claessens-Leroy
The Qt application will be developed for the Trolltech greenphone (Qtopia 4.3). This application would be able to use Openstreetmap data to show maps on your mobile device. It will also be able to capture GPS coordinates (Bluetooth GPS receiver) and create tracks and way points in GPX-format. Like this data can easily be uploaded to openstreetmap.org so that it helps the community to enlarge the available free geographic data. Thirdly the application will be able to add some basic tagging like points of interests, street names,... All this can be associated with photographs taken with the devices itself.
The development will probably be done on a Kubuntu machine with Qt 4.3.2 and Qtopia Core 4.3.2 installed. My school mentor has a greenphone available for me and he'll also guide me through this project. (http://trolltech.com/products/qtopia/greenphone/greenphonespecs).
Here are the features of the application once more:
- Mapping (creating GPS tracks) - Take pictures + GPS coordinates associated with that place (ExIF) - Load and show OSM data (QGraphicsView) - Get pictures of the "Points of Interest" and associate it with a node - Tagging (OSM-Type)
-> Set way names, -> Set way types, -> Insert points of interests,... -> ...
Optional, but interesting would be to create an OSM game: A scripting language like Qscript would be used. Purpose:
-> Find and insert empty street names,... -> Insert house numbers and points of interests
How more you do how more point, how better you are in the game.
Adding an extra Export Tab in the main site. noufalhameed ps
Abstract Currently the main website contains View/Edit/GPStraces as tabs. Adding the Export tab, help us to take the data with a predefined IP, through a port. A lot of data can be collected from this vector format files, like current position, velocity and direction of moving particle, which is connected to a GPS device.
The Global Positioning System is a network of multiple satellites, which is basically used for location-based service. Considering the current situation, from the main site, we get GPStraces, we can easily make this software portable to many vector formats, vector maps can be added, or uploaded through this export tab.
There are many map formats, viz. OSM, GPX traces, Garmin .img files, which can be uploaded to this through this Export tab, Uploading the data through a predefined IP, through a port, will make it easier for taking the data in many formats.
The permalink can be implemented by this way, also almost all windows based application uses maps in Garmin .img and other formats, which can easily be uploaded by this Export tab.
milestone: Start project
- <Day 1>.Begin Research on implementation of complete Export tab and about all map formats it supports.
- <Day 4> Begin Designing the new tab with the proposed aims
- milestone: Submission of initial design and specification.
- <Day 7> The design of planned additions and changes and their respective changes will be submitted.
- Coding begins
- milestone: Function for uploading the data from a given IP
- <Day 15> Submission of code that can upload the given data through a port, independent of the type of the data.
- testing and verification of given code.
- milestone: Modification of the defined function
- <Day 23> Submission of modifications and additions to the existing function which can upload vector formats and reject any garbage
- testing and verification of submitted changes
- milestone: modifying the function to utilize the uploaded map, and use it just as other openstreetmaps.
- <Day 30> Enabling the function to mingle with all the basic function performed by the current software.
- milestone: Final Project Submission
- <Day 40> The Final testing and verification process will come to an end with an extra tab Export in the main site which can upload different map formats.
I, Noufal Hameed PS., am a sixth semester student of Computer Science and Engineering from Kerala, India. The last two years have seen me as an active promoter and member of the Free and Open Source Software Community.
I am an avid php,dot net, Python and C programmer. I am well versed in Lisp,Java and x86 assembly languages.
- A PC suite for mobile phones using the Symbian 60 OS. the connecting medium being bluetooth.
- The development of an IDE that facilitates easy program development and debugging for various microcontrollers.
- Tracking the vehicle's current position with a GPS enabled mobile mainly Openmoko
- Contributed to GPS receiver and GPS navigator softwares to a company www.kallatratechnologies.com
Map routing k.padma prabhavathi
The main idea of this project is to develop a software for producing driving directions.In this project we collect map data around the world.Driving directions are produced with this map data.The shortest-path algorithms should work .Areas to consider would be a choice of fastest or shortest route, going via a location, off-line processing on a local .osm XML file, on-line web-based application, producing routes for PDAs and more. Driving directions as well as route maps should be considered outcomes of this project.
I would like to develop this project using GIS technology.I will try to use shortest past algorithms and connect two points in a graph.I will try to impement this allgorithm so that it is fast and efficient even when the points are more.
I am padma prabhavathi kondaveeti, a third year engineering student at the Birla Institute of Technology and Science (BITS) - Pilani , India. I am pursuing (M.Sc Hons )Economics and a Bachelor's degree in Engineering (B.E - Hons.) in Computer Science at the Goa Campus. My main areas of interest are programming,software designing ,web designing,mobile appilcations and database appilications.I have undertaken projects during the course of my engineering, the details of which I mention below.
I did an internship in SMS country ,during that time i developed a project that centred on implementing a SMS messenger in java enabled phones.This messenger has certain features like the status of the message which is send by the client,to check user balance,and it also display's the messages send by the user between two dates.In the college i developed an active web site for Student Welfare Divison of BITS-Pilani Goa Campus.In this project a student is provided with login name and password .After logging into his\her account he/she can know his mess dues ,status of his demand-craft and some other facilties are provided.I developed this project in ASP.NET and integrating it with the Access Database.During my college i also developed another mobile appilication integrating with GPS technology.In this project a person who has subscibed the service of getting an sms when there is a person matching his/her tastes is near to the subscriber.
Export and interoperability for OpenStreetMap Tran Van Phuc
The OpenStreetMap is a free Wiki World Map which allows the user from all over the world to view, edit and use geographical data in a collaborative way from anywhere on Earth.In order to help the user use the data from OpenStreetMap easily, it is better to support a way for export the OSM data to different formats of data and support OSM data format to the OGR library.Moreover, It would be excellent if the system allows the user to add their own information to the map.
So I may be your man for this project which will deal with the followings:
- Implement the Export Tab on the main web site which allows the user to export data of the current viewed map to different formats type (shape file, OSM,GIS, Garmin ,SVG, PDF, bitmap,..etc).
- Add a tool for user which make it easy/easier to set-up a slippy map web site with their own information layered on top
- Add support for the OSM data format to OGR library
- Generate route profiles for cycle routes
Project Title: Export and interoperability for OpenStreetMap
Synopsis: The goal of this project is:
- Add an Export tab on the main website (http://openstreetmap.org). The export tab allows the user to export data of the current viewed map to different formats type, for example, Permanlink, vector data format(shape file, OSM,GIS, Garmin) ,Vector illustration format(SVG, PDF), bitmap (PNG,JPEG).
- Roll your own OSM derivative – This allows the user to add their own information such as park benches, nice views, local meeting places, etc .a bit like Google Maps
- OGR Library support- add support for the OSM data format to the OGR library
- Cycle route profiles - generate route profiles for cycle routes
Benefits to Community :
OpenStreetMap (OSM) is a project aimed squarely at providing free geographic data such as street maps to anyone who wants to use them. It is a free editable map of the whole world which allows you to view, edit and use geographical data in a collaborative way from anywhere on Earth.If the Export and Interoperability project for OpenStreetMap finish, the user from all over the world will use the OSM data easily (by using the Export tab on the website, using the OGR library to access to OSM data format).The user will also enrich the data of OpenStreetMap (by adding more their own information to the map).
The OpenStreetMap is a free Wiki World Map .It puts the database (OSM file) on the server and uses the web service interface for reading and writing to the database.It uses the slippy map and Potlatch as the OSM front end of the system.Actually, OpenStreetMap have View/Edit/GPStraces tab on the main website which allows the user to view, edit and share GPS traces with others in the Open Street Map Community. It would be excellent and useful if there was a new tab besides (View/Edit/GPStraces) tab on the main website and a tool for the user to add their own information on a layer on the map. So ,I will add a new tab which allows the user to convert the data of the current viewed map to different format of data , such as bitmap format (PNG,JPEG), Vector illustration format(SVG, PDF), vector data format(shape file, OSM,GIS, Garmin) ,etc. for using later. I also design a tool and add a new layer to the OpenStreetMap database which allows the user to add their own information to some areas, places on top of the map, a bit like Google Maps. I also investigate the OGR library and support the OSM data format to the OGR library.It means that everybody can use OGR library to access and manipulate with the OSM data .Finally, I will use the cycle routes in OSM along with the NASA SRTM elevation data to generate route profiles for cycle routes; this could be generalized to a tool which would provide profiles for any route.
My work on this project can begin from the beginning of May, 2008.I can work on this project about 20 to 30 hours per week.At the beginning time, I will investigate the system and communicate with the mentors to clarify the task that I should do for the project.Next, I will prepare everything necessary before beginning to take part in this project (install OSM on machine,prepare document necessary,..).I have made an expected schedule for this project.The project is scheduled for about 3 months and its development process is divided in several stages. GsoC finishes at the end of august but it's a good idea to leave some additional time (reserve) for tests and other not planned issues. I would like to stay in contact with my mentor using instant messaging, emails.
The following is my schedule expected:
- Investigate the system, prepare for programming ( about 1 to 2 weeks)
- Investigate the system and communicate with the mentors to clarify the task that I should do for the project
- Installing OSM on machine This task can be done before May, 2008.
- Investigate different format of data (shape file, OSM,GIS, Garmin, SVG, PDF, PNG,JPEG etc ) and see how to export the OSM data to different format of . ( about 3 weeks)
- Programming to add the Export tab to the main website( about 2 weeks)
- Investigate how to add a new layer to the OpenStreetMap to allow user add more information such as park benches, nice views, local meeting places, etc.( 1 week)
- Programming to add a new layer to the website (1 week)
- Investigate OGR Library ( 1 week)
- Programming to support OSM data format to the OGR library ( 1 week)
- Investigate the cycle routes in OSM along with the NASA SRTM elevation data ( 1 week)
- Programming to make a tool which would provide profiles for any route ( 1 week)
- Test,perfect and improve the program. (1 week)
During the time of working in this project, I will provide the weekly summary to my mentor of the progress and communicate with my mentor to get the feedback. Biography
I’m a Vietnamese student in mathematics and informatics from natural of Science University (http://www.hcmuns.edu.vn). Now I continue my studying at the francophone institute for computer science (http://www.ifi.edu.vn/en/index.php) to get the master degree in the field of informatics. After graduating from university, I have more than two years experiences working in the field of geographic information system (GIS ) at the center for IT and GIS, University of technology, HCM City and 2 years working for some informatics company in the past . I have many experience in avenue language in Arcview, VBA in ArcGIS to program and manipulate with the GIS data.I am also skilled in some programming languages such as: Pascal, C, Visual C++, Java,Visual Basic, Mapple, Arcmap, MS Access...
My curriculum-vitae is available on this address: http://files.myopera.com/phuctrangl/files/CV_Tran_Van_Phuc.pdf I believe I'd be in a good position to deliver this project because I have a good background of GIS and I have more programming experience.
Route altitude profile based on NASA SRTM data. Sjors Provoost
OOpenStreetMap is an online effort to create a new map of the world that is completely free and free of restrictive copyright. One of the ways people create maps for it is by traveling around with a GPS tracking device and then drawing the roads using that data.
At this point OpenStreetMap does not have altitude data incorporated. On potential usage of altitude data would be to create a vertical profile of a bicycle route, or any other route.
I would like to create such an altitude profile based on the freely available NASA SRTM3 altitude data. Its horizontal resolution outside the United States is about 100 meters.
After a lot of discussion I have decided to keep the altitude data separate from the main data. Given a certain route, the altitude profile will be calculated on the fly.
My core objectives / deliverables are:
- import SRTM data for (part of) Australia in PostGIS (PostgreSQL)
- write several algorithms to estimate the height of any given coordinate tuple (server side), using original STRM grid
- display (on the fly, drawing server and/or client side) an altitude profile given a route (a sequence of coordinates)
- integrate with the main website (on a separate server)
- build simple HTTP API
Secondary goals, if time permits:
- scale up to the whole planet
- generate altitude contours from SRTM data on the fly
- write algorithm to estimate the height of any given coordinate (server side), using intersection with these contours
- optimize performance for short and/or long routes
- allow profiles to be calculated on a different server
My name is Sjors Provoost and I am currently in the final stage of obtaining my master's degree in Sustainable Development at Utrecht University in The Netherlands. I studied physics for my bachelor's. I will be finished by the end of April, right on schedule to still be eligible for the program and have plenty of time for it as well.
For my thesis I have created an online visualization tool for the migration data of ducks that were given a ring in The Netherlands and were subsequently spotted again elsewhere. It can be found at http://ducks.sprovoost.nl/ and I released the source code at http://code.google.com/p/ducks-on-rails/ . It uses the Ruby on Rails framework, but also a lot of PHP, SQL and bash scripts.
Because the ring data used to be stored on punch cards in the old days, the original data format was a flat table. I designed a database structure and spent a lot of time dealing with all the spatially explicit data. For example I used the Geonames service to check for consistency between the coordinates and the country of a duck capture.
I was impressed to see how much was achieved by volunteers in the Geonames project and it was a pleasant surprise recently for me to stumble upon the OpenStreetMap project. I like this project because of its potential to create a superb free map of the world and because of the engineering challenges and thus fun it provides.
This summer (or winter in my case, see below), I would like to create an altitude profile based on the NASA SRTM data.
In more detail:
I already managed to get the Rails port working on my Kubuntu laptop. I will try to resolve all issues that might arise in getting all the software components working. Then I will import the map of Australia.
I will define a route as any sequence of coordinates. This sequence will be the input for the profile. This input could come from a future route planner. I will not create this planner, so I will create some example routes as a demonstration.
Given a route, there are multiple ways to calculate an altitude profile.
1 - using the original SRTM grid 2 - using the contour lines generated by Srtm2Osm
For method 1 I will write a ruby script that imports the SRTM data in a PostGIS (PostgreSQL) database. I will use the source code of SRTM for inspiration.
I will iterate over each coordinate of the route and consider several SRTM points around it. The altitude of a node is then given by interpolation. Depending on performance, I can use more surrounding SRTM points or a more sophisticated form of interpolation.
For long straight roads there is another problem: a road may go up and down several times between two consecutive nodes. I will calculate the altitude along several points along this way, although this may not be very accurate.
For method 2 I will calculate the intersection of each way with an altitude contour.
I think that method 2 will be more difficult to implement and require much more data (Steve Hill estimated 0.5 TB for 10m resolution) and processing power. I will alleviate the storage problem by calculating the contour lines on the fly for the local area. I will use the source code of Srtm2Osm for inspiration.
To visualize a route I will create a separate rails controller and view. The input will be a list of coordinates (I will find out the appropriate way to provide this input).
The profile will be an array of (x,y) coordinates, one for each point along a route, where x is the distance from the origin, via the path and y is the altitude of each point. A point could be a node or any other point along a way.
Visualization can be done server side and client side or a mix of both. There are several tools that can be used for it. I have experience with Gnuplot, but I will have a look at this page on CSS, PHP, flash and AJAX charts for inspiration: http://www.roscripts.com/CSS_PHP_flash_and_AJAX_charts-128.html
I will create a simple HTML API where a client can supply several lat/lon tuples and the server returns a list of elevations along the line(s) between them.
In order not to overload the main OSM server with features, I will try to make this as modular as possible. If time permits (all the way to the bottom of my list), I will allow the website to access a separate server for the altitude data. That separate server does not need the OSM database. It will receive a list of coordinate tuples and perhaps some additional information such as existing altitude tags. I have actually never let a website use two different servers and I am not even sure if it is possible. One way would be to let the client talk to two servers. The other would be to let the main server talk to the secondary server (through the API?) and pass the result to the client.
I never done it before, so I would like to try Test Driven Development during this project.
Last but not least a few practical points. In the beginning of May, after I graduate, I will move to Australia. I obtained a work and holiday visa so I am actually allowed to work there. I will be creative in keeping costs low, but still I estimate that I will need about 10 hours a week of additional employment to make a living there. Apart from that I will consider this project as if it is a full time (30 to 40 hours) job. I will start out in Melbourne and I may try to find better weather and lower accommodation costs in other parts of the country. However, my priority will be to stay close to the Internet and spend enough time on this project. I will have plenty of time to explore the continent after the project as well. If it can be coordinated, I would like to participate in some local OSM events.
Finally, I have always wanted an excuse to buy one of those (affordable) GPS trackers (to geotag my photos). If I am accepted I will have chance to buy one and get some hands-on experience with mapping during the community bonding period.
Public Comment History
- 04/07/08 20:31 Dr. Franz-Josef Behr User:fjbehr
- Quite interesting proposal.
Software Engineer M Usman Khan
My Objective: To groom my technical and interpersonal abilities by working in a professional and challenging environment that utilizes my complete potential. Exprience in Technologies: Web: Asp.NET using C#
Application: Microsoft C# Database: Microsoft Sql Server, Oracle
I have exprience in Developing and implementing Multinational Organizations CRM's which can be found at:
Small Projects which are running:
Applications: Remote Client System Analyzer (C#) Call Rates Manager (C#)
I hope I shall get a chance to prove myself with your professional Team
Student Application for OpenStreetMap Makmur
Thanks for make GSoC, it really helpful!
Hello my name is Makmur, I make an apply organization for OpenStreetMap in Google Summer of Code. I want to learn how to make a Map in street (does it like map online?) and I'm a undergrad student too, major of Information Technology in ITHB at Bandung - Indonesia.
Improved GPS workflow In Java Open Street Map Editor or JOSM Subhodip Biswas
Java Open Street Map Editor or JOSM is the one of the most used editor for Open Street Map Project . Its a feature rich Editor particularly useful for
- doing large edits .
- change data without immediate effect .
- adding photos/sound taken during mapping .
- Off line edits.
GPSBabel is a tool used for converting way points, tracks, and routes from one format to another, whether that format is a common mapping format like Delorme, Streets and Trips, or even a serial or USB upload or download to a GPS receiver such as those from Garmin and Magellan.
The problem that arises is in order to a complete mapping procedure using the above two tool one has to:
- Plug in the GPSBabel and download all the GPS traces manually. GPSBabel is now command line based so the user either has to be a computer familiar person or rely on his GPS Device software.
- Execute JOSM and edit all the GPS traces one by one .
- If he has large number of edits he has to manage all those GPS traces ,which is a bit cumbersome and difficult to manage .
The possible solution to the problem is an three way module implementation consisting of :
- Gpsbabel Plugin for Java Open Street Map Editor or JOSM .
- Direct GPX upload from Java Open Street Map Editor.
- Ability to edit GPX in Java Open Street Map Editor.
Since GPS Devices has different architecture so writing something from scratch is lot more difficult as compared to writing a GPSBabel Plugin for JOSM .This helps the user in fetching his GPS traces at once and store it in his place of choice along with JOSM directly intaking them .
Direct GPX upload consists of above step along with GPS trace received from GPS Device being compliant with OSM Protocols http://wiki.openstreetmap.org/index.php/OSM_Protocol_Version_0.5#Methods_for_GPX_Traces
Ability to edit GPX in Java Open Street Map Editor is to support the fact that user may want to upload his GPS traces in either:
- Uploading the full data set of GPS traces .
- Uploading GPS traces in simplified version in accordance with OSM Protocol (after editing using JOSM).
Once implemented this not only help a users (ranging from Beginners to Novice )to use JOSM and map with more ease.But also increase GPS point upload rates, Ability for the user to edit and annotate his traces,thus making more user friendly and ease of use .
JOSM or Java Open Street Map Editor is popular off line editor used for
* Changing a large set of data * Changing data without having any immediate effect (try something out). * Displaying taken photos during your track and on the position they were taken. * The use an off line editor and going to edit an area, which is believed to be changed by other people. JOSM supports merging changes and conflict resolving from changed areas (remember to do a download prior every upload).
Gpsbabel is currently an completely different tool used to upload GPS traces to a computer from a GPS device.It is used for converting way points, tracks, and routes from one format to another, whether that format is a common mapping format like Delorme, Streets and Trips, or even a serial or USB upload or download to a GPS receiver such as those from Garmin and Magellan
The GPS traces need for mapping is uploaded to a computer using tools like GPSBabel, and then using JOSM to edit or use those traces which is pretty difficult for an average user/contributer . The above procedure is also cumbersome and is difficult to manage the GPS traces/way points.
The proposal can be best explained with the help of an example :
Tom has a GPS device,He did some mapping using his GPS device . He comes back to his computer,plug in his GPS device,starts JOSM. JOSM imports the gps traces,provides him an ability to save for future edits,uploads it to OSM Server .
This not only help him by letting him manage all his GPS traces but also let edit his work before he upload that to OSM server and finally helps in uploading it to OSM Server .
So the tasks can be defined the three main parts :
1. Gpsbabel plugin for Java Open Street Map Editor
2. Direct GPX upload from Java Open Street Map Editor
3. Ability to Edit GPX in Java Open Street Map Editor .
So this actually leads to the combined effort of converting data from GPS receiver to a file then uploading to OSM then opening the file in JOSM, all integrated into a single step on JOSM.
A) Gpsbabel Plugin for Java Open Street Map Editor or JOSM.
Since there are lot of gps devices involved with open street mapping,details can be found here http://wiki.openstreetmap.org/index.php/GPS_Reviews
Most Gps devices have their own protocol so it is pretty difficult to write it from scratch .This is where gpsbabel comes in play .
The idea is to write a gpsbabel plugin that will call the gpsbabel binary .The call to the external gpsbabel should work platform-independent on Windows and Linux. This is to be explicitly written. The gpsbabel since already in use (though separately) will produce a user acceptable GPS file Since Gpsbabel is written in C and JOSM in Java so a little bit work is to be done so that the plugin works .
B) Direct GPX upload from Java Open Street Map Editor .
This is actually the main skeleton of the proposal. The gps file retrieved from the GPS device need to OSM protocol compliant before it can be upload to the OSM server.
- retrieving gps files from the devices, - making it OSM Protocol compliant - Ability to save the file for future edits. - Uploading to main OSM Server.
OSM protocol for retrieving gps traces can be found here http://wiki.openstreetmap.org/index.php/OSM_Protocol_Version_0.5#Retrieving_GPS_tracks
OSM protocol for uploading gps traces to the OSM Server can be found here http://wiki.openstreetmap.org/index.php/OSM_Protocol_Version_0.5#Methods_for_GPX_Traces
Some work have been started regarding this module
- Initial set of discussions: http://lists.openstreetmap.org/pipermail/dev/2006-December/002591.html
- A trac ticket regarding this module: http://josm.openstreetmap.de/ticket/407
- Bare Beginning of support: http://josm.openstreetmap.de/changeset/402
This is regarding raw gps data ,but according to OSM protocol the implementation should be as GPX Data.Details about GPX Data can be found here: http://en.wikipedia.org/wiki/GPX_(data_transfer)
C) Ability to edit GPX in Java Open Street Map Editor.
The way of uploading gps can have two possible solutions
- Uploading the full data set . - Uploading GPS traces in simplified version in accordance with OSM Protocol . along with : - Abilty for the user to edit and annotate his traces (otherwise, if user delete the tracks from GPS unit, every day he has to upload the old data again!)
OSM way for valid GPX to be uploaded can be found here http://wiki.openstreetmap.org/index.php/FAQ#Why_didn.27t_my_GPX_file_upload_properly.3F
- Work Flow with Modules :
Since all of these modules are important and are big enough to be completed within Google Summer of Code .My primary goal is
- Gpsbabel plugin for Java Open Street Map Editor
- Direct GPX upload from Java Open Street Map Editor and subsequently
- Ability to edit GPX in Java Open Street Map Editor.
(see http://wiki.openstreetmap.org/index.php/User:Subhodip/GSoc2008 for updates ) :
- Read docs,codes et al.
- Draft design of GPSBabel and JOSM work together.
- Work on integration with JOSM.
- Coding for GPSBabel plugin .
- Debugging,testing first tool until satisfied.
- Milestone (5th June) .
- Work on Direct GPX upload from Java Open Street Map Editor.
- Milestone (1st week of July ) .
- Midterm evaluation
- Starting with Ability to edit GPX in Java Open Street Map Editor module.
- Milestone ( 3rd august) .
- Testing Debugging
- Time runs out .
- Milestone (24th August)
I kept the time line a little bit flexible so that I can extend it a little bit as and when required.
- About Me
My name is Subhodip Biswas,I am studying computer science and engineering at Dr.B.C.Roy Engineering College,Durgapur under West Bengal University Of Technology,Kolkata,India.I am proficient in: C/C++, Java, Python
Some more details about me can be found here: http://subhodipbiswas.wordpress.com
Link to Further Information: http://wiki.openstreetmap.org/index.php/User:Subhodip/GSoc2008
Data Capture Module Hewa Pathirannahalage Thinesh Thusinthaka
Name :Thinesh Thusinthaka Hewa Pathiranna age :23 College :University Of Moratuwa , Faculty of I.T. Hons /level 4
I am a student from SriLanka who is really interested in FOSS work. I have done FossCode2007 competition,which is a local competition similar to GSoc here in Sri Lanaka.
I did read the Project ideas of OpenStreetMap and think Data Capture Module can be easily done by my research interest.
Following can be done easily as i Understand and I have looked into OpenMoko WIKI briefly. 1 An ideal application would be able to sync up with recent OSM data to allow a mapper to have a moving map of what's already completed to work from. 2 Support for blue tooth headsets would allow semi-handfree dictation.
If I am selected, I will do my best in the execution of the duties.
- Finished my internship and have worked with Google Maps API/KML & KMZ files ,ESRI Software’s and uDig/ QGis during my internship.
- Has completed a web application in JSP using Google Maps API /AJAX for my training Company.
- Contributed to the project “Remote Server Administration”.(which won FOSS-CODE Local competition-2006).
Main Programming Languages Done: AJAX,JSP, J2ME, Java Script , ArchView Avenue Scripts.
Technologies used for Projects: ESRI softwares. ArchView 3.1 /ENVI GIS clients- uDig /QGis Eclipse 3.1 with Exadel Studio Net Beans IDE.
I have done extensive work on GPS and GIS technologies. My 3rd year university project “GIS Mobile Navigator” was mainly regarding GIS routing with AI search Strategies.
Project “GIS Mobile Navigator” was selected for ICISTM 2008 conference publication and I did go Dubai to present my project paper this March. Find me as the author in the reference (http://www.imt.edu/icistm/programscheduleicistm2008.pdf)
My earlier work regarding GIS was for "SAHANA"-Its a SriLanakn homed disaster management org. with lot of code comiters worldwide.
Actually its a free and Open Source Disaster Management system and a web based collaboration tool that addresses the common coordination problems during a disaster from finding missing personal and tracking people(http://sahana.lk/)
My Work for Google Summer of Code can be found at WIKI pages- http://wiki.sahana.lk/doku.php?id=dev:gis_infra#gis_analysis http://thineshfeeds.wordpress.com/2007/07/11/gsoc-sahana-gis-module
Data Capture Module as described ,will basically have multi-format data capturing. GPX formats+Photo+Audio Mobile Capture Application - An application for will be for a portable device which can provide the resources.
This would capture GPX traces,waypoints from a GPS device, take photos on demand (+geotag them), record audio on demand. I will have to do more extensive research on this and with OPenmoko Portal Site in Openmoko org.
Support for bluetooth headsets would be looked at.
Replication of the Geoname-Database Veronica Wendlik
Nowadays, there's hardly anybody who hasn't used web services like Google Maps or OpenStreetMap yet. People all over the world have the possibility to get several information about their countries which are provided by such services. There is just one problem. The information might be sufficient concerning countries like Germany, but information about for example Ghana or Pakistan are hardly available. So the question is - what exactly is the aim? My aim is to improve the already existing visualization of OSM data by data provided by other data repositories, mainly of the Geonames database. To provide the success of the project the main point of this project is the replication of the GN-database and the regular updating of the contents by using coordinate information. This project will be realized by the usage of PHP and PostGIS.
The OpenStreetMap project could achieve a great success in many countries in just a few years. While the data is concentrated in developed countries and great cities It seems like an extension is very useful, as in many countries, there's nothing shown besides the capital. This concerns countries all over the world, especially in Africa and South America (where quite a few of our students are coming from). Most of the time there are hardly any informations available, however, the available ones should be used to improve the possibility of using those maps all around the globe. Actually that is the main idea of the project: Augmenting the visualization of OpenStreetMap by other data resources, mainly by point data of the Geoname Database, a free database providing – amongst other services – the download of the used data which includes more than 8 million entries. This data along with new data will help us in extending the visualization if already existing OSM data.
Required steps to ensure the success of the project
1st - Create a new database (using PostGIS) The question was whether it would be better to use mySQL or PostGIS for this task, and I came to the conclusion that it's more preferable to use PostGIS. The main reason is its locational indexing functionality. The data out of the Geoname Database (as well as additional data) will be transferred to this database.
2nd - Write a program to update the database The new database should be able to update itself, according to the updated GN database. Means: As soon as there'll be a new entry in the GN database, the same entry should appear in my database, delayed by 24h as a max.
3rd - Data There should also be the possibility to fill the database with other information, not just cities. So additional information which might not compatible with OSM’s licence, also if not appearing on the screen (like a forest for example), could be stored here. It should be possible as well to enter information which are in another SRS, so not the WGS84, but for example the ETRS or any other spatial reference system , maybe those data can be transferred to the WGS84 if they are not already included in the GN database
4th - Additional information (concerning the database) There should be an extension of the data structure - not just the 3dimensional coordinates X,Y,Z and the name of the city should been shown, but also things like the origin of the data (for example the link to GN ), a timestamp and the URL/URN of the corresponding licence of the data source.
5th - set up a tile server This data along with new data will help us in augmenting the map content of the already existing OSM tiles created by Osmarender and Mapnik. It has to be transparent, so that it can be overlaid over the already existing OSM map.
Project Plan / Methodology
Middle of April – End of April
Understand the GN and OSM data format, Create the new Database in PostGIS according GN data structure with meta data amendments described above.
Start of May – End of May
Write a PHP program to download the GN country files and to update the new generated database according to the conducted updates on the GN database.
Middle/End of May – Middle/End of June
Download the data, bulk loading into the database, starting automatic update process,
Code the program for Tile Server.
End of June – Middle of August (examination three weeks in July)
Installation of a tile server. Render the tiles and provide them by the server.
Middle of August – Middle of September
Documentation the project
Abstract Began learning program from junior high school. Versed in both programming language such as c#, c++,c and .net framework , compact framework programming. Knowing design pattern, extreme programming and test.
Research direction：Next generation networking security and computer network. Be good at learning skill and experiment skill. The total score is the first prize in my major. The first prize in electronic design countrywide competition.
Cooperative, strong in teamwork, being an intern in many companies.Pleasant personality, pushfull and inventive.
I'm really interested in your project.I want to come in it.Sorry for no Contracting with you....
Name: Li Xinhe Gender: male Age:24 School: Beijing Univ. Of Posts and Telecom Major: Information Security Grade: Graduate Two
Began learning program from junior high school. Versed in both programming language such as c#, c++,c and .net framework , compact framework programming. Knowing design pattern, extreme programming and test . Research direction：Next generation networking security and computer network. Be good at learning skill and experiment skill. The total score is the first prize in my major. The first prize in electronic design countrywide competition. Translated the book “Microsoft .net compact framework programming with c#.net”. Cooperative, strong in teamwork, being an intern in many companies. Pleasant personality, pushfull and inventive.
DELETED FULL CV --spaetz 09:23, 8 April 2008 (BST)
OpenStreetMap application yukun
I am a senior student in the Geoscience and Environmental Engineering College from Central South University of China. My major is Geograpy Information System. Because of the studying and living atmosphere, I love my university and Changsha city (Changsha is Chairman Mao’s hometown and he studied here).During my campus life ,I came to contact with Computer Science and Geography Science because of my major. In my spare time ,I am fascinated with program, sometimes I even forget food and rest, I am crazy about that when I make a project and get some fruits. So I will learn another 3 years for my Master Degree. In my spare time I like coding.I support open source.So when I learn the project of google summer of code , I am very exciting. The organization which attend the google summer of code is famous.So I want to have the oppuntity to be a member of it.
I am a senior student in the Geoscience and Environmental Engineering College from Central South University of China. I am majored in Geography Information System.Because of the studying and living atmosphere,IL love my university and Changsha city (Changsha is Chairman Mao’s hometown and he studied here)So I will learn another 3 years for my Master Degree.During the period of college life,I began to know the computer science and geoscience because of my major.the In my spare time ,I am fascinated with program, sometimes I even forget food and rest, I am crazy about that when I make a project and get some fruits.
Firstly,I want to say why I attend the google summer of code.In my option,the development of my software designing has a huge relationship with open source project.For example,Microsoft's Petshop 4.0 gives me the design structure of bussiness three-layer .So now my many projects use the idea.Sharpmap teaches me the structure of a GIS software.It brings the content of book to the real code.Of course,there are many open source projects,I think they are all my good friends.
Secondly,I want to say why I select the org. of OpenStreetMap.For one thing, this project is closely related with my major. For another, it's similar with my graduation design.Now my graduation design is to develop a web application which is based on Google Map API.The main function of this application is bringing the main function(for example,create a new feature and digital or vector)of desktop GIS software to the web.In the web application I will use Ext2.0 as the interface.The database is postGresql.The technology of server is asp.net.
Accordingly, I think I am the best cadidate of the project.Additionally,I support open source.You can see the library of my graduation design most of which is open.I hope I can get the opportunity to study the project.If you have any questions about me, please feel free to ask me.
Link to Further Information: www.cnblogs.com/yukun
Mapping methods Zheng Youhua
Investigate new methods to make mapping easier
- Implement a new algorithm or more to automate GPS traces or aerial imagery
- Integrating these type of automated methods into software such as JOSM would be an additional bonus.
- April 1 -- May 1:basicly prepare
- May 2 -- July 2 : coding
- July 3 -- July 17: bug-fix
- July 18 -- August 18:documentation
During studying in university, I participated in a project - management system of software test cases. After graduate, I participated in some projects -- GIS. I am good at JSP, C++, and so on. I hope I can participate in this project.Thank you!
Public Comment History
- 03/29/08 17:03 David John Colquhoun Anderson
- I'm reassigning your application to OSGeo, since they would be better equipped to deal with applications regarding GIS and related software.
- 03/29/08 22:03 Hamish Bowman
- Hi, the user mentions JOSM which is part of OpenStreetMap (it's the Java Open Street Map Editor). So perhaps it is more appropriate for them to assess it instead of [or as well as] OSGeo.
- I do not fully understand the project the applicant wishes to undertake. Can you please provide (a lot) more detail of what each part entails, and how they would work? Is this for automatic real-time mosaicing or ...?
- How would it relate to projects like Gpsd, GpsDrive, Kismet, QGIS's GPS plugin, GRASS GIS, online MapServers, etc?
- As far as I know, OpenStreetMap is fully vector data - does the JOSM part only relate to GPS tracks or do you envisage using the aerial imagery as something for the user to use as a backdrop in the JOSM editor to trace over?
- 03/31/08 01:03
- David John Colquhoun Anderson
- [Redirecting to OpenStreetMap]
Map routing Zheng Youhua
Create software and methods for producing driving directions from OpenStreetMap data
- April 1 -- May 1: basic prepare
- May 2 -- Jun 20:coding
- Jun 21 -- July 17: find bugs
- July 18 -- August 19 : documenting
During studying in university, I participated in a project -Management System of Software Testing Cases with JSP. During the study of GUCAS -- Graduate University of the Chinese Academy of Sciences, I participated in some GIS projects, and implement the game of Gobang with C++. I hope I can attend this project with your instruction.Thank you!
Public Comment History
- 03/29/08 22:03 Hamish Bowman
- For routing you may be interested in the GPL'd DGLib library.
- There are a few more FOSS routing projects about (do a google search..), and, if I recall correctly, talk of a mailing list too.
- 03/30/08 04:03 Timothy H. Keitt
- Also take a look at PgRouting.
- 03/31/08 01:03 David John Colquhoun Anderson
- [rerouting to OpenStreetMap]
- 03/11/09 10:26 Marcus Wolschon
- Also take a look at Traveling Salesman by now we are even collecting translations for driving instructions in this wiki. So this may no longer be a viable project.