Bryan Housel | 4 May 16:12 2016

[OSM-dev] iD news: v1.9.4 released

iD v1.9.4 was released May 3 2016 and is now available for editing on

The release includes:
- Fix bug causing the Save button to remain disabled even when changeset comment entered
- Support setting imagery offset via url parameter
- New multiple selection field type (built by Kushan Joshi), used for tagging:
   - `payment:*`  (supported on Vending Machine presets)
   - `currency:*`  (supported on Vending Machine, Money Exchange, ATM presets)
   - `fuel:*`          (supported on Gas Station, Marine Fuel Station presets)
   - `recycling:*`  (supported on Recycling presets)
- Additional bug fixes and usability improvements


Follow me on Twitter, or follow the iD project on GitHub for more iD tips and updates.
dev mailing list
dev <at>
Gerardo Velez | 29 Apr 21:52 2016

[OSM-dev] Osmosis RuntimeException: Pipeline entities are not sorted




I’ve been using osmosis ver 0.44.1 to update my openstreetmap database for at least a month without any problem, but today trying to process change file I got the following error:


SEVERE: Thread for task 1-read-xml-change failed

org.openstreetmap.osmosis.core.OsmosisRuntimeException: Pipeline entities are not sorted, pr

evious entity type=Node, id=199245, version=7 current entity type=Node, id=199245, version=7



Looking at the changes file content I notice there are several lines with exactly the same data which I suppose is the problem, like the following lines:


        <node id="199245" lat="59.3317836" lon="18.3465899" version="7" timestamp="2016-04-28T00:35:16Z" changeset="38938814" uid="505284" user="Fringillus">

                <tag k="highway" v="priority"/>


        <node id="199245" lat="59.3317836" lon="18.3465899" version="7" timestamp="2016-04-28T00:35:16Z" changeset="38938814" uid="505284" user="Fringillus">

                <tag k="highway" v="priority"/>



What I did just to test was deleting the first one and reprocess the file, the first error went away but I got the same error for other nodes so I believe the duplicate data is the problem, as it was working perfect for a time until today I guess the problem is in the changes file but it would also be good if osmosis could handle this kind of issues, or if it already handle them I’d appreciate some hints to remove all duplicate nodes and process this change file.


Thanks in advance for your help.  


Gerardo Vélez





dev mailing list
dev <at>
Bryan Housel | 28 Apr 16:51 2016

[OSM-dev] iD news: v1.9.3 release and participation in Google Summer of Code

Hi, OSM!
Just wanted to announce a few things about the iD editor project..

iD 1.9.3 was released Monday 4/25/16 and is now available for editing on
The release includes:
- easy draggable imagery offset adjustment control (built by Kushan Joshi)
- warning for user if they mention Google in their changeset comment
- terrain backgrounds provided by Stamen and Thunderforest (Andy Allan)
- new presets:  Prison, Coffee Shop, Nutrition Supplements store
- various bug fixes and usability improvements

iD will be participating in Google Summer of Code!  
I’ll be working with Kushan Joshi on building a visual lane editor within iD this summer.  
Kushan has been a valuable contributor to iD over the past several months and I’m really looking forward to this project.  
Please join me in congratulating Kushan and welcoming him to the OSM community!

We’re tracking lane tagging on this GitHub ticket,, where Kushan has shared a link to his proposal.

This year I am trying to stick to a roughly monthly release schedule for iD.  If people find it helpful, I’ll continue to post iD release news on the OSM mailing lists.  
And as always, follow me on Twitter, or follow the iD project on GitHub for more iD tips and updates.

dev mailing list
dev <at>
Sylvain Melin | 21 Apr 16:03 2016

[OSM-dev] libosmium and missing multipolygons

Hi everyone.

I wrote a C++ program using libosmium to read an osm file, filter the 
data and extract the result to different target shapefiles.
I have a problem with some features not being written in shapefiles.

For example, I want to extract all water bodies in the bounding box 
latmin=44 latmax=45 lonmin=-1 lonmax=0.
In the resulting shapefile, the relation 2988 "Lit de la Dordogne" is 
missing :

The osmium::Area built from this relation seems to be empty.
area.num_rings() gives 0
area.tags() is empty

Trying to create a multipolygon from this area throws an 
osmium::geometry_error :
"Ignoring illegal geometry for area 5977 created from relation with id=2988.
area contains no rings (area_id=5977)"

Importing my osm file in QGis or converting it with ogr2ogr gives the 
appropriate result and the relation 2988 is correctly exported into the 

