{"comment":{"created_at":"2011-10-11T07:53:30Z","body":"[podolsir] Well... While minimizing the number operations like reprojections improves the performance and readability and is therefore worthwhile in its own right, is doesn't solve the underlying core problems that come with floating point numbers -- it only alleviates them in some cases.\r\n\r\nEnvelopes and coordinates and other floats come to mapnik from all kinds of sources, and they can be subject to any number of operations that can introduce rounding errors and are out of control of mapnik or even the mapnik caller. For example, the envelopes of tiles for the OSM map are computed on the fly from the single bounding box the user inputs. So problems like these will still occur rarely and unpredictably even if they don't anymore in this particular case.\r\n\r\nI still think that introducing a proper float comparison is the way to go. \r\n\r\nDon't get me wrong: your patch still improves the map processing - but it addresses a different aspect :) As to the patch itself, I looked at it for an half an hour now and checked whether it actually does the same thing as the old code, and I think it's good. One minor thing, though: the variables {{{lx0}}}, {{{ly0}}} and so on seem a little bit misnamed now, as the {{{l}}} stood for layer and you're now storing the ''map'' bbox in them. It is quite irritating when reading the new code, at least for me.","updated_at":"2011-10-11T07:53:30Z","url":"https://api.github.com/repos/mapnik-org/mapnik/issues/comments/2357656","id":2357656,"user":{"avatar_url":"https://secure.gravatar.com/avatar/941f68386168a8a6b60f2529a7830af7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/artemp","id":59056,"login":"artemp"}},"action":"created","issue":{"number":400,"created_at":"2011-10-11T07:53:26Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"See attached python script to reproduce. Basically, I create a PointDatasource, add several points with longitude/latitude coordinates to it and attach it to a layer with appropriate projection setting ('+proj=latlon +datum=WGS84'). Then I try to render a map with this layer. Depending on the map projection setting, one or more points get lost.\r\n\r\nIn an ordinary mercator projection ('+proj=merc +datum=WGS84 +k=1.0 +units=m +over +no_defs'), reproducibly the southernmost point vanishes. In fact, I can work around the problem by setting an invisible 'dummy' point south of the area of interest.\r\n\r\nIn UTM, additionally the westernmost point disappears.\r\n\r\nOn the other hand, a map in \"Google\" spherical mercator projection displays all points. So does a simple latlon map where no reprojection is necessary.\r\n\r\nReading the same points from a shapefile works for all these output projections.","comments":11,"title":"Some points from PointDatasource get lost on reprojection","updated_at":"2011-10-11T07:53:33Z","url":"https://api.github.com/repos/mapnik-org/mapnik/issues/400","id":1871990,"assignee":null,"milestone":null,"closed_at":null,"user":{"avatar_url":"https://secure.gravatar.com/avatar/941f68386168a8a6b60f2529a7830af7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/artemp","id":59056,"login":"artemp"},"html_url":"https://github.com/mapnik-org/mapnik/issues/400","labels":[{"name":"Core_Library","url":"https://api.github.com/repos/mapnik-org/mapnik/labels/Core_Library","color":"FFFFFF"}],"state":"open"},"legacy":{"issue_id":1871990,"comment_id":2357656}}