#mapnik log: Sunday 22, February 2009

2009 | 02

previous | next
01:46:56 *** rcoup (n=rcoup@ip-118-90-17-24.xdsl.xnet.co.nz) has joined #mapnik
02:01:15 *** cremaster (i=blotanic@vpn-wireless-client-pool-245-15.cpmc.columbia.edu) has joined #mapnik
02:24:49 *** cremaster has quit (Read error: 110 (Connection timed out))
02:54:07 *** rcoup has quit ()
03:13:05 <dukeku> csv2shp is amazing
03:49:50 *** cremaster (i=blotanic@vpn-wireless-client-pool-245-2.cpmc.columbia.edu) has joined #mapnik
04:21:14 *** rcoup (n=rcoup@ip-118-90-17-24.xdsl.xnet.co.nz) has joined #mapnik
04:37:26 *** rcoup has quit ()
04:48:10 *** cremaster has quit (Read error: 104 (Connection reset by peer))
04:52:52 *** cremaster (i=blotanic@vpn-wireless-client-pool-245-27.cpmc.columbia.edu) has joined #mapnik
07:28:22 *** cremaster has quit (Read error: 110 (Connection timed out))
08:54:35 *** rcoup (n=rcoup@ip-118-90-17-24.xdsl.xnet.co.nz) has joined #mapnik
11:05:11 *** rcoup has quit ()
11:41:16 *** tomhughes has quit ("Coyote finally caught me")
11:41:22 *** tomhughes (n=tom@gate.compton.nu) has joined #mapnik
12:05:08 *** tomhughes has quit ("Coyote finally caught me")
12:07:52 *** tomhughes (n=tom@gate.compton.nu) has joined #mapnik
13:55:11 *** sanjiv (n=chatzill@59.180.147.79) has joined #mapnik
14:04:48 *** sanjiv has quit (Read error: 104 (Connection reset by peer))
14:05:35 *** sanjiv (n=chatzill@59.180.147.79) has joined #mapnik
14:28:54 *** kunitoki (n=kraken@host217-241-dynamic.44-79-r.retail.telecomitalia.it) has joined #mapnik
14:31:19 *** sanjiv has quit ("ChatZilla 0.9.84 [Firefox 3.0.6/2009020911]")
16:52:07 *** artem (n=artem@i-83-67-142-225.freedom2surf.net) has joined #mapnik
16:52:53 <artem> kunitoki: hey there
17:00:38 *** artem has quit ()
17:13:57 *** sanjiv (n=chatzill@59.180.128.180) has joined #mapnik
17:17:11 *** springmeyer (n=dane@c-24-19-50-92.hsd1.wa.comcast.net) has joined #mapnik
17:28:13 <cmarqu> springmeyer: Hi!
17:28:34 <springmeyer> hello
17:29:11 <cmarqu> springmeyer: liteserv.py gives me "prj = <mapnik.Projection object at 0x1e92b50>" in the informational output at the beginning, is that intended?
17:29:21 <cmarqu> I would have expected a string maybe
17:29:29 <springmeyer> exactly.
17:29:32 <springmeyer> i noticed that too
17:29:51 <springmeyer> essentially the mapnik.Projection object has no __str__ method I guess
17:30:11 <cmarqu> Ok. No big deal of course.
17:30:21 <springmeyer> I think we should probably add it to map __str__ to print .params()
17:31:36 <cmarqu> In the cfg file: "cache_mode = on" should maybe be "caching = on", since there is no real mode to set anymore, just a boolean.
17:31:59 <springmeyer> yes, i agree. great
17:34:01 <springmeyer> mapnik.Envelope() seems to have a string repr... looking at how that works
17:37:43 <springmeyer> aha, it is done via the _injector in that sneaky __init__.py file
17:37:45 <springmeyer> http://trac.mapnik.org/browser/trunk/bindings/python/mapnik/__init__.py#L55
17:39:02 <cmarqu> What would make tilelite to throw away a cached tile and render a new one? A style file newer than the tiles?
17:42:13 <cmarqu> Hmm, apparently not.
17:42:51 <springmeyer> no, there is no fancy logic like that currently
17:43:18 <springmeyer> either caching, not caching, or regenerating the cache
17:43:31 <cmarqu> Ok
17:43:46 <springmeyer> we talked about the /tmp being unique to a session, but I've not done that yet :)
17:44:08 <springmeyer> just need to use a unique temp directory I figure
17:44:26 <cmarqu> Yes, that could also work.
17:45:02 <cmarqu> FWIW, since I rebooted now, I had exactly the problem that I anticipated, in that Cascadenik's icons in /tmp were gone :)
17:45:10 <cmarqu> Filed a bug for that.
17:45:17 <springmeyer> :) yup
17:45:20 <springmeyer> cool, thx
17:46:08 <cmarqu> Mike doesn't seem to have time right now, with the new CloudMade styles maybe, and http://hci.stanford.edu/cs547/abstracts/08-09/090220-migurski.html
17:47:01 <springmeyer> yes, he is on a serious tear - its awesome
17:50:38 *** crschmidt has quit (brown.freenode.net irc.freenode.net)
17:51:06 *** crschmidt (n=crschmid@59.176.232.72.static.reverse.ltdomains.com) has joined #mapnik
18:05:59 *** adakkak (n=adakkak@gres110.lis.illinois.edu) has joined #mapnik
18:09:41 <cmarqu> Mapnik doesn't seem to put two interleaved ShieldSymbolizers on the same way. I set spacing and min_distance to different values, even taking collisions into account, I should see them interleaved at least *sometimes*.
18:22:37 <nikq> Mapnik Trac: Changeset [950]: + add string representation for Projection object in python | http://trac.mapnik.org/changeset/950
18:31:04 <CIA-23> mapnik: dane * r950 /trunk/bindings/python/mapnik/__init__.py: + add string representation for Projection object in python
18:37:39 *** artem (n=artem@i-83-67-142-225.freedom2surf.net) has joined #mapnik
18:46:07 <springmeyer> hey artem: I just added a __str__ method for a projection in 950
18:46:21 <springmeyer> should it instead be a __repr__ ?
18:47:15 <artem> __str__ sounds good to me. what does it do? returns "+proj=xx ..." ?
18:47:28 <springmeyer> It seems logical to me to have the __repr__ return the obj also for env, coord...
18:47:40 <springmeyer> yes, returns the proj4 literal or +init=espg....
18:48:52 * artem checking ..
18:49:28 <artem> >>> c = Coord(200,200)
18:49:28 <artem> >>> c
18:49:28 <artem> Coord(200.0,200.0)
18:49:28 <artem> >>> repr(c)
18:49:29 <artem> 'Coord(200.0,200.0)'
18:49:29 <artem> >>> str(c)
18:49:31 <artem> 'Coord(200.0,200.0)'
18:49:35 <artem> >>>
18:52:39 <artem> is this good ?
18:54:56 <springmeyer> I'm thinking that repr(c) should return...
18:55:07 <springmeyer> <mapik.Coord ....>
18:55:27 <springmeyer> so the user know that there are methods available on that object
18:55:46 <artem> ah. ok. this is easy to mend
18:56:22 <artem> btw, give  "pgsql2sqlite"  a go -  It will change your perception of GIS forever :)
18:56:24 <springmeyer> yes, super easy - i figure just switching __repr__ to string like the Projection object.
18:56:31 <springmeyer> :) cool
18:56:49 <springmeyer> how do you build? $ bjam ?
18:56:57 <artem> yes
18:57:18 <artem> bjam release
18:57:29 <Berteun> I think a repr(c) that yields Coord(200.0,200.0) is valid behaviour.
18:57:44 <springmeyer> ah cool Berteun
18:57:45 <Berteun> The idea is that repr(c) gives something that can be passed to eval()
18:57:56 <Berteun> And, this should yield the same object.
18:58:10 <springmeyer> okay. makes sense
18:58:17 <Berteun> If that's not an option you can alternatively use <mapik.Coord ... >
18:58:43 <Berteun> But usually Python does that by itself..
18:58:59 <springmeyer> so Berteun: is __repr__ the fallback for printing an object in a python interpreter when __str__ is absent, perhaps?
18:59:31 <Berteun> I'm not quite sure about that, I would think so though.
19:00:21 <Berteun> str() can yield something that cannot be passed to eval, but is useful to humans to 'visualise' the object.
19:00:54 *** kunitoki has quit ("Lost terminal")
19:01:43 <Berteun> Yeah, the interpreter first tries str() and if that doesn't work repr()
19:02:14 <springmeyer> okay. ya good to know the actual reason behind repr
19:02:25 <springmeyer> so all I am getting at is that doing:
19:02:40 <springmeyer> >>> c
19:02:46 <springmeyer> Coord(200.0,200.0)
19:03:57 <springmeyer> seems to me like it would be more intuative to return <mapnik Coor...> since c.forward, .inverse exist. etc
19:04:41 <springmeyer> but no need to change that behavior if a the proper use of repr is being used here
19:04:48 <dukeku> does Coord() use (lat,lon) or (lon,lat)?
19:05:02 <springmeyer> lon,lat
19:05:31 <Berteun> springmeyer: But the same can be set of standard dicts.
19:05:39 <springmeyer> cmarqu: take a look at the tilelite fix just now
19:05:40 <dukeku> thanks
19:05:54 <Berteun> From {a:b, c:d} you cannot deduce it has items/values/keys, etc. methods
19:06:02 <springmeyer> Berteun: yes :)
19:06:30 <Berteun> You usually use help(...) if you want that information.
19:06:54 <springmeyer> okay, sounds good. i guess the difference here is that is makes sense to potentially eval a Coord
19:07:20 <cmarqu> springmeyer: I now see *changed which is cool, but it doesn't proint prj at all now, if you mean that :)
19:07:35 <springmeyer> vs. geodjango or shapely geometry objects (which is what i am thinking about here as returning the obj) don't need to get evaled
19:08:21 <springmeyer> cmarqu: right, I just switched the debug output to __only__ output class attribute the user should actually mess with
19:08:58 <springmeyer> cmarqu: do you see a reason a user would want to change the projection?
19:09:14 <dukeku> springmeyer: are you going to be around for most of today? ;)
19:09:21 <springmeyer> cmarqu: note the support for variable tile sizes was easy to add :)
19:09:34 <cmarqu> springmeyer: No, I was just stating what I saw
19:09:38 <cmarqu> springmeyer: Ah, nice.
19:09:41 <springmeyer> dukeku: ya
19:09:45 <springmeyer> ah, okay, thx!
19:10:03 <dukeku> springmeyer: coolios. i'm trying PointSymbolizer for the first time and i'm having a few issues
19:10:25 * springmeyer looks both ways ;)
19:10:54 <dukeku> i think i'm just plain Doing It Wrong
19:11:05 <springmeyer> artem: 'Unable to load Boost.Build: could not find "boost-build.jam"
19:11:08 <dukeku> i thought the data might not overlay like i thought it would...but they look beautiful in qgis
19:11:17 <springmeyer> quick way to install boost build?
19:11:29 <springmeyer> i guess it does not come with boost proper...
19:11:40 <springmeyer> dukeku: k
19:12:23 <cmarqu> springmeyer: in tilelite.cfg, the comment "buffer_size: 0 - 256" now should be "buffer_size: 0 - size" I guess?
19:12:31 * springmeyer downloads boost build 2.0
19:12:59 <springmeyer> cmarqu: :) yes yes
19:14:37 * springmeyer also add 'size' comment
19:16:02 <dukeku> do i _have_ to use an image for PointSymbolizer?
19:16:10 <cmarqu> Damn browser caching!
19:16:12 <dukeku> or can i just draw a damn box
19:16:24 *** rcoup (n=rcoup@ip-118-90-33-180.xdsl.xnet.co.nz) has joined #mapnik
19:16:33 <springmeyer> damn
19:16:46 <cmarqu> springmeyer: Don't swear!
19:16:52 <cmarqu> Without reason that is!
19:16:53 <springmeyer> ups
19:17:27 <cmarqu> dukeku: In the source, I read //default point symbol is black 4x4px square
19:17:34 <cmarqu> src/point_symbolizer.cpp
19:17:37 <dukeku> hrm
19:18:16 <dukeku> just using PointSymbolizer() isn't drawing anything for me
19:18:20 * springmeyer has a hunch that default is lost when using mapnik via python binding, but has yet to confirm
19:18:26 <dukeku> yeah :)
19:19:29 <dukeku> i tried to specify the filename as none, type as none
19:19:34 <dukeku> and then setting just the height/width
19:19:39 <dukeku> but that doesn't match signature etc
19:21:31 <cmarqu> springmeyer: The text describing the layers in openlayers.html should mention the tiles size each layers is for.
19:22:26 <springmeyer> cmarqu: registered at bitbucket?
19:22:45 <cmarqu> I knew that question would come!
19:22:47 <cmarqu> :)
19:22:52 <springmeyer> :) lol
19:23:52 <cmarqu> No, I'm not, and I don't particularly want to. I could collect such things as patches though.
19:24:12 <springmeyer> k. sounds fine :)
19:24:52 <cmarqu> With a tile size (and buffer) of 512, my text-cut-off-at-tile-boundary problem seem to be gone.
19:25:06 <springmeyer> nice!
19:25:56 <cmarqu> So I'd need a buffer > size for smaller sizes.
19:28:42 <dukeku> barrule.symbols.append(PointSymbolizer("black.png","png",16,16))
19:29:12 <dukeku> nothing's showing up in the layer that's using that pointsymbolizer
19:29:17 <dukeku> did i miss something completely obvious/
19:29:18 <dukeku> ?
19:29:36 <dukeku> oh god, hold on
19:30:53 <dukeku> ok, i *am* drawing the layer, nothing's happening anyways
19:31:01 <dukeku> http://dpaste.com/123729/
19:32:02 <springmeyer> dukeku: try at the end of your script...
19:32:16 <springmeyer> save_map(m,'test.xml')
19:32:38 <springmeyer> I find that is a helpful way of catching otherwise hard to notice problems
19:33:14 <dukeku> http://dpaste.com/123731/
19:33:40 <dukeku> style looks OK to me
19:34:16 *** adakkak has quit ("Ex-Chat")
19:35:38 <springmeyer> yup. me too
19:36:58 <springmeyer> have you tried using the absolute path to the symbol?
19:38:01 <dukeku> could it be that black.png is just 1x1 and they're showing up absolutely tiny? :)
19:38:10 <dukeku> i changed the size a bit and they're kind of reappearing and disappearing
19:38:51 <springmeyer> is black a symbol you are using? or is black this hidden default we were talking about?
19:39:03 <dukeku> symbol
19:39:07 <dukeku> just a 1x1 black png
19:39:15 <dukeku> i resized it to be 1000% bigger and now they're showing up
19:39:18 <dukeku> strange
19:39:23 <springmeyer> yes
19:39:32 <springmeyer> the size does not scale the image
19:39:38 <springmeyer> it must match it
19:40:04 <dukeku> makes sense
19:40:16 <springmeyer> #155
19:40:17 <nikq> Ticket #155: Extend PointSymbolizer to support image scaling, http://trac.mapnik.org/ticket/155
19:42:39 <dukeku> what filetypes are available?
19:42:45 <dukeku> for use with pointsymbolizer
19:43:07 <springmeyer> not sure, I've only tried png
19:43:11 <dukeku> ah
19:43:15 <dukeku> well, time to experiment :)
19:43:22 <dukeku> i'll give svg a shot
19:45:38 <dukeku> do you use cairo frequently?
19:46:13 <springmeyer> recreationally
19:47:01 <dukeku> any reasons why you'd favor raster rendering vs vector?
19:47:28 <springmeyer> for symbols or in general?
19:47:51 <dukeku> in general
19:48:41 <springmeyer> note: cairo can render to raster surfaces
19:49:01 <springmeyer> in general... vector file sizes of rendered maps are larger
19:49:27 <springmeyer> when scalable resolution is desired thats excellent
19:49:46 <springmeyer> but when small sizes and nice antialiasing are needed, raster is perfect
19:49:56 <springmeyer> that what you mean?
19:52:33 <dukeku> basically
19:59:38 <artem> springmeyer: get boost.build.v2 from http://prdownloads.sourceforge.net/boost/boost-build-2.0-m12.tar.bz2
19:59:49 <artem> then :
20:00:06 <artem> export BOOST_BUILD_PATH=/path/to/boost-build
20:00:16 <artem> and finally : bjam release
20:00:35 <artem> (you should also modify Jamfile to match you system )
20:01:46 <springmeyer> great, thx
20:06:44 <springmeyer> ...patience... :)
20:13:37 <artem> latest win32 with ICU  (shape,sqlite,postgis) : http://media.mapnik.org/mapnik_win32_py25-20090222.zip
20:18:56 <springmeyer> artem: cool
20:19:06 <springmeyer> artem: ideas on this? http://dpaste.com/123743/
20:19:41 <artem> yep
20:20:16 <artem> in Jamfile add :
20:20:30 <artem> <include>/path/to/icu
20:21:02 <artem> <include>/path/topostgresql/includes
20:21:32 <artem> there must be in some strange loc on your machine
20:21:41 <springmeyer> yup, I have the postgres includes in (not sure why that is not working)
20:21:51 <springmeyer> adding ICU fixed the unicode error - thx!
20:22:16 <artem> fine where you have :libpq-fe.h
20:22:25 <artem> find
20:23:04 <springmeyer> ack. was spelling it wrong ;) q vs g
20:23:23 <artem> yes I get this quit often
20:23:26 <artem> quite
20:23:36 <springmeyer> ...updated 1 target!
20:23:37 <artem> pgsql vs libpq :)
20:23:49 <springmeyer> exactly :)
20:24:55 <springmeyer> upps, almost...
20:25:04 <artem> ??
20:25:07 <springmeyer> ld: unknown option: -R
20:25:18 <springmeyer> collect2: ld returned 1 exit status
20:25:41 <artem> are you on mac by any chance ?
20:25:43 <springmeyer> probably need toolkit--macos or something perhaps
20:25:45 <springmeyer> yes
20:25:53 <artem> ok :)
20:26:02 <artem> bjam --toolset=darwin release
20:26:07 <springmeyer> ah ha
20:27:26 <springmeyer> ...updating 7 targets!
20:27:30 <springmeyer> works!
20:27:42 <springmeyer> ack
20:28:02 <springmeyer> tab complets pgsql2shp, grrr
20:28:24 <springmeyer> ah, there we go :)
20:28:32 <artem> if you run with -h you should get list of options
20:28:45 <springmeyer> got em - looking cool
20:29:03 *** sanjiv has quit ("ChatZilla 0.9.84 [Firefox 3.0.6/2009020911]")
20:29:04 <artem> i'll add some more soon
20:30:27 * springmeyer goes to find rtree http://dpaste.com/123749/
20:30:59 * springmeyer has never even installed sqlite on mac
20:31:11 <artem> it is very easy
20:31:12 <springmeyer> i figure it is finding the version that comes via the system
20:31:30 <artem> yep, that version hasn't got r*tree
20:32:34 <artem> wget -c http://www.sqlite.org/sqlite-amalgamation-3.6.11.tar.gz
20:32:36 <springmeyer> and looks like disabled by default in their own binary installers...
20:32:53 <artem> yep, just add :
20:33:22 <artem> -DSQLITE_ENABLE_RTREE=1
20:33:33 <artem> to DEFS in Makefile
20:33:52 * artem wonders if we should dist sqlite source 
20:34:03 <artem> (only 3 files :)
20:34:30 *** artem has quit ()
20:35:19 <nikq> Mapnik Trac: Changeset [951]: improved boundary behaviour (though still needs attention...) for  ... | http://trac.mapnik.org/changeset/951
20:39:27 *** artem (n=artem@i-83-67-142-225.freedom2surf.net) has joined #mapnik
20:41:02 <springmeyer> artem: hum, build sqlite with rtree support and then rebuild pgsql2sqlite, but seems my rtree is still not happy ?
20:41:03 <springmeyer> http://dpaste.com/123752/
20:41:54 <springmeyer> or its that lack of finding the geom column value perhaps
20:42:10 <artem> springmeyer :  hmm.. lets see
20:42:30 <artem> have you got : geometry_columns ?
20:42:37 <artem> in postgresql
20:42:54 <springmeyer> yes
20:43:46 <artem> and what do you get : "select * from geometry_columns where f_table_name='osm_bayarea_roads'; ?
20:44:17 <springmeyer> http://dpaste.com/123753
20:44:32 * springmeyer is checking if I have an entry in spatial_ref_sys for 9000913
20:44:36 <springmeyer> er 900913
20:45:04 <springmeyer> hum, i do
20:45:36 <artem> looks like you're facing a software bug
20:45:55 * artem checking ..
20:48:10 <nikq> Mapnik Trac: Ticket #244 (Support interleaved ShieldSymbolizers on a way) created | http://trac.mapnik.org/ticket/244
20:48:48 <springmeyer> artem: )
20:49:00 <springmeyer> I was leaving out the --dbname option
20:49:23 * springmeyer <-- idiot
20:49:59 <springmeyer> processed 10365 features
20:50:01 <springmeyer> Done!
20:50:27 <artem> to, try sqlite.input let me commit a small change ..
20:50:51 <springmeyer> http://dpaste.com/123754 < --- looks good other than the ?????
20:51:10 <artem> yep, debug printing should go away
20:51:34 <artem> it's sql for prepared statement
20:51:40 * springmeyer goes to rebuilt mapnik sqlite input since he'd got a new sqlite version
20:51:40 <springmeyer> k
20:51:50 <artem> wait a sec ..
20:52:02 <springmeyer> okay
20:52:02 <artem> I'll need to commit that change first
20:52:46 <artem> atm sqlite.input is using _non_ standard WKB. I think we should stick with OGC on this one
20:53:55 <nikq> Mapnik Trac: Changeset [952]: + use standard WKB by default | http://trac.mapnik.org/changeset/952
20:54:12 <artem> okey, it all should just work now - say good by to a shapefile :)
20:54:25 <springmeyer> !
20:54:33 <artem> goodbye
20:54:53 <springmeyer> so should I switch out the osm.xml for sqlite and test then?
20:55:07 <springmeyer> (assuming the SELECT queries will stay the same?)
20:56:25 <artem> sqlite needs some more work to handle complex sql (aka OSM) I'll be working on this next week
20:56:44 <springmeyer> okay, I can image :)
20:57:08 <springmeyer> imagine
20:58:01 <artem> but, yes, for SF bay area sqlite should rocks
20:58:05 <artem> rock
20:58:42 <artem> so far I created the whole europe *sqlite ~3.6GB
20:59:08 <CIA-23> mapnik: nickw * r951 /trunk/plugins/input/osm/ (demo/MapSource.cpp demo/MapSource.h osmparser.cpp): improved boundary behaviour (though still needs attention...) for easymapnik
20:59:09 <CIA-23> mapnik: artem * r952 /trunk/plugins/input/sqlite/sqlite_featureset.cpp: + use standard WKB by default
21:01:48 <springmeyer> ah, very cool
21:04:03 <springmeyer> ya, its actually all of washington state (I just keep my tables named osm_bayarea since I'm too lazy to adapt my cascadenik stylesheets)
21:04:05 <springmeyer> :)
21:04:30 <artem> lol, WA should be fine
21:04:45 <springmeyer> yup, looks tiny ~124 MB
21:05:06 <artem> usb key
21:05:12 <springmeyer> !
21:06:03 * springmeyer looks forward to writing that tutorial :)
21:06:38 <springmeyer> artem: what do you think about an optional flag to load_map() to tell mapnik to look for the path to a datasource relative to the XML file
21:06:49 <springmeyer> rather than relative to where you are running the script from?
21:07:26 <artem> would be nice
21:07:28 <springmeyer> seems like something like that could ease the distribution of xml styles alongside a datasource
21:07:39 <artem> exactly
21:08:04 * artem spent to much time replacing paths in osm.xml
21:08:30 <springmeyer> :)
21:08:56 <springmeyer> ya, relative paths, and relative_to the xml would be really slick for sqlite
21:09:10 <artem> +1
21:09:30 <springmeyer> :)
21:10:20 * springmeyer goes to log a ticket (since he knows nothing about boost filesystem) :)
21:10:40 <nikq> Mapnik Trac: Ticket #245 (Support reading of datasource paths relative to xml location) created | http://trac.mapnik.org/ticket/245
21:10:52 <artem> great, tnx
21:11:42 * springmeyer sees on the horizon a day when you load up a shapefile datasource...
21:12:06 <springmeyer> print 'Shapefiles are deprecated, please upgrade to the future'
21:12:25 <springmeyer> and then topology, and... ;)
21:13:06 * artem is not sure what is after topology ... 
21:13:30 <springmeyer> lol (me neither)
21:22:55 *** ChanServ has quit (shutting down)
21:24:25 <springmeyer> artem: is there a way to check for the availabilty of a plugin via the python bindings?
21:24:52 <artem> not sure. if not we should add this
21:25:53 <artem> file a ticket and I'll add something similar to FontEngine.face_names()
21:26:20 <springmeyer> ah excellent
21:28:45 <nikq> Mapnik Trac: Ticket #246 (python: add function to test for available plugins) created | http://trac.mapnik.org/ticket/246
21:29:05 <nikq> Mapnik Trac: Ticket #246 (python: add function to test for available plugins) updated | http://trac.mapnik.org/ticket/246#comment:1
21:29:53 *** ChanServ (ChanServ@services.) has joined #mapnik
21:33:55 <springmeyer> awesome: just got an osm render from the converted sqlite db
21:36:17 <springmeyer> artem: fyi: these are the few errors i get with the pasted xml: http://dpaste.com/123766/
21:36:41 <nikq> Mapnik Trac: Changeset [953]: + change (table,t) option to specify output table   + add support for SQL  ... | http://trac.mapnik.org/changeset/953
21:37:25 <springmeyer> cool that it renders despite seemingly not finding rtree (line 17)
21:38:03 <artem> yep, it needs some work (sqlite.input)
21:43:54 <artem> ok, pgsql2sqlite can now accept "select .." sql e.g :
21:43:58 <artem> ./bin/darwin-4.0.1/debug/pgsql2sqlite -d osm -q "select world_adm0.the_geom  from world_adm0 , germany_poly where world_adm0.the_geom && germany_poly.the_geom"  -f /tmp/test.sqlite -t germany
21:46:49 <artem> or even better :
21:47:33 <artem> pgsql2sqlite -d osm -q "select world_adm0.the_geom  from world_adm0,germany_poly where intersects(world_adm0.the_geom,germany_poly.the_geom) and world_adm0.the_geom && germany_poly.the_geom" -f /tmp/test.sqlite -t germany
21:48:35 <dukeku> is there some mass migration from postsql to sqlite?
21:49:06 <artem> dukeku: lol
21:49:22 <dukeku> obviously i'm missing something again :)
21:49:38 <artem> dukeku : csv2shp -> shp2pgsql -> pgsql2sqite
21:50:07 <dukeku> has osm always been based around sqlite? i've never looked at it in that much detail
21:50:29 <artem> dukeku : nope, not at all
21:50:35 <crschmidt> dukeku: OSM, when you're working with 'the whole world', will never use sqlite
21:50:47 <crschmidt> dukeku: but for setting up little rendering databases, sqlite is more easy to get setup
21:50:51 <dukeku> ah.
21:50:53 <crschmidt> rather than installing postgis everywhere
21:51:13 <crschmidt> and sqlite geodatabases are becoming somewhat well supported by other tools (like GDAL/OGR< MapGuide, etc.) as well
21:51:24 <dukeku> sqlite is nifty, but it's slow as all hell sometimes
21:51:50 <crschmidt> Which is why you wouldn't use it for the dozens-of-gigabytes OSM databases
21:52:00 <dukeku> understandable :)
21:52:03 <crschmidt> but you could easily use it to allow rendering of a pre-convertd town on a dozen laptops without installing postgis
21:52:25 <dukeku> artem: are you using the c-based csv2shp or some mangled other thing?
21:53:05 <artem> dukeku : no, I'm not using csv2shp at all - sorry, I'm a bit verbose tonight
21:53:10 <dukeku> hehe
21:53:39 <dukeku> i used it yesterday before realizing postgis had the capability to create geom from points
21:54:02 <artem> dukeku : starting from 3.6.x sqliite3 has support for R*Tree index which makes it very very fast
21:54:39 <dukeku> is it a hilbert r-tree?
21:55:17 <dukeku> ah, r*tree is its own variant
21:56:01 <artem> I think hilbert space partitioning is a bit different
21:56:07 <dukeku> it is
21:58:24 <CIA-23> mapnik: artem * r953 /trunk/utils/pgsql2sqlite/ (main.cpp pgsql2sqlite.hpp):
21:58:24 <CIA-23> mapnik: + change (table,t) option to specify output table
21:58:24 <CIA-23> mapnik: + add support for SQL select statement (query,q)
21:58:24 <CIA-23> mapnik: + if output table is not specified, use table name extracted from input query
22:02:15 <springmeyer> ah, artem: looks like my sqlite.input is still linked against the system sqlite without rtree:
22:02:15 <springmeyer> http://dpaste.com/123770/
22:03:07 <artem> well, we need something like SQLITE_INCLUDES/LIBS to control this
22:04:30 <artem> i'm thinking about including sqlite source as most ditros won't have rtree enabled . what do you think ?
22:04:40 <artem> distros
22:05:03 <springmeyer> we do have the Scons paths... http://trac.mapnik.org/browser/trunk/SConstruct#L176
22:05:14 <artem> ha
22:05:24 <springmeyer> but my sense is that SCons does not allow you to control linking very well
22:06:16 <springmeyer> if the system sqlite is in /usr/lib then it will be found there even if you point SQLITE_INC/LIBS somewhere else because that path will be in the env['LIBS'] from some other lib
22:06:28 <artem> so, you're saying that despite specifying SQLITE_LIBS=/my/custom/.. it links agains /usr/lib ?
22:06:51 <springmeyer> yes. that is my hunch
22:06:59 * springmeyer will confirm that now...
22:07:19 <artem> try rm .scons* trick
22:08:26 * artem can't wait when boost.build will be re-written in Python and everyone will be happy again
22:08:32 <springmeyer> k. rebuilding
22:10:00 <artem> springmeyer : http://zigzag.lvk.cs.msu.su/boost.build/milestone/M15%20-%20Python%20port
22:10:35 <artem> i meant : http://zigzag.lvk.cs.msu.su/boost.build/wiki/PythonPort
22:17:36 <artem> springmeyer : I have sqlite3.6.10 compiled from source in /usr/local and everything seem to work (on 10.5.6)
22:18:40 <artem> I think : export DYLD_LIBRARY_PATH=/path/to/sqlite/lib will help
22:19:17 * springmeyer returns
22:19:27 <springmeyer> ah boost build in python - facinating
22:19:40 <springmeyer> k, yes for me still links against system
22:19:49 <springmeyer> trying a scons -c and rebuild now
22:19:59 <artem> only couple milestones away :)
22:34:40 <nikq> Mapnik Trac: Changeset [954]: + remove -simplify,s option as it can be specified in input query e.g     ... | http://trac.mapnik.org/changeset/954
22:36:53 <nikq> Mapnik Trac: Changeset [955]: + small cleanup | http://trac.mapnik.org/changeset/955
22:40:25 <springmeyer> ugh, scons still links against system sqlite after cleaning and exporting DYLD_LIBRAYR_PATH=/usr/local/lib
22:40:27 <springmeyer> http://dpaste.com/123776/
22:41:13 <springmeyer> i figure it must be happening because /usr/lib is listed first in the g++ flags
22:41:16 <springmeyer> '-L/usr/lib -L/usr/local/lib'
22:41:40 <springmeyer> and the symlinks for sqlite 3 are the same in both /usr/lib and /usr/local/lib
22:42:18 <artem> good call.
22:42:42 * springmeyer has no formal instruction in linking however :)
22:44:11 <artem> springmeyer : that long line with -Lagg etc looks worrying
22:44:36 <springmeyer> yes. i agree
22:44:40 <artem> we shouldn't link to all those libraries
22:45:01 <artem> I though there was some logic to remove them ..
22:45:11 <springmeyer> i think it is happening because of our use of Scons with darwin
22:45:25 <springmeyer> http://trac.mapnik.org/browser/trunk/plugins/input/sqlite/SConscript#L35
22:45:43 <springmeyer> for my my icu libs point to /usr/lib
22:45:50 <springmeyer> since I have not changed the defaults
22:45:57 <artem> ok, I see why we need icu
22:46:00 <springmeyer> and those get appended there
22:46:22 <artem> yep hmm..
22:46:51 <springmeyer> why do we ICU libs only on darwin?
22:47:18 <artem> my ICU is in /usr/local and it works but this is not good
22:47:49 <artem> darwin has different linker from linux
22:49:04 <artem> it needs to see symbols at linking time
22:49:27 <springmeyer> okay
22:50:06 <artem> darwing doesn't trust you as a developer! linux does :)
22:50:16 <springmeyer> :)
22:50:52 <springmeyer> hum, now after pointing ICU_INCLUDES/LIBs at opt/local/ where they actually are I still get -L/usr/lib attached to that linker line
22:51:57 <artem> I have :
22:53:14 <artem> http://dpaste.com/123781/
22:57:24 <springmeyer> okay, looks pretty much the same there
22:58:05 <springmeyer> I have the default SCons PathVariables for boost, tiff, png, and jpeg all pointing to /usr/lib and it seems that although they don't even exist there
22:58:38 <springmeyer> because they are found by CheckLibWithHeader due to other libs putting the right paths in scope
22:58:59 <springmeyer> I never had/have to set those paths manually
22:59:35 <CIA-23> mapnik: artem * r954 /trunk/utils/pgsql2sqlite/ (main.cpp pgsql2sqlite.hpp):
22:59:35 <CIA-23> mapnik: + remove -simplify,s option as it can be specified in input query e.g
22:59:35 <CIA-23> mapnik:  "select simplify(the_geom,300) as the_geom from world"
22:59:35 <CIA-23> mapnik: + fixed table_from_sql to handle multiple table_names
22:59:35 <CIA-23> mapnik: artem * r955 /trunk/utils/pgsql2sqlite/main.cpp: + small cleanup
23:00:21 <artem> here is my link : http://dpaste.com/123783/
23:00:22 <springmeyer> I've now set them all to /opt/local/lib and this prompted Scons to rebuilt everthing and I can see that '/usr/lib' is not in any of the g++ linker lines....
23:01:09 <artem> fingers crossed
23:04:05 <springmeyer> yup, that did it
23:04:14 <springmeyer> http://dpaste.com/123785/
23:05:10 <artem> ok, great! so having all these default paths /usr/lib is not a good idea
23:06:13 *** weizhuo (n=chatzill@nat/yahoo/x-1c491bd5c2274ce5) has joined #mapnik
23:07:27 <springmeyer> whoops, I meant env['LIBPATH'] not env['LIBS']...
23:07:43 <springmeyer> yes artem perhaps...
23:08:01 <springmeyer> sure makes it hard to get your self installed version
23:10:10 <springmeyer> maybe we need to at least only permanently add a path to env['LIBPATH'] right after CheckLibWithHeader succeeds
23:23:07 <artem> back
23:24:24 <artem> ok, makes sense.
23:25:26 <springmeyer> these guys have a slick way of cloning the environment, adding a path for a given lib, checking a test program, and then restoring the environment from a backup if it fails...
23:25:28 <springmeyer> http://svn.gna.org/svn/wesnoth/trunk/scons/python_devel.py
23:25:55 <springmeyer> but while I think refactoring scons like this could be an improvement
23:26:06 <springmeyer> in this case I feel like we're a bit doomed
23:26:34 <springmeyer> since we are also using pkgconfig parsing and for me this will add paths like '/usr/lib' automatically which any control
23:28:25 <springmeyer> for example, on mac osx...
23:28:26 <springmeyer> $ /usr/bin/xml2-config --libs --cflags
23:28:26 <springmeyer> -L/usr/lib -lxml2 -lz -lpthread -licucore -lm
23:28:26 <springmeyer> -I/usr/include/libxml2
23:31:06 <springmeyer> anway artem: thanks for your help in understanding this stuff, and good news is that I get no more 'can't find rtree errors' :)
23:34:46 <artem> no probs, glad it works for you after all :)
23:35:12 <artem> interesting to see libxml2 linked to ICU on mac osx
23:35:38 <artem> i mean not to iconv
23:35:58 * artem is thinking about libxml2 on win33
23:36:02 <artem> win32 :)
23:36:08 <springmeyer> :)
23:47:15 <artem> ok, see you later
23:47:18 *** artem has quit ()