Preet | 1 Apr 08:49 2012
Picon

[OSM-dev] [osm3d] rendering area data

Hey all,

There are quite a few devs working with OpenStreetMap data in 3d and
judging from screenshots, they've been able to do some pretty awesome
stuff so far. I'm trying to do something similar and wanted some
feedback, specifically for rendering area data, that is, anything that
falls under the 'area' primitive in terms of OpenStreetMap data --
buildings, borders, etc. I'm particularly interested in how to convert
area/relation information from *.osm xml data into polygons that can
be rendered (decomposed into triangles).

Starting from the osm area primitive info [1], it's possible to get
contours (ie node lists) for outer geometry and holes within the area.
This data can then be fed into something like poly2tri [2], which is a
lib that will triangulate simple polygons (holes can be specified
too). The triangulated data is a mesh that can be fed into any
renderer, like OpenGL. However, we can't assume all area data are
simple polys; [4] shows some building geometry that's not strictly
simple. So my main problem/question to devs that are rendering
buildings/area geometry in 3d is:

* How do you build the 3d geometry for areas that are potentially
complex polygons?

[1] http://wiki.openstreetmap.org/wiki/Relation:multipolygon#Usage
[2] http://code.google.com/p/poly2tri/
[3] http://i.stack.imgur.com/W8Uym.png

Regards,

(Continue reading)

Jochen Topf | 1 Apr 10:30 2012

Re: [OSM-dev] [osm3d] rendering area data

On Sun, Apr 01, 2012 at 02:49:40AM -0400, Preet wrote:
> There are quite a few devs working with OpenStreetMap data in 3d and
> judging from screenshots, they've been able to do some pretty awesome
> stuff so far. I'm trying to do something similar and wanted some
> feedback, specifically for rendering area data, that is, anything that
> falls under the 'area' primitive in terms of OpenStreetMap data --
> buildings, borders, etc. I'm particularly interested in how to convert
> area/relation information from *.osm xml data into polygons that can
> be rendered (decomposed into triangles).
> 
> Starting from the osm area primitive info [1], it's possible to get
> contours (ie node lists) for outer geometry and holes within the area.
> This data can then be fed into something like poly2tri [2], which is a
> lib that will triangulate simple polygons (holes can be specified
> too). The triangulated data is a mesh that can be fed into any
> renderer, like OpenGL. However, we can't assume all area data are
> simple polys; [4] shows some building geometry that's not strictly
> simple. So my main problem/question to devs that are rendering
> buildings/area geometry in 3d is:
> 
> * How do you build the 3d geometry for areas that are potentially
> complex polygons?

I don't know about the 3d aspect and the triangulation, but I suggest you start
from something that already exists for assembling nodes, ways, and relations
into multipolygons. Several people have already implemented that part,
including partially fixing broken multipolygons etc. Then you can build your
stuff on top of that. I am aware of three implementations, one in osm2pgsql,
one in imposm, one in Osmium. (Info on all three in the wiki.) There might be
others. If you are ok with C++ and/or Javascript, Osmium is probably the
(Continue reading)

Matthias Meißer | 2 Apr 09:42 2012
Picon

Re: [OSM-dev] [osm3d] rendering area data

Hi Preet,

at the 2nd 3D Workshop in Garching we agreed all to use the forum for 3D 
related discussions. So I guess this will be a better place with the 
right audience. Just login with your OSM credentials

http://forum.openstreetmap.org/viewforum.php?id=42

bye
Matthias
(user:!i!)

Am 01.04.2012 08:49, schrieb Preet:
> Hey all,
>
> There are quite a few devs working with OpenStreetMap data in 3d and
> judging from screenshots, they've been able to do some pretty awesome
> stuff so far. I'm trying to do something similar and wanted some
> feedback, specifically for rendering area data, that is, anything that
> falls under the 'area' primitive in terms of OpenStreetMap data --
> buildings, borders, etc. I'm particularly interested in how to convert
> area/relation information from *.osm xml data into polygons that can
> be rendered (decomposed into triangles).
>
> Starting from the osm area primitive info [1], it's possible to get
> contours (ie node lists) for outer geometry and holes within the area.
> This data can then be fed into something like poly2tri [2], which is a
> lib that will triangulate simple polygons (holes can be specified
> too). The triangulated data is a mesh that can be fed into any
> renderer, like OpenGL. However, we can't assume all area data are
(Continue reading)

Peter Körner | 2 Apr 15:23 2012
Picon

Re: [OSM-dev] different rendering with mapnik based on area?

Am 31.03.2012 21:12, schrieb Phil! Gold:
> * Sven Geggus<lists <at> fuchsschwanzdomain.de>  [2012-03-31 16:06 +0000]:
>> is it possible to have different rendering rules based on the area
>> where rendring takes place using an ordinary mapnik rendering stack
>> (osm2pgsql+mod_tile+tirex)?
>
> Supposedly yes.  MapQuest uses has three different stylesheets that they
> use for their tiles and the appropriate one is selected based on where the
> rendered data is.

It won't work without adapting the source. You can choose which source 
you want to adapt:
  - The Style: use different layers for the areas whith 'SELECT WHERE
    ST_Inside(way, ...)'-style queries - simple but slow
  - mapnik: somehow..
  - mod_tile: switch between different maps depending on the requested
    z/x/y-tile
  - The Client (OpenLayers/Leaflet): enable/disable base-layers
    depending on the visible area

Choose whichever way fits your needs best - and tell us about.
Peter
kabum | 2 Apr 18:31 2012
Picon

Re: [OSM-dev] Google Summer of Code

Hi,


I thought about this proposal and this is the current state:

The processing part (called "engine") should be seperated from the interface (website).

engine - this part processes specific changesets and put the resutl into a database
website - frontend to display stored data (dashboard), mark false positives/negatives

extensibility of the engine:
- each criteria (for example see http://wiki.openstreetmap.org/wiki/Detect_Vandalism#Criteria - this seems to be a good base) is represented by a plugin
- plugins return a score (integer) which stored in the database
- different types of plugins:
  ° single changeset scope (i.e.: mass deletion/import, very far movement of nodes)
  ° multiple changeset scope (i.e.: many changesets within short time per user)
  ° user related score (i.e.: date of registration, number of edits, blocked user?)
  ° area related score - mark specific area as a suspicious one for some time (i.e.: vandalism of a area by several users)
- these scores are may summarized by type and then multiplied/weighted
- engine has to create "fake changesets" containing changes from several changesets being in relation (user, time window) to detect splitted changes

Result:
- each changeset has a total rating -> use a treshold value to divide them into suspicious and not suspicious

Testing:

Some questions came up within this preparation:
- Is there a prefered language? Has this to be specified within the proposal? (language skill has to be rated, so I would decide this during the project phase)
- I also would like to discuss used libraries and framework within the project phase, or should I decide this also in my proposal?
- Should the frontend integrate in the current website (ruby on rails project) or should this just be an optional feature?
- How detailed should be the proposal? Is it enough to formulate this draft?

Point out my mistakes and feel free to ask questions, criticize this draft and share your ideas and thoughts. :)

Best regards,
Morris Jobke


Am 26. März 2012 12:14 schrieb kabum <uu.kabum <at> gmail.com>:
Hi,

me again. Derick answered my PM and I recognized, that I've missed some features.

The interface should be a simple website listing the suspicious changesets. As well a possibility to mark false positives and false negatives were great.

Derick suggested also a integration with JOSM and mentioned its changeset reverting capabilities.

Best regards,
Morris Jobke

Am 26. März 2012 00:36 schrieb kabum <uu.kabum <at> gmail.com>:

Hi,

Am 19. März 2012 22:45 schrieb Graham Jones <grahamjones139 <at> gmail.com>:

Hi,
Thank you for your interest in applying for GSoC with Openstreetmap.   This list will be fine to ask questions.

Here are a few suggestions to get you started:

- It is important to understand the fundamentals of what OSM is, so if you have not done so before, please start by creating an account and making some improvements to the map in your local area.

I heard of OSM a long time ago, but was just to lazy to contribute to. So I tried these days and I was really surprised how fast changes are visible in the rendered map. I've taken several notes of my surrounding waiting for filled into the OSM database. :)