Do you have any idea of what's causing this problem and how it can be 
solved ?

Thank you for your help.

Here's the code of my osmium test program (it's a slight modification of 

template <class TProjection>
class MyOGRHandler : public osmium::handler::Handler
     gdalcpp::Layer m_layer;

     osmium::geom::OGRFactory<TProjection>& m_factory;


     MyOGRHandler(gdalcpp::Dataset& dataset, 
osmium::geom::OGRFactory<TProjection>& factory) :
         m_layer(dataset, "toto", wkbMultiPolygon),
         m_layer.add_field("id", OFTReal, 10);
         m_layer.add_field("type", OFTString, 30);

     void area(const osmium::Area& area)
             gdalcpp::Feature feature(m_Output.m_layer, 
             feature.set_field("id", static_cast<double>(;
             feature.set_field("type", "toto");
         catch (osmium::geometry_error& e)
             std::cerr << "Ignoring illegal geometry for area "
                       << " created from "
                       << (area.from_way() ? "way" : "relation")
                       << " with id="
                       << area.orig_id() << ".\n";

int main(int argc, char* argv[])

             osmium::area::Assembler::config_type assembler_config;

             bool error = false;

             std::cerr << "Pass 1...\n";
                 osmium::io::Reader reader1(szIn);
                 printf("Error reading file\n");
                 error = true;
             std::cerr << "Pass 1 done\n";

                 index_type index_pos;
                 location_handler_type location_handler(index_pos);

                 osmium::geom::OGRFactory<> factory {};

                 CPLSetConfigOption("OGR_SQLITE_SYNCHRONOUS", "FALSE");
                 gdalcpp::Dataset dataset{output_format, szOut, 
gdalcpp::SRS{factory.proj_string()}, { "SPATIALITE=TRUE" }};
MyOGRHandler<decltype(factory)::projection_type> ogr_handler(dataset, 

                 std::cerr << "Pass 2...\n";
                 osmium::io::Reader reader2(szIn);

                 osmium::apply(reader2, location_handler, ogr_handler, 
collector.handler([&ogr_handler](const osmium::memory::Buffer& 
area_buffer) {
                     osmium::apply(area_buffer, ogr_handler);

                 std::cerr << "Pass 2 done\n";

                 std::vector<const osmium::Relation*> 
incomplete_relations = collector.get_incomplete_relations();
                 if (!incomplete_relations.empty())
                     std::cerr << "Warning! Some member ways missing for 
these multipolygon relations:";
                     for (const auto* relation : incomplete_relations)
                         std::cerr << " " << relation->id();
                     std::cerr << "\n";


dev mailing list
dev <at>
Jochen Topf | 20 Apr 15:14 2016

[OSM-dev] Storing node locations on ways


Adding node locations to ways is a pain (and needs more than 32 GB RAM these
days for a full planet if you want to get it done in reasonable time). So
I experimented with adding the node locations to the ways once and storing
it in the OSM files. Works for XML, PBF, and OPL. See my blog post at for the
full story.

Love to get your feedback.


Jochen Topf  jochen <at>  +49-351-31778688

dev mailing list
dev <at>
nebulon42 | 12 Apr 22:44 2016

[OSM-dev] carto 0.16.0 released

Carto 0.16.0 (the JavaScript implementation of CartoCSS) has been
released and is available via npm.

Changes include:

* support for YAML MML files
* support for targeting Mapnik API versions from the command line
* support for minimum/maximum-scale-denominator (Mapnik 3)
* support for HuSL perceptual colours
* bug fixes and dependency updates

See for the
full change log.


dev mailing list
dev <at>
Greg | 9 Apr 19:13 2016

[OSM-dev] Python tools and Leaflet maps for Food Hygiene Rating Scheme (FHRS) data

Hi all,

This is my first post to the dev list. I just wanted to make you aware
that I've developed some Python tools for downloading and comparing Food
Hygeine Rating Scheme (FHRS) and OSM data and finding possible matches
between it, together with Leaflet slippy maps for visualising the data.
I think the FHRS data is a useful source for getting more postcode and
address data into OSM, as well as for reminding mappers of local
establishments they could map. It is my hope that these tools could help
mappers to do this efficiently (rather than importing large amounts of
data automatically).

If the code were tweaked and set to download data regularly, it might
provide a useful tool along the lines of Robert Whittaker's Post Hoc
[] postbox comparison maps. I
don't have the computing resources to host the data myself, but would be
happy to help someone get it up and running publicly.

The code is freely available at


dev mailing list
dev <at>
nebulon42 | 6 Apr 20:51 2016

[OSM-dev] Magnacarto and Kosmtik

I was working for some time on connecting Magnacarto and Kosmtik. If you
don't know them: Magnacarto is a Go implementation of CartoCSS
( and Kosmtik
( is a tool for developing map styles
with Mapnik and CartoCSS.

Magnacarto comes with its own development app, but since I'm used to
Kosmtik I wanted to make Magnacarto available to Node.js through a
native extension. Magnacarto may not support the full feature set of the
CartoCSS JavaScript reference implementation, but comes very close.
Since Go is a compiled and statically typed language Magnacarto is much
faster in parsing complex styles than the interpreted JavaScript

For openstreetmap-carto the difference is as large as 1.24s for
Magnacarto vs. 10.08s for Carto on my machine (Intel Core i5-4300U,
Linux x64 and 12 GB RAM, January 2016). This makes a huge difference
when working on such complex map styles like openstreetmap-carto.

If you want to give it a try: Magnacarto comes as plugin for Kosmtik
(see, which can be
installed just like other Kosmtik plugins. The necessary changes to
Kosmtik core were merged only yesterday so you need to run the latest
master for it to work. Then enable the custom renderer through the
--renderer magnacarto option.

There is one caveat: The extension is currently not available for
Windows, because Go does not support building Windows shared libraries yet.

I'm happy if you try it out and let me know how it works for you and
what you think.


dev mailing list
dev <at>
Paul Norman | 4 Apr 00:46 2016

[OSM-dev] Switch2OSM graphic design help needed

Switch2OSM is undergoing a rewrite to allow a different contribution 
model. As part of this we had to switch from the existing WordPress 
design to one using Jekyll. This requires a new visual design, and we're 
looking for help from a graphic designer.

This is independent of content changes, so you don't need to know 
anything about the subjects the guides cover.

There's some more information at, and the 
content can be seen at with just a default 
Jekyll style.

If you're interested in helping, please get in touch. A company could 
also help by letting one of their graphic designers work on it.

dev mailing list
dev <at>
Saad Qureshi | 20 Mar 22:24 2016

[OSM-dev] [GSOC] Suggestion for a Crowd-sourcing Geo-Processing Project


My name is Saad Qureshi and I am currently a 3rd Year Electrical Engineering Student at NUST, Pakistan.

I got a chance to read through all the projects that OpenStreetMap is working on and I would like to recommend an innovative project that me and my friends have been working on for a few months which, if implemented completely, might prove very useful for the OpenStreetMap community. The project is available on github and you can get a basic overview of the project on main file:

The project works like this:

Our volunteers or general athletes use our arm-band (BT enabled with MQ-5 sensor) to collect small samples (without them noticing) during their commute or walking/running sessions from different parts of a city.

We collect that data from our database and relate it to certain properties of different nodes of a city to a specified resolution (50x50 metres in our case) and use the samples (of some nodes) and properties (of all nodes) to predict the samples for the rest of the nodes without physical sampling.

I want to make a formal proposal for this project, but I wanted your feedback on it first.

This Project has a hardware module, android application module and 2 backend modules.

    - Interfaces the MQ-5 sensor and Bluetooth module with the ARM Cortex M4 processor for data acquisition over Bluetooth and sending it directly to the android app (Completed)

Android Application:
    - Uses Mapbox API to visualize the data as heat maps overlay over google maps for both sampled and resultant data and allows the user to enable the sensor remotely for collecting samples. (Completed)

    - A Python-based backend for collecting the properties of a city using MapsAPI and saving them in a database for later (Partially Implemented)
    - A Python-based machine learning implementation for using the samples (of some nodes) and properties (of all nodes) to predict the samples for the rest of the nodes. (Not Implemented)

This is one of those projects for which I wake up every morning and it would be really awesome if I get to work on this during GSOC. Your feedback regarding this project (and its implementation is highly appreciated).

Please let me know if this project resonates with the interests of OpenStreetMap, so that I start making a formal proposal.
dev mailing list
dev <at>
André Riedel | 21 Mar 07:16 2016

[OSM-dev] SSL-Certificate for

We've got a bug report at the Chemnitzer Linux-Tage. should be
added as alternative name in the certificate. This
is important for the link shortener.

Best greetings from Chemnitz

dev mailing list
dev <at>