#mapnik log: Monday 13, April 2009

2009 | 04

previous | next
00:02:50 <nikq> Mapnik Trac: Ticket #313 (buffer parameter for PolygonSymbolizer) updated | http://trac.mapnik.org/ticket/313#comment:1
00:19:26 <nikq> Mapnik Trac: Ticket #313 (buffer parameter for PolygonSymbolizer) updated | http://trac.mapnik.org/ticket/313#comment:2
00:20:04 <IvanSanchez> springmeyer: before I spam the trac with useless tickets O:-)  : Has per-layer opacity been discussed?
00:20:24 <springmeyer> I like tickets :)
00:20:31 <IvanSanchez> he he
00:20:42 <springmeyer> per-layer opacity? hmmm
00:20:45 <IvanSanchez> yeah
00:21:12 <IvanSanchez> I'm thinking "google-like semi-transparent overlay with semi-transparent streets with no artifacts for the casing and opaque text overlay"
00:22:08 <springmeyer> hum, well opacity operates at the symbolizer level
00:22:20 <springmeyer> what would you get at the layer level?
00:22:21 <IvanSanchez> unless I can apply some (very) funky compositing rules to "de-opacify" a fully opaque cased road, I see no alternative way of doing this (besides hacking an ImageMagick script afterhand)
00:22:45 <springmeyer> "de-opacify" a fully opaque cased road
00:22:47 <springmeyer> hum
00:22:55 <IvanSanchez> I'm thinking that, for every layer, you get a canvas
00:23:12 <IvanSanchez> and every layer gets an opacity and a compose-mode parameter
00:23:16 <springmeyer> ya, I think I'm following
00:23:19 <IvanSanchez> so you compose all the canvases
00:23:20 <springmeyer> right
00:23:42 <IvanSanchez> I'll file a ticket right away :-)
00:23:47 <springmeyer> so casing + symbolizer-level opacity does not play well
00:24:05 <springmeyer> sounds fine
00:24:10 <IvanSanchez> not only that
00:24:37 <IvanSanchez> think about a crossroads: the opacity of the crossroads would be higher than the opacity of each of the streets
00:24:49 <springmeyer> right
00:24:54 <IvanSanchez> (as you're painting several semi-transparent symbolizers on top of one another)
00:25:46 <springmeyer> perhaps in the ticket you could provide some mockups of what you'd like crossroads to look like :)
00:25:58 <IvanSanchez> yeah
00:26:33 <IvanSanchez> BTW, do you spell "composing" or "compositing"?
00:26:33 <springmeyer> an you are just talking about potential crossroads within the same actual layer
00:27:18 <IvanSanchez> "potential" crossroads? heck, every place where two lines cross, overlap, join, or begin-and-end would display an artifact
00:28:29 <springmeyer> right, thats what I am challenging you on. Then you are talking about map level (accumulate) opaciy logic
00:28:40 <springmeyer> surely not a ticket for that ;)
00:30:34 <IvanSanchez> You've lost me there
00:33:34 <springmeyer> just saying that I'm not quite sure whether you  are talking about avoiding artifacts of opacity at the layer level or across layers (map level)
00:33:41 <springmeyer> this is cool looking: http://www.antigrain.com/demo/line_patterns.gif
00:33:52 <Ldp__> IvanSanchez: it sure does. I'm doing overlays with 0.5 opacity elements, and where they touch/cross/overlap, you get less opaque elements in return
00:34:27 <Ldp__> but I wouldn't want the ShieldSymbolizers in that same Map to be opaque
00:34:44 <Ldp__> so: per-layer opacity would be fine
00:34:47 <IvanSanchez> Ldp__: shields would go in a different layer (a fully opaque one)
00:35:07 <Ldp__> s/less opaque/more opaque/
00:35:14 * springmeyer heads off for a bit
00:35:20 <springmeyer> great ideas guys
00:35:21 <Ldp__> IvanSanchez: yes, that's what I meant
00:35:29 * springmeyer was looking at: http://www.antigrain.com/demo/index.html
00:35:29 <IvanSanchez> Ldp__: do you have any screenshots of thar overlapping?
00:35:38 <Ldp__> yes, hold on
00:35:56 <Ldp__> lemme see if my osm2pgsql has finished, and I can show you a slippy map
00:36:12 <IvanSanchez> that'd  be great
00:36:17 <springmeyer> aha, opacity intersection options...
00:36:18 <springmeyer> http://www.antigrain.com/demo/scanline_boolean.gif
00:36:23 * springmeyer really heads out now :)
00:36:53 <Ldp__> still running, hold on IvanSanchez, won't be long now
00:37:15 <Ldp__> I'm not importing the whole planet ;)
00:37:17 * IvanSanchez whatches springmeyer wanting to stop viewing examples
00:40:41 <Ldp__> http://osm.xs4all.nl/ofk/?zoom=13&lat=51.16896&lon=4.4067&layers=B0FFTFFFFF
00:40:52 <Ldp__> dsl warning
00:41:14 <IvanSanchez> oh, osm-nl :-)
00:41:15 <Ldp__> basically, anywhere where 2 lines cross, the colour deepens
00:41:35 <Ldp__> yeah, nl :)
00:41:41 <IvanSanchez> we'll meet this june, I guess
00:41:41 <Ldp__> we have a reputation? :)
00:41:54 <Ldp__> I didn't get tickets (yet)
00:42:14 <IvanSanchez> you guys imported AND, and all the other countries hate you for that :-P
00:42:32 <Ldp__> long before my time
00:42:38 <Ldp__> but that was some good stuff
00:43:55 <Ldp__> those route lines are all <CssParameter name="stroke-opacity">0.5</CssParameter>
00:48:19 <nikq> Mapnik Trac: Ticket #314 (Per-layer opacity and compositing) created | http://trac.mapnik.org/ticket/314
00:48:20 <IvanSanchez> OK, got the screenshot
00:49:10 <nikq> Mapnik Trac: transparent_artifacts.png attached to Ticket #314 | http://trac.mapnik.org/attachment/ticket/314/transparent_artifacts.png
00:49:44 <Ldp__> my case could probably be solved with butt caps for the cases where 2 roads connect
00:49:52 <Ldp__> but not for crossroads
00:49:53 <IvanSanchez> no
00:50:06 <IvanSanchez> if two roads connect in an angle, you're screwed anyway
00:51:41 <Ldp__> you're probably right
00:51:52 <Ldp__> I didn't actually try it
00:55:27 <Ldp__> http://osm.xs4all.nl/ofk/?zoom=13&lat=51.16896&lon=4.4067&layers=B0FFFFFTFF
00:55:45 <Ldp__> this would make a better screenshot, with only 1 colour route involved
00:58:50 <Ldp__> or the lcn layer, if you don't want the distances
01:00:26 <IvanSanchez> I think that the current one is OK - you get both same-color and different-color artifacts
01:02:40 <Ldp__> ok
01:03:14 <Ldp__> most of these in-route artifacts are actually caused by route processing in osm2pgsql
01:03:34 <Ldp__> probably where forward/backward roles are involved
01:03:42 <Ldp__> but that's outside mapnik's scope
01:28:21 *** IvanSanchez has parted #mapnik ("Kopete 0.11.1 : http://kopete.kde.org")
02:17:44 *** Ldp__ has quit ()
04:48:58 <CIA-14> mapnik-utils: dane.springmeyer * r640 /sandbox/point_opacity/ (styles.xml amenity=school.png): add forgotten symbol
07:32:33 *** kets (n=fear@87.251.152.50) has joined #mapnik
09:01:24 *** IvanSanchez (n=ivan@74.3.222.87.dynamic.jazztel.es) has joined #mapnik
10:57:21 *** Ldp__ (n=thid@osm.xs4all.nl) has joined #mapnik
11:33:34 <ser> it looks i can successfully run ogcserver through mod_cache instead of tilecache
11:55:44 <ser> so i have poor-man wms-c ;)
12:21:13 *** kets_ (n=fear@87.251.152.50) has joined #mapnik
12:21:19 *** kets has quit (Read error: 104 (Connection reset by peer))
12:36:34 <ser> ?request=GetCapabilities - it does not work in ogcserver?
12:49:15 *** kets_ has quit ("Ex-Chat")
12:49:18 *** kets_ (n=fear@87.251.152.50) has joined #mapnik
12:54:41 <ser> yes, it works of course using ?version=1.1.1&service=WMS&request=GetCapabilities
12:57:25 <kets_> Someone mapnik compiling with support for Oracle?
13:02:16 <ser> i cannot understand this question, sorry
13:02:47 <ser> support for occi is in alpha stage, you can turn it on during compilation and test it out
13:03:25 <ser> of course we are talking about oracle spatial
13:03:26 <kets_> i  can't compile
13:03:39 <kets_> yes, oracle spatial
13:03:47 <kets_> sorry for my english
13:04:01 <ser> i cannot help you as i do not have oracle
13:04:49 <kets_> understandable, but still very much
13:06:09 <ser> i hope you have read http://trac.mapnik.org/wiki/OCCI
13:06:24 <kets_> yes
13:07:07 <ser> so python scons/scons.py DEBUG=y shows shows you ociei library?
13:07:19 <kets_> The problem is
13:07:50 <kets_> mapnik not find library Oracle
13:09:00 <ser> so you have to read how to include it for C++, of course i hope you have it installed
13:09:23 <kets_> of course
13:15:06 <kets_> I have written parameters OCCI_INCLUDES, OCCI_LIBS
13:15:42 <kets_> but scons/scons.py write ociei not found
13:16:54 <kets_> i have ubuntu 8.10
13:17:03 <kets_> oracle xe client
13:41:09 *** synax (n=synax@24.222.57.182) has joined #mapnik
13:41:20 <synax> good morning, gurus
13:42:20 <synax> when using PostGIS data as the datasource for a layer, does the layer's SRS need to be specified?
13:43:39 <synax> I'm converting a script I recently got working that used shapefiles to generates tiles to use a PostgreSQL DB instead and am having issues
13:44:11 <synax> when specifying the SRS for the layer, the expected output isn't generated
13:44:35 <synax> when removing the layer's SRS the expected output is generated, but my tiles are all blank
13:46:12 *** kets_ has quit (Remote closed the connection)
13:46:47 <synax> actually, my tiles are blank in both cases
14:00:02 *** tomhughes has quit (brown.freenode.net irc.freenode.net)
14:00:02 *** nikq has quit (brown.freenode.net irc.freenode.net)
14:00:05 *** tomhughes (n=tom@gate.compton.nu) has joined #mapnik
14:00:30 *** nikq (n=nikq@li21-121.members.linode.com) has joined #mapnik
14:02:08 *** kets (n=fear@87.251.152.50) has joined #mapnik
14:07:51 *** kets has quit (Remote closed the connection)
14:34:33 <springmeyer> kets_ is gone...
14:34:48 <springmeyer> gotta look a the 'config.log' to see the details on errors
14:36:08 <springmeyer> synax: yes the srs of the layer must always be specified no matter the datasource if:
14:36:54 <springmeyer> 1) the layer is not in wgs84 (lon/lat)
14:37:06 <springmeyer> (since it defaults to that if you specify nothing)
14:37:11 <springmeyer> >>> import mapnik
14:37:11 <springmeyer> m>>> m = mapnik.Map(45,45)
14:37:11 <springmeyer> >>> m.srs
14:37:11 <springmeyer> '+proj=latlong +datum=WGS84'
14:37:18 <springmeyer> (both layer and map)
14:37:54 <springmeyer> or 2) if the map srs differs from the layer srs
14:39:04 <synax> ok
14:39:33 <springmeyer> I realize that may be confusing/not help :)
14:39:41 <synax> no, completely clear
14:39:59 <synax> I think my issue was related to the Filter I was using on the shapefile that did not port over to the DB
14:41:14 <synax> although now my script seems to hang indefinitely :(
14:43:18 <springmeyer> ya, filter KEYS are undercase for postgres
14:43:25 <springmeyer> hangs? not good
14:54:53 <synax> mapnik.render is the cause
15:18:15 *** sanjiv (n=sanjiv@59.180.128.190) has joined #mapnik
15:34:42 <springmeyer> jburgess or tomhughes: do you guys know how I can download the patches against mapnik for fedora?
15:35:17 <springmeyer> I'm wanting to see the actual changes to the source code made, but I'm lost wandering around circular links on the koji pages
15:36:01 <springmeyer> .startrss
15:36:02 <nikq> Okay, I'll start rss fetching...
15:36:03 <nikq> Mapnik Trac: PackageBuilding edited | http://trac.mapnik.org/wiki/PackageBuilding?version=2
15:36:17 <tomhughes> springmeyer: grab the srpm and install it is easiest
15:36:38 <tomhughes> do you have a koji link for the one you're interested in?
15:37:09 <springmeyer> :) ya, I don't have a fedora instance
15:37:29 <springmeyer> srpm is the source rpm?
15:37:43 <springmeyer> was looking at this most recently: http://koji.fedoraproject.org/koji/packageinfo?packageID=6670
15:39:14 <tomhughes> if you have rpm2cpio available you can use it to strip the header and get an archive that cpio will unpack
15:39:52 <tomhughes> http://koji.fedoraproject.org/koji/rpminfo?rpmID=1135132 will let you get the files
15:40:15 <tomhughes> just click through on the one you want in that list and then "info" for the src rpm
15:40:54 <tomhughes> hmm that only give you info on the file, not the contents
15:41:36 <springmeyer> okay, interesting
15:42:12 <tomhughes> looks like the only patches are for gcc 4.4 compatibility and to use the system fonts instead of the mapnik ones
15:42:35 <springmeyer> ya, seems so
15:42:45 <springmeyer> are you able to view the patch on that site?
15:42:57 <tomhughes> no, but I've downloaded the srpm and extracted them
15:43:18 <springmeyer> if I click on the say, gcc 4.4 patch link it takes me to a fully unhelpful page that just lists the sh256 and size
15:43:30 <springmeyer> and links back to the pages I came from
15:43:36 <tomhughes> yeah, koji doesn't seem to let you get the individual files
15:43:50 <tomhughes> can alien not unpack an rpm on debian/ubuntu?
15:43:56 <springmeyer> okay, so I feel less dumb then!
15:44:02 * springmeyer is currently on mac os
15:44:21 <tomhughes> I can mail them to you if you want
15:44:31 <springmeyer> I have been trying to get a fedora install going in virtual box, I'll try that again
15:44:53 <springmeyer> okay, cool, would be helpful to get a sense
15:45:00 <springmeyer> dane.springmeyer@gmail.com
15:45:45 <tomhughes> on the way
15:45:49 <springmeyer> thx!
15:46:03 <springmeyer> I was thinking the patches were major given the bug tracker discussions ;)
15:46:32 <tomhughes> well I think some things (like using the system libagg) I added to scons
15:46:48 <springmeyer> yes, that seemed key
15:47:27 <tomhughes> yeah, fedora generally requires that packages don't have their own versions of things the system already has
15:47:42 <springmeyer> right
15:47:48 <springmeyer> cool, just got the email
15:48:02 <springmeyer> very small patches, perfect
15:48:20 <springmeyer> just fonts, great
15:48:45 <springmeyer> so between your libagg fix a while back and me adding the SYSTEM_FONTS variable to point to the packaged location
15:48:48 <springmeyer> looks good
15:49:08 <springmeyer> thanks tomhughes
15:51:07 <springmeyer> ah, except that...
15:51:08 <springmeyer> +#include <stdint.h>
15:51:25 <tomhughes> which we'll probably need as soon as somebody tries gcc 4.4
15:51:25 <springmeyer> in mapnik/include/mapnik/octree.hpp
15:51:58 <springmeyer> okay, so harmless to add them now?
15:53:20 <tomhughes> I imagine so - I don't have a gcc 4.4 to hand to try it
15:54:18 <springmeyer> k, I'll keep in mind
15:58:59 <springmeyer> tomhughes: when you guys talk about vector symbols, are you thinking about the ability to read in svg files?
16:00:00 <springmeyer> or more along the lines of having support for contructing scalable shapes using symbolizer parameters?
16:00:35 <tomhughes> the ability to use svg files for shield and point symbolizers
16:00:57 <springmeyer> right, okay
16:00:59 <tomhughes> so that the symbols scale nicely in vector output formats
16:01:57 <springmeyer> okay, so you would just provide an svg file and and size dimensions...
16:02:48 <springmeyer> and cairo would maintain the svg as a vector and agg would rasterize?
16:05:03 <Ldp__> I imagine having different scaling for horizontal and vertical would be a plus
16:05:24 <Ldp__> to stretch a shield only horizontally to fit the text
16:05:59 <springmeyer> hmm, yes
16:06:05 <tomhughes> yes, a scale to fit feature of some sort for shields would be nice, so that the image is scaled to the text size
16:06:06 <Ldp__> although that could give thicker vertical lines if it scales everyting :/
16:07:16 <springmeyer> tomhughes: overall I helped encourage work on #155 and now after looking over the patch and thinking a bit more about it
16:07:18 <nikq> Ticket #155: Extend PointSymbolizer to support image scaling, http://trac.mapnik.org/ticket/155
16:07:29 <springmeyer> I realize its off track
16:08:12 <springmeyer> (and the patch has a bunch of little problems I've mostly fixed)
16:09:27 <springmeyer> with OSM the PointSymbolizer is only/or overwhelmingly used to render bitmap symbols, right?
16:10:27 <tomhughes> that's the only thing it can render isn't it?
16:11:24 <springmeyer> well, it can also render a square Image32 if you pass no arguments of file/width/size to the contructor
16:11:37 <springmeyer> and then with this patch you can essentially color and resize that Image32
16:11:43 <tomhughes> ah right
16:11:50 <tomhughes> no, we don't do that at all as far as I know
16:12:04 <Ldp__> I don't think so, either
16:12:16 <springmeyer> ... which gets at functionality that I would really like to see in Mapnik for thematic/proportional symbol mapping
16:12:19 <springmeyer> right, okay
16:12:35 <springmeyer> but the issue here I see is that:
16:13:37 <springmeyer> 1) it confusing/non intuative to have the PointSymbolizer have very different behavior based on number/set of arguments
16:14:39 <springmeyer> 2) we should really be scaling and coloring with agg graphics rather than starting with a black 4x4 Image32 and resampling (ugly) to get say a larger green square
16:14:50 <springmeyer> :)
16:18:26 <springmeyer> does that make sense to you guys?
16:18:38 <Ldp__> 1) yes
16:18:42 <springmeyer> that we may need a separate set of Symbolizers
16:18:44 <Ldp__> 2) sure
16:19:09 <springmeyer> like ProportialPointSymbolizer or something that accepts something like
16:19:52 <springmeyer> <ProportialPointSymbolizer shape="circle" size="10" fill="green" stroke="blue">
16:20:00 <springmeyer> or
16:20:26 <Ldp__> that looks to be better solved with an SVG?
16:20:36 <springmeyer> <ProportialPointSymbolizer shape="square" width="5" height="10">
16:21:00 <springmeyer> Ldp__: ya it would essentially be writing svg-ish syntax
16:21:02 <Ldp__> which gives a lot more freedom than the constraints of a set of tags you code for in this ProportionalPointSymbolizer
16:21:19 <springmeyer> okay, but how would it be solved by SVG?
16:21:38 <Ldp__> how would what be solved? scaling?
16:21:59 <springmeyer> because the idea here is that the shape/width/color/ etc are all changing dynamically based on the Feature
16:22:15 <springmeyer> so you can't read in SVG files (if that is what you mean)
16:23:07 <springmeyer> what I'm getting at is the ability to do something like this:
16:23:09 <springmeyer> http://gis.csde.washington.edu:8080/
16:25:10 <Ldp__> ah, right
16:25:33 <springmeyer> the folks helping with the patch are the team behind maps like this:
16:25:35 <springmeyer> http://maker.geocommons.com/maps/4178
16:26:14 <Ldp__> if you have a svg for that, and scale it, the stroke/border would scale as well, which is not what you want in this case
16:26:23 <springmeyer> whereby the little yellow flags would be svg read in from the filesystem while the circles ideally could be contructed dynamically from symbolzer arguments
16:27:02 <springmeyer> right, so you'd want to be able to control the stroke and fill at the symbolizer level I figure
16:27:17 <Ldp__> for basic geometric shapes, this could work
16:27:26 <springmeyer> maybe just <ProportionalSymbolizer />
16:27:39 <springmeyer> right, basic geometric shapes
16:27:45 <Ldp__> but as you say, the flags would be svg, so if you want different coloured flags, you're using different svgs
16:27:50 <springmeyer> thats all I'm after
16:27:53 <springmeyer> right
16:28:04 <springmeyer> cool, thanks for thinking it through with me :)
16:28:52 <springmeyer> so tomhughes: do you think this warrents a new symbolizer? (and would muddy things if smashed into the PointSymbolizer?)
16:32:55 *** kets (n=fear@87.251.152.50) has joined #mapnik
16:40:25 <Ldp__> springmeyer: I have another scenario that I would some thoughts about, to see if this is already possible in the current version, and maybe you know
16:40:32 <Ldp__> It's about highway shields (yes, again :-) )
16:40:44 <Ldp__> Let's say you have a road where 2 routes converge and then split up again. So this stretch is part of 2 routes, and is signed with 2 shields/numbers.
16:40:51 <Ldp__> Current practice in OSM is to separate with ;, and I've got a query built that will split this up in different ways, each with it's own ref.
16:40:55 <springmeyer> kets: http://dpaste.com your 'config.log' file
16:40:58 <Ldp__> Using a ShieldSymbolizer Rule for these, causes only the Shield of the first one to pop up, and the rest is lost because of collisions.
16:41:06 <Ldp__> What I would like to see is a way to say on a Rule: "if you cannot place this shield at this exact location, try it some n amount of pixels later"
16:41:08 <ser> small question: can i kindly ask WMS for all layers but not a few of them?
16:41:11 <Ldp__> or "try it just next to an already rendered shield". Effectively shifting the starting location, and causing the spacing to be calculated from this offset too.
16:41:14 <Ldp__> ..
16:43:28 <springmeyer> Ldp__: hmm, possible with textsymbolizer partly
16:43:39 <springmeyer> but likely not sheilds
16:44:22 <springmeyer> ya, nope
16:44:35 <Ldp__> too bad
16:44:53 <springmeyer> sounds like you are talking about a displacement value
16:44:55 <Ldp__>  osm_id  |  ref   | ref_length | ref | length |                                            way
16:44:56 <Ldp__> ---------+--------+------------+-----+--------+--------------------------------------------------------------------------------------------
16:44:56 <Ldp__>  6674937 | A1;A35 |          6 | A1  |      2 | 010200002031BF0D0002000000666666E621C82641CDCCCC6C1C275A418FC2F52838C82641666666261A275A41
16:44:57 <Ldp__>  6674937 | A1;A35 |          6 | A35 |      3 | 010200002031BF0D0002000000666666E621C82641CDCCCC6C1C275A418FC2F52838C82641666666261A275A41
16:45:00 <Ldp__> that's what I have
16:45:12 <Ldp__> the same way geometry, but different shields to render
16:45:24 <springmeyer> er tolerance I mean, sorry
16:45:29 <Ldp__> and I'd like to group them, or at least render them all, on the same way
16:46:16 <Ldp__> yes, tolerance sounds like the right thing
16:46:23 <springmeyer> hmm, ya beyond what is supported with sheilds
16:46:42 <springmeyer> Ldp__: I would look in two places to see how easy it might be to port from the text symbolizer:
16:46:56 <Ldp__> the way it is now, it wants to render all shields at the same spots, dropping all after the first one is rendered
16:47:06 <springmeyer> take a look at the options for the TextSymbolizer here: http://trac.mapnik.org/browser/trunk/src/text_symbolizer.cpp
16:48:24 <Ldp__> label_position_tolerance ?
16:48:30 <springmeyer> ya
16:48:30 <springmeyer> then the logic here: http://trac.mapnik.org/browser/trunk/src/agg_renderer.cpp#L760
16:49:19 <Ldp__> ok, I'll see if I can nicely render these multiple ref fields with the TextSymbolizer, and then see how to continue
16:49:29 <Ldp__> probably a ticket, since I don't think I'm game yet to hack the source :)
16:50:25 <springmeyer> oh wait, perhaps with template fancyness those are in fact exposed for shields...
16:50:26 <springmeyer> http://trac.mapnik.org/browser/trunk/src/placement_finder.cpp#L52
16:50:48 <Ldp__> example of what I'm trying to achieve: http://maps.google.nl/?ie=UTF8&ll=52.300737,6.720243&spn=0.022071,0.052357&z=15
16:51:12 <springmeyer> Ldp__: can you try adding label_position_tolerance as a sheild option?
16:51:29 <springmeyer> yes, gocha.
16:51:40 <springmeyer> a screenshot of that on a ticket would be helpful
16:52:02 <Ldp__> label_position_tolerance="40" for instance?
16:52:30 <springmeyer> sure
16:52:32 *** springmeyer has parted #mapnik ()
16:52:43 *** springmeyer (n=dane@c-24-19-50-92.hsd1.wa.comcast.net) has joined #mapnik
16:52:45 <springmeyer> see: http://trac.mapnik.org/wiki/TextSymbolizer
16:53:06 <Ldp__> "defaults to 1/2 min_distance"
16:53:26 <Ldp__> osm.xml has min_distance="30" there... that might cut it too low indeed
16:58:02 <Ldp__> it's not doing much, still getting only the first shield rendered
17:04:39 <johto> anyone know of an open source tool for projecting shapefiles?
17:05:20 <springmeyer> ogr2ogr (GDAL command line utitlity)
17:05:38 <springmeyer> ser: LAYERS=__all__
17:06:39 <ser> springmeyer: yes, but i want __all__ - one
17:07:12 <springmeyer> then nope
17:07:38 <springmeyer> I would use __all__ in the request but in your XML make a few layers status='off'
17:08:45 <ser> ok, thanks for a tip!
17:16:20 <springmeyer> .startrss
17:16:21 <nikq> Okay, I'll re-start rss...
17:17:00 <ser> related question: can i get two layers in one WMS question?
17:23:17 *** nikq has quit (Remote closed the connection)
17:23:26 <springmeyer> .startrss
17:23:27 *** nikq (n=nikq@li21-121.members.linode.com) has joined #mapnik
17:23:29 <springmeyer> .startrss
17:23:29 <nikq> Okay, I'll start rss fetching...
17:23:32 <nikq> Mapnik Trac: point_symbolizer_scaling2_springmeyer.patch attached to Ticket #155 | http://trac.mapnik.org/attachment/ticket/155/point_symbolizer_scaling2_springmeyer.patch
17:24:27 <springmeyer> ser: in OpenLayers do:
17:24:28 <springmeyer> {layers:['layer1','layer2'],styles:['','']}
17:28:21 <nikq> Mapnik Trac: Ticket #155 (Extend PointSymbolizer to support image scaling) updated | http://trac.mapnik.org/ticket/155#comment:14
17:29:57 <ser> It means I can turn off status for few layers in XML but later turn them all in openlayers?
17:30:24 <ser> using one xml file and one wms server?
17:31:08 <springmeyer> listing layers is the standard way in WMS to 'turn on' such that they get rendered
17:31:14 <springmeyer> the __all__ is a hack :)
17:31:44 <springmeyer> if layers are listed(requested) by openlayers but 'off' in the XML, I can't recall what happens
17:31:51 <springmeyer> you tell me :)
17:32:05 <ser> yes, i will tell you soon, thanks :)
17:32:10 <springmeyer> thx!
17:33:43 *** ajturner (n=ajturner@209.155.228.129) has joined #mapnik
17:33:57 <springmeyer> hey ajturner: ya its #155
17:33:58 <nikq> Ticket #155: Extend PointSymbolizer to support image scaling, http://trac.mapnik.org/ticket/155
17:34:01 <ajturner> hey springmeyer  - on the right channel now
17:34:26 <springmeyer> cool :)
17:34:36 *** semprebon (n=semprebo@209.155.228.129) has joined #mapnik
17:35:01 <ajturner> thanks for the feedback - the patch was written quite quickly in december
17:35:10 <ajturner> semprebon's been the good one on pulling it out as a patch and fixing it up
17:35:11 <springmeyer> you are welcome
17:35:37 <springmeyer> I didn't know a lick of C++ in december, but I'm keen to help now :)
17:36:12 <semprebon> I haven't touched C++ in 20 years until last week...
17:36:16 <springmeyer> been learning quickly
17:36:19 <springmeyer> heh!
17:36:56 <springmeyer> good stuff semprebon :)
17:37:00 <ajturner> clearing away all the cobwebs
17:37:21 <ajturner> mapnik definitely utilizes some of hte intricacies of the language (mmm. templates)
17:37:43 <ajturner> fortunately - semprebon also knows ruby - so is adding the bindings
17:37:48 <springmeyer> ya, lots of magic
17:37:53 <springmeyer> oh, wicked
17:37:56 <semprebon> I am?
17:38:01 <springmeyer> !
17:40:38 <semprebon> Maybe in time...
17:52:14 <synax> springmeyer: what are you using to learn C++?
17:52:19 <synax> I haven't touched it since University
17:52:32 <synax> my understanding of C++ now is about on par with my literacy of Chinese
17:52:47 <springmeyer> boost docs
17:53:13 <synax> yeah, so you're just one of those super programmer then
17:53:26 <synax> some people can just pick stuff up
17:53:38 <synax> I'm not (typcially) one of those people ;)
17:53:47 <springmeyer> but mostly just looking at mapnik patterns
17:54:01 <springmeyer> i'm not sure if that means super programmer as much as
17:54:10 <springmeyer> just learning by example
17:55:05 <springmeyer> I remember really getting a grip on python for the first time by looking at django/geodjango source code
17:55:13 <synax> so you must have been a Python programmer to get into Mapnik then?
17:55:39 <ser> springmeyer: no, switched off layer is unvisible of course as mapnik does not see it
17:56:06 <springmeyer> well, ya, I stared with python (which attracted me to Mapnik)
17:56:26 <springmeyer> then have learned javascript and a little C++
17:56:30 <springmeyer> thats about it
17:56:49 <springmeyer> ser: would be easy to have the ogcserver turn on those invisible layers though
17:57:00 <springmeyer> its not that mapnik does not see them
17:57:15 <springmeyer> its rather than mapnik loads them and then does a pass when rendering
17:57:36 <springmeyer> lyr.active = True # if that were inserted into the ogcserver then they would show up
17:57:58 <ser> let me check the code, please
17:59:13 <synax> hrmm.... calling m.zoom_all() and then mapnik.render or mapnik.render_to_file is causing my python script to hang
17:59:33 <synax> # We have to manually zoom out since the buffered layer's envelope is not properly read by Mapnikm.zoom(-5)
17:59:43 <synax> is that the issue?
18:01:45 <springmeyer> syntax: is that a code comment I wrote? :)
18:02:18 <springmeyer> either way that should not be happending - I've never had a rendering hang except if mapnik crashes
18:02:31 <springmeyer> synax: can you http://dpaste.com your code?
18:02:52 <synax> springmeyer: I nabbed that comment from http://mapnik-utils.googlecode.com/svn/example_code/postgis/postgis_geometry.py
18:03:14 <ser> co currently we have lyr.active = obj.active
18:05:22 <springmeyer> ser: if you want to 'force' activation of any requested layer...
18:05:28 <springmeyer> you would add
18:05:41 <springmeyer> layer.active = True
18:05:54 <ser> ok, add you mean replace lyr.active = obj.active
18:05:58 <springmeyer> around line 412 or before:
18:06:04 <springmeyer> http://trac.mapnik.org/browser/trunk/bindings/python/mapnik/ogcserver/common.py
18:06:32 <springmeyer> er 413
18:06:37 <springmeyer> layer.active = True
18:06:39 <springmeyer> m.layers.append(layer)
18:06:59 <ser> checking
18:07:50 <ser> i have a different file locally, <checkout>
18:08:41 *** stamf has quit (Read error: 110 (Connection timed out))
18:21:23 *** racicot has quit ("ChatZilla 0.9.84 [Firefox 2.0.0.21pre/2009020912]")
18:23:12 <ser> springmeyer: it works, indedd!
18:23:57 <ser> now when i am asking for _all__ i cannot see this layer, but when i am asking for him explictely, it shows up!
18:25:16 <ser> does it mean it should be done by default in ogcserver?
18:32:17 <ser> btw, i switched off "roads" layer in OSM and the map looks really funny now :-)
18:37:46 *** wonxly (i=9e931426@gateway/web/ajax/mibbit.com/x-21bc5fe4fb287f92) has joined #mapnik
18:38:52 <wonxly> anyone have any ideas how i could debug mapnik not working with the shape input plugin but it works fine with the postgis plugin?
18:40:07 <wonxly> is there an easy way to just load the world boundary data into postgres with shp2pgsql and modify my osm.xml file to use that?
18:40:51 <IvanSanchez> wonxly: how did you compile it? Did you review the compile-time options for gdal stuff?
18:41:29 <ser> wonxly: eveything you ask is decribed on Mapnik page on wiki.openstreetsmap.org
18:43:41 <wonxly> i'm not currently using gdal...i didn't install gdal...is that required for the shape input plugin to work?
18:44:15 <ser> as well with a readme file which you can get here: http://svn.openstreetmap.org/applications/rendering/mapnik
18:45:36 <springmeyer> wonxly: what is not working?
18:45:43 <wonxly> thanks for your response ser but i opened that readme file and just searched for shp2pgsql and it is not even there?
18:46:09 <wonxly> it appears that mapnik is not able to render the data from the shapefiles
18:46:17 <wonxly> i only get data that i have loaded into postgres
18:46:21 <ser> wonxly: install.txt
18:46:29 <springmeyer> and these are the coastline shapefiles used with OSM?
18:47:01 <ser> wonxly: each step, line under line
18:47:06 <wonxly> yes springmeyer...the other day you recommended me removing the .index files...i tried that but then it just ran forever at 100% CPU
18:47:44 <wonxly> thanks ser...i will give that a try ;)
18:47:47 <springmeyer> wonxly: mapnik version?
18:48:24 <springmeyer> and how are you rendering tiles?
18:50:04 <wonxly> it is an svn version...a little before .6 was released...i was sticking with that because i got it working on solaris 10 X86...and now i was trying to repeat the process on a sparc
18:50:23 <wonxly> but i am thinking something does not work correctly on this different architecture
18:50:28 <springmeyer> oh, you got it working on solaris, cool
18:50:42 <springmeyer> wonxly: post your SConstruct patch, not matter how hairy
18:51:08 <springmeyer> wonxly: ya shapefile reading has only ever been a problem on PPC macs
18:51:13 <springmeyer> so that sounds likely
18:51:24 <springmeyer> arch issue we've yet seen
18:51:50 <springmeyer> wonxly: and you can confirm that the shapefiles (paths etc) are being found?
18:51:55 <wonxly> ok i'll post that...yeah i saw some posts on that for PPC
18:52:12 <springmeyer> if so, then loading the shapefile with shp2pgsql is a good option
18:52:18 <wonxly> yeah i can confirm that ;)
18:52:22 <springmeyer> or trying to read it with the new ogr driver
18:52:37 <springmeyer> but ogr may not have been added by the revision you are using
18:54:20 <springmeyer> $ shp2pgql -s 900913 world_borders_m.shp coastlines | psql osm -U postgres
18:54:36 <springmeyer> a command like that should load the shapefile into postgis
18:55:06 <wonxly> ok cool thanks...is there anything i have to do special in the xml file?  i notice the other postgis layers have SQL as params...
18:55:18 <springmeyer> no, just do
18:55:26 <springmeyer> table="coastlines"
18:55:39 <wonxly> ok cool thanks
18:55:41 <springmeyer> and use the same extent="" param
18:56:02 <springmeyer> wonxly: is your database in mercator? e.g. osm2pgsql -m ?
18:56:09 <wonxly> yeah
18:56:27 <springmeyer> cool, then 900913 should be in there and that command should work
18:56:44 <wonxly> awesome...thanks again for your help
18:57:15 <springmeyer> np, I'll watch for you tickets
18:59:51 <IvanSanchez> springmeyer watches for *all* tickets
19:03:49 <synax> does this SConscript line mean it can't find PostGIS libs? Checking for pg_config... error: no result
19:04:18 <springmeyer> kinda :)
19:04:29 <springmeyer> means you need the development headers for postgres
19:04:41 <synax> postgres-devel ?
19:04:42 <springmeyer> which provide the 'pg_config' program
19:04:57 <springmeyer> or means that that program did not get put on your path
19:05:14 <springmeyer> so you can do PG_CONFIG=/path/to/pg_config
19:06:30 <synax> thanks, got it now
19:06:53 <springmeyer> ah crap
19:07:16 <springmeyer> synax: you don't have postgres installed :)
19:07:33 <synax> yeah, I was missing the development headers
19:07:35 <springmeyer> mapnik hanging if you don't have postgres installed, ugh, that is not good
19:07:42 <synax> springmeyer: no no
19:07:47 <synax> the hanging is unrelated
19:07:59 <synax> my dev box has been f***ed all day
19:08:07 <synax> which is why I'm on another machine now
19:08:10 <springmeyer> synax: oh different box, okay
19:08:13 <springmeyer> whew...
19:08:16 <synax> ;)
19:08:23 <synax> sorry for the heart palpatations
19:08:32 <springmeyer> synax: we do have a bug with postgis though
19:08:34 <springmeyer> you can do
19:08:41 <springmeyer> >>> from mapnik import PostGIS
19:08:48 <springmeyer> >>> pg = PostGIS()
19:08:57 <springmeyer> e.g. instantiate with no options
19:09:03 <springmeyer> and you don't get an error
19:09:07 <springmeyer> which is not right :)
19:09:24 <synax> good to know
19:10:18 <synax> well S.O.B.... now this new box is hanging
19:10:43 <springmeyer> synax: rebuild with DEBUG=True
19:10:44 <synax> maybe it is related, and maybe it's causing problems outside of the script process
19:10:57 <springmeyer> and then see where you get in the debug output
19:11:44 <synax> can I manually edit the config.py file to include DEBUG = True ?
19:12:06 <springmeyer> sure, but then you have to run
19:12:15 <synax> yeah
19:12:17 <springmeyer> python scons/scons.py configure to pick it up
19:12:17 <synax> cool
19:12:33 <springmeyer> putting as an option with configure also works
19:12:54 <synax> rebuilding...
19:13:13 <synax> I have a bad feeling that it's probably an issue with the actual data...
19:13:26 <synax> hopefully I'll get some meaningful debug output
19:13:32 <springmeyer> is it really large?
19:13:40 <synax> yes
19:13:43 <synax> 170k rows
19:14:15 <springmeyer> have you tried...
19:14:32 <springmeyer> select distinct(isvalid(the_geom)) from your_table; ?
19:15:44 <synax> running the query...
19:16:07 <springmeyer> that just a curiosity
19:16:21 <synax> looks like it's going to return a bunch of rows
19:16:35 <springmeyer> general approach here would be to try to get at the query mapnik is sending to postgres
19:16:36 <synax> t (1 row)
19:16:48 <synax> what is the query it defaults to?
19:16:54 <springmeyer> and then grab it and try it within psql
19:16:56 <synax> the above?
19:17:05 <springmeyer> no the query that mapnik debug will show
19:17:10 <synax> ah
19:17:13 <springmeyer> or that you could find in your postgres logs
19:17:21 <springmeyer> mapnik query will be something like:
19:17:36 <springmeyer> Select AsBinary(geometry) from your_table;
19:20:47 <synax> here we go: SELECT AsBinary("geom") AS geom from map_shape WHERE "geom" && SetSRID('BOX3D(44.41685599399469 -64.45014190697725,45.27580374720466 -62.09521102887238)'::box3d,2038)
19:21:06 <synax> that looks about right
19:21:25 <springmeyer> ya, seems fine
19:21:34 <synax> so it's hung (atm) on that
19:21:54 <synax> I'll wait a few minutes and see if it's just because it's a large dataset
19:22:00 <springmeyer> ya
19:22:01 <springmeyer> have you build spatial indexes?
19:22:52 <synax> I didn't insert the data, but yes, it looks like there are indexes
19:23:01 <synax> "map_shape_geom_idx" gist (geom)
19:23:19 <springmeyer> k
19:23:57 <synax> btw, is there a flag/option to supress the debug output when running scripts?
19:24:13 <springmeyer> no
19:29:59 *** racicot (n=chatzill@dsl-209-166-85-189.whidbey.net) has joined #mapnik
19:30:10 *** sanjiv has quit (Success)
19:32:20 *** sanjiv (n=sanjiv@59.180.132.173) has joined #mapnik
19:33:32 <synax> gah, no erroneous postgres logs are being generated either
19:38:46 <synax> until tomorrow, I guess
19:38:51 *** synax has quit ()
20:22:40 *** wonxly has quit ("http://www.mibbit.com ajax IRC Client")
20:43:12 <IvanSanchez> hhmm... mapnik doesn't accept a non-integer value for TextSymbolizer size?
20:44:42 *** sanjiv has quit ("ChatZilla 0.9.84 [Firefox 3.0.8/2009032711]")
20:46:40 <springmeyer> right if you mean for font size
20:47:07 <IvanSanchez> any particular reason? I'm half-way filing a ticket
20:49:30 <springmeyer> not that I'm aware of
20:49:40 <IvanSanchez> ok, then the ticket goes in
20:49:53 <springmeyer> I've filed a ticket for fractional width halos as well
20:50:15 <IvanSanchez> ticket #?
20:50:27 <IvanSanchez> oh, 93
20:51:09 <nikq> Mapnik Trac: Ticket #315 (non-integer values for TextSymbolizer size) created | http://trac.mapnik.org/ticket/315
20:51:29 <nikq> Mapnik Trac: Ticket #93 (Allow for 'halo_radius' to be set as float value) updated | http://trac.mapnik.org/ticket/93#comment:4
21:20:56 *** semprebon has quit ()
21:21:42 *** stamf (n=stamf@116.73.233.220.exetel.com.au) has joined #mapnik
21:26:14 <nikq> Mapnik Trac: Ticket #300 (Improve tests) updated | http://trac.mapnik.org/ticket/300#comment:5
21:38:40 *** stamf has quit (Read error: 104 (Connection reset by peer))
22:24:27 *** stamf (n=stamf@116.73.233.220.exetel.com.au) has joined #mapnik
22:30:09 *** w0lfie_ has quit ("This computer has gone to sleep")
22:46:53 *** rcoup (n=rcoup@ip-118-90-23-233.xdsl.xnet.co.nz) has joined #mapnik
22:54:56 *** w0lfie_ (n=wolf@cpe-67-49-133-78.hawaii.res.rr.com) has joined #mapnik
23:05:32 *** IvanSanchez has quit ("Kopete 0.11.1 : http://kopete.kde.org")
23:22:07 <nikq> Mapnik Trac: Changeset [1098]: catch error and raise UserWarning if an input plugin cannot be found  ... | http://trac.mapnik.org/changeset/1098
23:23:38 <nikq> Mapnik Trac: Ticket #302 (load_map is silent when a PostGIS layer is used if the postgis input  ...) closed | http://trac.mapnik.org/ticket/302#comment:1
23:24:18 <ser> hello springmeyer!
23:25:14 <ser> so could you please tell me what is the required behavior - switched off layer should be visible by ogcserver or not?
23:25:59 <ser> i mean should i always modify ogcserver to have such an option?
23:26:15 <springmeyer> hey ser
23:26:33 <springmeyer> I'm not sure
23:27:03 <ser> for me it is perfectly useful, as i do not need to have two xml files and two wms instances
23:27:18 <springmeyer> seems like the most reasonable thing would be to allow it
23:27:24 <ser> to have a few layers of the same map
23:28:12 *** ajturner has quit ()
23:28:15 <ser> does it mean ogcserver will report these "hidden" layers via getfeature reuest or not?
23:28:45 <ser> if not, information should be safe
23:28:49 <springmeyer> well depends
23:29:04 <springmeyer> where you hacked in forced activation was only in GetMap
23:29:26 <springmeyer> so GetFeatureInfo and GetCapabilities will likely no report the layer
23:29:37 <springmeyer> although we should confirm that
23:29:44 <ser> i can understand, so maybe it is a desired solution, is not it?
23:30:31 <springmeyer> maybe post a patch to a ticket and email the list about thoughts
23:30:35 <ser> ok, so should i create create a ticket?
23:30:41 <springmeyer> sure
23:30:46 <ser> hah, i wrote the same in the same time :)
23:30:53 <springmeyer> :)
23:31:00 <ser> ok, thanks a lot
23:31:12 <springmeyer> I'm not too versed in WMS spec to know if that has ramifications here
23:31:23 <ser> i will deploy it first to show the positive aspects of this solution
23:31:42 <springmeyer> but we do want to avoid adverstising that Mapnik has a WMS compliant server if it has security holes :)
23:32:20 <ser> yes, indeed, it may be a hole if someone knows the layer name :-(
23:32:42 <ser> hmm
23:34:48 <nikq> Mapnik Trac: Changeset [1099]: rename and make non-executable for ease of use with nosetests | http://trac.mapnik.org/changeset/1099
23:35:39 <nikq> Mapnik Trac: Ticket #301 (Mapnik does not issue a UserWarning when a bad (or no) datasource type is  ...) updated | http://trac.mapnik.org/ticket/301#comment:2
23:36:40 <nikq> Mapnik Trac: Ticket #300 (Improve tests) updated | http://trac.mapnik.org/ticket/300#comment:6
23:37:21 <springmeyer> milestone 0.6.1
23:37:22 <nikq> 39 open tickets in Milestone 0.6.1: Add python docstrings to boost:python bindings, Basic Translations of Mapnik tutorials, Provide return value policy in doc strings, Support for overviews in gdal input plug-in, modserver.py (mod_python WMS handler) cannot hardcode 'onlineresource', Setup of Sphinx for Docs, Case insensitivity with Field name lookup in Symbolizers, Allow ability to read datasourc...
23:37:24 <nikq> http://trac.mapnik.org/query?status=new&status=assigned&status=reopened&milestone=0.6.1&order=priority
23:37:25 <nikq> Milestone Roadmap: http://trac.mapnik.org/milestone/0.6.1
23:40:18 <springmeyer> ser: it would be cool if you could test loading the ogcserver WMS into Quantum GIS using the fcgi wrapper
23:40:27 <springmeyer> if it works for you then we can close #243
23:40:28 <nikq> Ticket #243: wms 1.1.1 getcaps doesn't include xlink:href for getmap URL, http://trac.mapnik.org/ticket/243
23:41:14 <nikq> Mapnik Trac: Ticket #277 (modserver.py (mod_python WMS handler) cannot hardcode 'onlineresource') updated | http://trac.mapnik.org/ticket/277#comment:2
23:41:55 <nikq> Mapnik Trac: Ticket #218 (Fix transparency handling for point symbolizers) updated | http://trac.mapnik.org/ticket/218#comment:7
23:44:37 <nikq> Mapnik Trac: Ticket #286 (save_map() serializes colors as RGB tuples irregardless of how they were  ...) updated | http://trac.mapnik.org/ticket/286#comment:1
23:54:33 <springmeyer> ping rcoup
23:56:21 <rcoup> springmeyer: yo
23:56:41 <ser> springmeyer: i can try
23:56:59 <springmeyer> hey: any reason why the postgis plugin should allow no arguments to the contructor? :)
23:57:02 <ser> i did not use it for some time
23:57:19 <springmeyer> or blank params for table or dbname that you see?
23:58:11 <springmeyer> currently it does and I'm about to change that to enforce values for 'table' and 'dbname'
23:58:18 <springmeyer> curious if you see any problem with that