- It would also be good to look at the OSM data structure.  Details of the xml file format can be found on our wiki. 

Done :) 

- If you search for Nominatim on the OSM wiki you should find some information on the current service and links to the source code to see how it currently does searching to see how it could be improved. 

The project idea was suggested by 'sabas88' - could he/she provide some more information on the issues behind this project suggestion please?

I've asked him and the only answer was a link to the GSoC project site in the OSM wiki. :(

I read a lot about OSM, it's mechanism, assistant tools, etc and also about Nominatim and I realized, that this isn't what I want to do. I've looking for some other contribution to OSM and GSoC and found the suggestion for an quality assurance tool specialized for edits/changesets (by Derick Rethans). There are many quality assurance tools but no one like this - or have I missed it?

The idea is to have a engine that gets a (set of) changesets or edits and analyse them. It should detect things like logical mistakes, mass deletions without corresponding insertions, etc and take also user metadata like duration of membership or count of his edits into account. It would be great if it compare the changes with current state of the data in this area and detect senseless checks, because the data is out of date and already corrected. 

Some other things to keep in mind while planning:
- extensibility through "plugins": engine (calls)-> several detection plugins
- there could be searches for suspicious changesets/edits in specific area

This was just a quick outline of the proposal. Are there some suggestions, wishes, questions or doubts?

In the next days I plan to specify this proposal.

Best regards,
Morris Jobke

Hope that helps.   Please feel free to ask more questions as you develop your proposal.

Regards

Graham


On 19 March 2012 21:28, kabum <uu.kabum <at> gmail.com> wrote:
Hi,

I am interested in "Nominatim (or alternative)", but there isn't any mentor mentioned. Where could I discuss about the idea?

Best regards,
Morris Jobke

_______________________________________________
dev mailing list
dev <at> openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev




--
Graham Jones
Hartlepool, UK.




_______________________________________________
dev mailing list
dev <at> openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev
Reinder Verlinde | 1 Apr 22:56 2012
Picon

Re: [OSM-dev] different rendering with mapnik based on area?

In article <20120331191247.GU29037 <at> aperiodic.net>,
 Phil! Gold <phil_g <at> pobox.com> wrote:

> * Sven Geggus <lists <at> fuchsschwanzdomain.de> [2012-03-31 16:06 +0000]:
> > is it possible to have different rendering rules based on the area
> > where rendring takes place using an ordinary mapnik rendering stack
> > (osm2pgsql+mod_tile+tirex)?
> 
> Supposedly yes.  MapQuest uses has three different stylesheets that they
> use for their tiles and the appropriate one is selected based on where the
> rendered data is.
> 
> Unfortunately, I cannot find *any* information online about how this is
> accomplished.  MapQuest's stylesheet repo[0] has the three stylesheets but
> gives no clues about how they're used.  I haven't found anything via
> Internet searches or grepping through the mapnik source code, either.  I'm
> hoping someone else on the list know the magic keywords to look for,
> because I'm kind of stumped.
> 
>   [0]: https://github.com/MapQuest/MapQuest-Mapnik-Style

I guess a way to do it is to have three layers, one for each section of 
the map, and render each with its own stylesheet.

You will have to take care that no part of the map gets rendered 
multiple times, though. That seems doable if the borders are water 
areas. Depending on the style, rendering that twice will not lead to 
artifacts.

Reinder
Sven Geggus | 2 Apr 21:18 2012
Picon

Re: [OSM-dev] different rendering with mapnik based on area?

Peter Körner <osm-lists <at> mazdermind.de> wrote:

> Choose whichever way fits your needs best - and tell us about.

The question is how Mapquest is actually doing it?

Regards

Sven

--

-- 
"Every time you use Google, you're using a Linux machine"
                             (Chris DiBona, a programs manager for Google)

/me is giggls <at> ircnet, http://sven.gegg.us/ on the Web

_______________________________________________
dev mailing list
dev <at> openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev
Paul Norman | 2 Apr 22:20 2012
Picon

Re: [OSM-dev] Google Summer of Code

A tool that operates on the changeset level is https://github.com/pnorman/osm-weirdness

