[OSM-dev] Request for help: libosmscout
Hello! I had taken an increasing interest in the data and software side of OpenStreetMap over the last half year, quickly resulting in some hacking on data analysis, map drawing and routing, leading to a C++ library which is already usable (but still far form complete) and is designed to handle all the stuff some navigation software might need for backend. To learn more about it, you can take a look (short video included) at: http://libosmscout.sf.net Note that while this library has a frontend (my initial efforts targeting to the Nokia N810), target is the library that can be used by many backends on multiple platforms. I'm sure not the right person to write a fancy frontend. While I'm sure I will finish it someday in a state fitting my personal needs (I'm satisfied with its progress), a better and quicker result might be interesting for other people, too. Because of that I would like to invite you joining development. If you are interested in helping, do not hesitate to take a look, mail me, subscribe (sourceforge needs some more hours to setup the mailing list) or even hack the code... If in doubt, mail me, too, I do my best to answer all your critical questions :-) I'm looking for clever architects, algorithm junkies, library building experts, OSM data experts, graphical wizards, users, testers etc... I know that documentation is missing, code could be improved, more features are required or existing ones beeing bulky and I'm possibly lacking in-deep OSM knowledge but that should be seen a s a motivation to join and can be fixed quickly if *you* help :-) While you are now beeing overwelmed by this enthusiastic request for help, I must hint that I'm in holiday for a ~10 days starting from the 16.9., so don't be suprised me not answering during this period. -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
[OSM-dev] Need special data extracts
Hello! For a Open Source project idea of mine I need vector data (with a good enough resolution to display a country on screen, so no high resolution stuff) for * Continent borders (earth shape) * Country borders (together with country name) * Country capitals with position and name * Big (well known) cities * Selected POIs (a little bit more as you would see on a wall map of the world) Searching the web I found natural earth data, which offers most of this, but since I would like to use OpenStreetMap data and in fact it in another project already used it I would like to get my data from OSM if possible. However while it seems like the data is there, I have not yet found a more convinient way than downloading a planet.osm and do some (heavy, heavy) postprocessing (Postgres, coastline... :-/). As you might image this is more than inconvinient (I likely need to by a new hard disk for this and have a talk with my provider first ;-)). Are there existing exports that already contain above data and are much smaller than planet.osm? Is there another (simple) way to get parts of above data? I do not have a problem with sticking the different information together from different sources, I'm also a programmer, I already have a *.osm scanner and can postprocess data to further filter out. I can also downstrip data to reduce resolution, but planet.osm is just too heavy for this (for me). I would appreciate any help, hint or link. -- Gruß... Tim. ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Need special data extracts
Hello! Because of you Gruß, I guess you are speaking german. Try: Yes (Bonn) :-) http://www.geofabrik.de/data/download.html This as far as I know does not give me the required information. It contains extras of the planet.osm by country (and partly smaller). So if I want the position of all capital cities of all countries of the world I still need to download all extras of all countries (which in turn should sum up to the size of the planet.osm itself). Also Wiki claims that coastline is currently not trustable (because it is not detailed enough (which is not my problem) and because it is possibly not a closed border at all (because it is still not finished and because it sometimes breaks). If the coastline is closed and I can only get a file for the coastline (without the rest) and this file is small, I could however reduce details myself... -- Gruß... Tim. ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Need special data extracts
Hello! (ah, another german :-)). I have not yet found a more convinient way than downloading a planet.osm You may want to query the XAPI for the relevant data http://wiki.openstreetmap.org/wiki/Xapi Unlike the main API which restricts queries to 0.25 square degrees, XAPI allows much larger requests, up to 100 square degrees So I could not get all capitals in one go but must call it multiple times... Not nice but doable. I could ask for nodes of type 'place=city' to get large cities and 'capital=yes' (if I can judge http://www.openstreetmap.org/browse/node/240109189 correctly) to filter for capitals (I can add two conditions, can't I?). Fine, so this may be a way to get large cities, capitals and possibly also other POIs (while POIs likely do not have a tag for wellknown). But how do I get continent and country shapes together with their names (see my other response)? -- Gruß... Tim. ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] project idea
Hello! in every country, in several counties, in certain towns, there are properties characteristical for some object types of a certain kind. Using boundary objects, one could create a geographical-bound css-like object containing the tags to be used as defaults to overlay each such object's tags found inside of that boundary object. I was thinking about this myself, I think it would be important to have a way of tagging such things. E.g. to define the language of the name-tags inside this boundary. For libosmscout I planed to put (at leats a part of) such information in some application configuration file, this possibly would also include visualisation aspects like with symbols on the map to use for motorway numbers etc... I also would have used boundaries for grouping such information. I would very apreciate to have such information outside my application in an easy to parse format. It could be part of the boundaries in the database but a CCS like formatted file would also do. -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
[OSM-dev] GSoC Suggestion: test.osm suite
Hello! During my work on libosmscout I had the (obvious) idea to test the various implementation aspect of my library against or (or multiple) defined *.osm files. This would have included testing for functionality like rendering things like bridges, tunnels, layers and symbols but also routing correctly in respect of turn restrictions, maxspeed, cross border navigation... For this one or multiple syntetic *.osm file(s) would be optimal, that includes all these features in a stable way (ids of nodes, ways, areas do not change, feature do not disapear or reapear somwhere else). However up to now I had not the time to work on this... My suggestion for GSoC thus would be to let a student develop such test files, resulting in a first version af an ACID-lik test for OSM based map drawing and routing tools. Work would be split into a number of steps: * Collecting the most important features to test (ask the community) * Defining an abstract test suite by categorizing these features and defining small abstract test scenarious. * Design of an environment that allows getting and changing the data, and possibly also not only offers *.osm files but also API instances based on these data * Documentation of environment and change processes * Creation of actual data files Note, that not all step require develpment, in fact the development part is possibly very low, so this might be a problem to get it accepted. Nevertheless this would be possibly of great help for a huge number of existing OSM developers and IMHO testing is a huge and underestimated part of software development. Any opinions about that? Does this make sense? Improvement/addition suggestions? -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Compression types in PBF Format
Hallo! Why this mentality? It is trivial to implement a decompression algorithm and some work better than others. Sounds like complaining about stuff you don't have to care about. I would not implement decompression myself, I have better things to do. Thus I would a library for this. A library however is a dependency, that must be build installed and delivered (not all the world runs Linux with smart packaging systems) and licences have to be checked. It makes sense for teh developer to try to reduce such dependencies by agreeing on one standard compression format. -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] OSM formats optimised for client-side vector rendering?
Hello! However I'm wondering if there is any consensus on a standard OSM data format optimised for vector rendering. There seems to be the OSM Mobile No, as for the reason other people already have mentioned. For libosmscout (clientside *offline* map rendering) the data format requires: * As much data massaging in the preprocessing, since on the fly style evaulation must be powerful but fast, too (no time to iterate over list of strings representing tags). * The internal *disk* binary format must allow fast search and access capabilities so database-like mechanisms are used. For somebody that wants to render small areas on the fly the format is to heavy and requires too much preprocessing, for somebody that wants to render any map possible but with no interactive responsivness requirements for zooming and moving the format is not powerful enough. There is always a trade of :-/ -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Vector tiles stack for Android
Hello, After days of efforts and workarounds, I decided to give up because this mapsforge thing i loved is still too buggy. Also, the project has very little activity since mid-2013 and it seems unlikely that these issues will ever be fixed. If you are still there… thanks for reading all this depressing stuff… but it's time for fresh ideas now! Can you suggest better solutions to: 1) convert OSM data to some compact binary vector format? 2) render this data to bitmap tiles on Android devices? (i am especially interested in conversion and rendering: the view layer is not an issue, osmdroid allows building custom tile providers to hook to almost any bitmap tilesource). libosmscout (http://libosmscout.sourceforge.net/ - the project is alive, even if there not much change on the homepage) is a C++library for for offline OSM map rendering, location lookup and routing. It does enable you to render tiles or full screen maps. There is a prototype Android backend (by a 3rd party person) using JNI to delegate map rendering primitives to Android native drawing primitives. The backend is likely slightly broken (3rd party is currently not active) but it should be easy to fix it. I do not have performance measurements on recent android devices but native rendering on recent iPhones is said to be OK. You can place a custom infrastruture directly on the custom file based database layer. Depending on your detailed requirements the library might suite your needs - or not. There are additional backends for cairo, Qt, iOS/Mac OS X, libagg, and an exemplary SVG backend. -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Building routable graph from OSM data
Hello, I am looking for library that is processing OSM data into routing graph. This graph will be later processed by my program so tight integration with existing routing engine is unneeded and unwanted. libosmscout (libosmscout.sf.net) does generate a routing graph from a parsed *.osm or *.osm.pbf file. The routing graph is later used for a A* based router implementation. But routing graph and router a separated. Depending on your needs this may or not may be what you want... libsosmscout main goal is being a helpful liberary for offline mobile map rendering, routing and POI look up applications. -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] GSOC 2017 libosmscout: Implementation of a OpenGL ES renderer
Hello Fanny, I am Fanny Monori, a Computer Engineering MS student from the University of Debrecen, Hungary. I wish to participate in Google Summer of Code this year, and I am interested in the "libosmscout: Implementation of a OpenGL ES renderer" task, and I am looking for someone to help me getting started with it. I'm Tim Teulings, the main author (but in recent times not the only author) of libosmscout. I wrote the project idea and also likely would be your mentor (though the rest of the libomscout community will likely help, too). Hello and welcome to OpenStreetMap and libosmscout :-) I live in Dortmund, Germany so my time zone is CET / GMT +1. I normally will answer in the evening. I have a bachelor's degree in Computer Science, and during my studies I became familiar with OpenStreetMap. As part of a course, students had to work on projects that are using OpenStreetMap. I really liked working with it, and I would love to contribute to it. I also studied computer graphics, and because of that I have experience using OpenGL. In your Google Summer of Code page you have mentioned that you might require a small exercise or prototype. Do you have any qualification task in mind regarding this project? Some questions: * Libosmscout is written in C++. Are you familiar with C++? * One can develop for Libomscout under Linux, Windows, Mac. I suggest though to work under Linux, since this is the most convenient regarding building the software (and likely working with OpenGL). OK for you? * Is the task clear for you? Do you have any front up questions? I suggest the following next steps: * Subscribe to the mailing list of libosmscout (and write a small introduction mail to make sure people know who you are and thus give you as much help as you need):-) * Look at the documentation available and try to get the existing code running (that means, get it to build, import some OSM data export and get the OSMScout2 demo to show you the map). * Look at the rendering pipeline for one of the existing renderer (Qt, cairo, agg, the others are incomplete) (interaction with Database, MapService, StyleConfig and MapPainter base class). This should give you deeper inside how the existing code is doing the rendering and which functionality is already there (and which is not). There is some rudimentary OpenGL backend code. Just ignore that. It will not help you. Its bad code and bad design. * I assume that the OpenGL backend will be different in some aspects, because of the constraints and principles of OpenGL. So a likely next step would be to make a proposal how your code will look like structurally, how your rendering pipeline will work in principle ("describe the planed design"). How will you get the drawing primitives required working? How will you interact with the styling engine? * Part of the design will likely also be some discussions on the list regarding implementation alternatives. Make suggestions. * If time allows a very simple demo would be helpful to show your OpenGL capabilities, though we should already see some of it based on your design suggestions. I assume that getting "some" rendering to show is already a rather huge part of the implementation effort. So there will be no time for this befor the official proposal. Still, having something to show would be helpful. * Next step would be a concrete implementation plan and a more precise description of what must be implemented to succeed and which optional features can get implemented if time allows. Though a concrete plan can be mad later later than the 20.3. (see overall timeline below). You can find the libosmscout homepage at sourceforge: http://libosmscout.sourceforge.net/ The documentation should already answer many questions. Note that the project also has a github page: https://github.com/Framstag/libosmscout We do use the sourceforge mailinglist but the github git repository is (much) more current than the sourceforge one. We also (mainly) use the github issue tracker. If you have any questions => ask on the libomscout mailing list. If you find bugs, make an issue :-) OSM GSoC 2017 page: https://wiki.openstreetmap.org/wiki/Google_Summer_of_Code/2017 Overall time line (Google page): https://summerofcode.withgoogle.com/how-it-works/#timeline If I understand correctly you have a round 1 week for official registration and submission so we - especially you! - have to hurry up. -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Planet file with preprocessed lines/polygons
Hello Christoph, when it comes to read raw OSM dumps it's quite straightforward to parse nodes: their geometry properties can be read alongside with their tags. When it comes to linestrings and relations it is more complicated to access their geometry: the geometry of referenced nodes needs to be combined into lines and polygons. Also one needs to decide which linestrings/relations are actually lines and which are areas. I know how this can be done but I am wondering if there are preprocessed datasets around that have geometries already precomputed. That would make sense to me as a lot of people face the sample problem and this step is quite resource intense. A huge file containing all osm items as geojson would be my dreamcase. Does this exist? libosmscout (http://libosmscout.sf.net) does such preprocessing and much more for building its internal database. Purpose of libosmscout is offline map rendering, routing and location/POI lookup. It currently does not export its data as geojson (or vector tiles while we are at it). It should be possible though to implement this: Either on the fly based on (bounding box based) database queries or as an export. libosmscout is already used for implementing a simple, local tile server (..and more, see https://github.com/rinigus/osmscout-server) based on the libosmscout database. -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Question Regarding Libosmium
Hello everybody, Libosmium is not what you are looking for here. There are way too many things you'd have to implement yourself on top of libosmium. Have a look at https://github.com/Framstag/libosmscout , maybe that's something for you. Right. Libosmscout gives offers you most of the functionality to implement an offline application that make either use of map drawing, routing or location lookups (or all). Above functionality was always possible because of the database-like design that allows queries-like requests. Since recently there is also a special API for exactly this purpose. And also Jochen is right: Do not try to work on advanced functionalities like this by starting with an export file and code the rest yourself. Things will look easy at the start, but the more you work on it, the more you fill your TODO list with basic stuff. Use existing (framework) code for this. -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Question Regarding Libosmium
Hello Kyle, Yeah, I sent my reply to Jochen before I realized everything that libosmscout implements, like Jochen says in the description of libosmium it's meant for data manipulation, not for navigation. Libosmscout does everything that I need for my application. You and Jochen are both amazing programmers and very helpful; I am very grateful for the responses. Tim -- what is this API you speak of? See SimpleRoutingService, methods * GetClosestRoutableNode * GetClosestRoutableObject -- Gruß... Tim ___ dev mailing list dev@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev