Hi Michael,

One question, however: if I am understanding this correctly, the
problem was with reading pbf files, not with creating them. This would
mean that also pbf files created with osmosis 0.39 were valid and did
not really contain an empty bounding box?

I am asking because the mkgmap splitter still sees such an empty
bounding box even when reading pbf data created with the latest osmosis
from snapshot. Are the changes you did to osmosis to be applied to the
splitter, too?

you got it right, the PBF reader produced a spurious empty bounding box while reading a PBF file without a bounding box set. This is now fixed in Osmosis.

I must admit that I don't know anything about the mkgmap splitter (I barely knew that it even exists ;)). I just looked at the sources and it very well might be that the splitter's BinaryMapParser has the same bug. The function parse(Osmformat.Headerblock) there [1] looks suspiciously similar to what Osmosis did before the fix in OsmosisBinaryParser :) IMHO there should be a check for hasBbox(), too... but as I said, I might be looking at the wrong sources for all I know. Any mkgmap people here? :)

I can think of another reason why you might see those empty bounding boxes in your data, though. If you have a file no-bb.osm.pbf without a bounding box set and a following trivial osmosis pipeline:

osmosis --read-pbf no-bb.osm.pbf --write-pbf x.osm.pbf

then the following happens: the PBF reader reads the input file, emits a spurious bounding box and passes it down the pipeline. The PBF writer gets the bounding box from the pipeline and dutifully writes it into x.osm.pbf since it doesn't know that the bounding box has been spuriously generated by the PBF reader. Now you have an x.osm.pbf with a proper bounding box explicitly set to 0,0,0,0. This bbox will of course pop up in every PBF reader since it is actually written to the file.

Is there any chance that the files in question have been generated by an Osmosis pipeline which involves both reading and writing a pbf file without a bbox? :)

If so, right now you can convert the files to XML, delete the bbox manually and reconvert them to PBF if it's somehow feasible. If you can wait some time, I'm currently working on a set of Osmosis tasks that let you manipulate the bounding box in the stream - that would be more elegant than editing those files by hand.

Hope that helps
Igor

[1] http://svn.mkgmap.org.uk/splitter/trunk/src/uk/me/parabola/splitter/BinaryMapParser.java

_______________________________________________
osmosis-dev mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/osmosis-dev

Reply via email to