It detects changesets that have a high probability  of being an import or mechanical edit. The detection is pretty crude but it does find a fair number of undocumented imports, mechanical edits, and other weirdness. If you point it an old state.txt file it will start in the past and work up to the present.

 

When working with the minutely diffs there are some limitations:

Limited knowledge of changesets. In practice, if you start your detection an hour in the past you can have a list of all open changesets, but it is not possible to know the tags of the changesets.

No knowledge of the previous state of objects. You know where deleted objects were, but you can’t tell how far an object is moved or what it’s tags were before. To tell this you need to query a service with a full history DB, and handling full history files is difficult.

No knowledge of way geometry if using existing nodes. Iandees’ https://github.com/pnorman/osm-weirdness/tree/way_check solves this by fetching nodes in a way that aren’t also in the changeset from jxapi and it can then detect bad geometry (e.g. ways that trace over themselves)

 

If you were to code a vandalism detection tool I think it should work on the minutely replication diffs (http://wiki.openstreetmap.org/wiki/Planet.osm/diffs)

 

 

From: kabum [mailto:uu.kabum <at> gmail.com]
Sent: Monday, April 02, 2012 9:31 AM
To: OpenStreetMap dev list
Subject: Re: [OSM-dev] Google Summer of Code

 

Hi,

 

I thought about this proposal and this is the current state:

 

The processing part (called "engine") should be seperated from the interface (website).

 

engine - this part processes specific changesets and put the resutl into a database

website - frontend to display stored data (dashboard), mark false positives/negatives

 

extensibility of the engine:

- each criteria (for example see http://wiki.openstreetmap.org/wiki/Detect_Vandalism#Criteria - this seems to be a good base) is represented by a plugin

- plugins return a score (integer) which stored in the database

- different types of plugins:

  ° single changeset scope (i.e.: mass deletion/import, very far movement of nodes)

  ° multiple changeset scope (i.e.: many changesets within short time per user)

  ° user related score (i.e.: date of registration, number of edits, blocked user?)

  ° area related score - mark specific area as a suspicious one for some time (i.e.: vandalism of a area by several users)

- these scores are may summarized by type and then multiplied/weighted

- engine has to create "fake changesets" containing changes from several changesets being in relation (user, time window) to detect splitted changes

 

Result:

- each changeset has a total rating -> use a treshold value to divide them into suspicious and not suspicious

 

Testing:

 

Some questions came up within this preparation:

- Is there a prefered language? Has this to be specified within the proposal? (language skill has to be rated, so I would decide this during the project phase)

- I also would like to discuss used libraries and framework within the project phase, or should I decide this also in my proposal?

- Should the frontend integrate in the current website (ruby on rails project) or should this just be an optional feature?

- How detailed should be the proposal? Is it enough to formulate this draft?

 

Point out my mistakes and feel free to ask questions, criticize this draft and share your ideas and thoughts. :)

 

Best regards,

Morris Jobke

 

 

Am 26. März 2012 12:14 schrieb kabum <uu.kabum <at> gmail.com>:

Hi,

 

me again. Derick answered my PM and I recognized, that I've missed some features.

 

The interface should be a simple website listing the suspicious changesets. As well a possibility to mark false positives and false negatives were great.

 

Derick suggested also a integration with JOSM and mentioned its changeset reverting capabilities.

 

Best regards,

Morris Jobke

Am 26. März 2012 00:36 schrieb kabum <uu.kabum <at> gmail.com>:

 

Hi,

Am 19. März 2012 22:45 schrieb Graham Jones <grahamjones139 <at> gmail.com>:

 

Hi,
Thank you for your interest in applying for GSoC with Openstreetmap.   This list will be fine to ask questions.

Here are a few suggestions to get you started:

- It is important to understand the fundamentals of what OSM is, so if you have not done so before, please start by creating an account and making some improvements to the map in your local area.

I heard of OSM a long time ago, but was just to lazy to contribute to. So I tried these days and I was really surprised how fast changes are visible in the rendered map. I've taken several notes of my surrounding waiting for filled into the OSM database. :)

- It would also be good to look at the OSM data structure.  Details of the xml file format can be found on our wiki. 

Done :) 

- If you search for Nominatim on the OSM wiki you should find some information on the current service and links to the source code to see how it currently does searching to see how it could be improved. 

The project idea was suggested by 'sabas88' - could he/she provide some more information on the issues behind this project suggestion please?

I've asked him and the only answer was a link to the GSoC project site in the OSM wiki. :(

 

I read a lot about OSM, it's mechanism, assistant tools, etc and also about Nominatim and I realized, that this isn't what I want to do. I've looking for some other contribution to OSM and GSoC and found the suggestion for an quality assurance tool specialized for edits/changesets (by Derick Rethans). There are many quality assurance tools but no one like this - or have I missed it?

 

The idea is to have a engine that gets a (set of) changesets or edits and analyse them. It should detect things like logical mistakes, mass deletions without corresponding insertions, etc and take also user metadata like duration of membership or count of his edits into account. It would be great if it compare the changes with current state of the data in this area and detect senseless checks, because the data is out of date and already corrected. 

 

Some other things to keep in mind while planning:

- extensibility through "plugins": engine (calls)-> several detection plugins

- there could be searches for suspicious changesets/edits in specific area

 

This was just a quick outline of the proposal. Are there some suggestions, wishes, questions or doubts?

 

In the next days I plan to specify this proposal.

 

Best regards,

Morris Jobke

Hope that helps.   Please feel free to ask more questions as you develop your proposal.

Regards

Graham

 

On 19 March 2012 21:28, kabum <uu.kabum <at> gmail.com> wrote:

Hi,

 

I am interested in "Nominatim (or alternative)", but there isn't any mentor mentioned. Where could I discuss about the idea?

 

Best regards,

Morris Jobke

 

_______________________________________________
dev mailing list
dev <at> openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev



 

--
Graham Jones

Hartlepool, UK.

 

 

 

 

_______________________________________________
dev mailing list
dev <at> openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev
Frederik Ramm | 2 Apr 23:41 2012

Re: [OSM-dev] different rendering with mapnik based on area?

Hi,

On 04/02/2012 09:18 PM, Sven Geggus wrote:
>> Choose whichever way fits your needs best - and tell us about.
>
> The question is how Mapquest is actually doing it?

I originally thought there was some support in Mapnik for that but 
probably I was wrong, and the secret is in the queue/rendering manager 
that Mapquest use, which is neither Tirex nor mod_tile but

https://github.com/MapQuest/MapQuest-Render-Stack

Bye
Frederik

--

-- 
Frederik Ramm  ##  eMail frederik <at> remote.org  ##  N49°00'09" E008°23'33"

_______________________________________________
dev mailing list
dev <at> openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev
Derick Rethans | 3 Apr 09:38 2012
Picon

Re: [OSM-dev] Google Summer of Code

On Mon, 2 Apr 2012, kabum wrote:

> Result:
> - each changeset has a total rating -> use a treshold value to divide them
> into suspicious and not suspicious

Instead of just using static thresholds, I think that something like SVM 
(http://en.wikipedia.org/wiki/Support_vector_machine) might be highly 
benificial here; and it's another cool technology to play with. There is 
a cool library for this (http://www.csie.ntu.edu.tw/~cjlin/libsvm/) and 
I know there is at least an extension to use it from PHP: 
http://phpir.com/support-vector-machines-in-php

> Some questions came up within this preparation:
> - Is there a prefered language? Has this to be specified within the
> proposal? (language skill has to be rated, so I would decide this during
> the project phase)

Not really any preferred language. What did you have in mind? For the 
front end I was thinking PHP, but the engine, I wouldn't know. I think 
something high performant (so C or C++) might be benificial.

> - I also would like to discuss used libraries and framework within the
> project phase, or should I decide this also in my proposal?
> - Should the frontend integrate in the current website (ruby on rails
> project) or should this just be an optional feature?

I think it can easily live as it's own website.

> - How detailed should be the proposal? Is it enough to formulate this draft?

That's a tricky one, the more information you provide the better I 
think, as it shows you have thought about it :-)

cheers,
Derick

--

-- 
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter:  <at> derickr and  <at> xdebug

Gmane