openstreetmap / mod_tile Goto Github PK
View Code? Open in Web Editor NEWRenders map tiles with mapnik and serves them using apache
Home Page: http://wiki.openstreetmap.org/wiki/Mod_tile
License: GNU General Public License v2.0
Renders map tiles with mapnik and serves them using apache
Home Page: http://wiki.openstreetmap.org/wiki/Mod_tile
License: GNU General Public License v2.0
I get six error: dereferencing pointer to incomplete type
for lines 106, 113, 115, 156, 158, 159
the source was missing an include for metatile.h but has been subsequently updated with more functionality by the author prior to me figuring this out and the include is now in there so this is no longer an issue.
i tried to build the mod_tile as in the http://switch2osm.org/serving-tiles/manually-building-a-tile-server-14-04/
when i run make
the following error is coming
Making all in iniparser3.0b
make[1]: Entering directory /root/src/mod_tile/iniparser3.0b' make[1]: Nothing to be done for
all'.
make[1]: Leaving directory /root/src/mod_tile/iniparser3.0b' make[1]: Entering directory
/root/src/mod_tile'
depbase=echo src/gen_tile.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
g++ -DHAVE_CONFIG_H -I. -I./includes -I/usr/include/freetype2 -I/usr/local/inc lude -I/usr/local/include/mapnik/agg -I/opt/PostgreSQL/9.3/include -I/usr/includ e -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/in clude/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/incl ude/libdrm -I/usr/include/libpng12 -I/usr/include -I/usr/include/cairo -I/usr/i nclude/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/inc lude/freetype2 -I/usr/include/libdrm -I/usr/include/libpng12 -DSYSTEM_LIBINIPA RSER=0 -I/usr/local/include -I/usr/local/include/mapnik/agg -I/opt/PostgreSQL/ 9.3/include -I/usr/include -I/usr/include/freetype2 -I/usr/include/libxml2 -I/us r/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/inc lude/pixman-1 -I/usr/include/libdrm -I/usr/include/libpng12 -DSHAPE_MEMORY_MAPPE D_FILE -DBIGINT -DBOOST_REGEX_HAS_ICU -DHAVE_JPEG -DMAPNIK_USE_PROJ4 -DHAVE_PNG -DHAVE_TIFF -DLINUX -DMAPNIK_THREADSAFE -DBOOST_SPIRIT_NO_PREDEFINED_TERMINALS=1 -DBOOST_PHOENIX_NO_PREDEFINED_TERMINALS=1 -DBOOST_SPIRIT_USE_PHOENIX_V3=1 -DNDE BUG -DHAVE_CAIRO -DGRID_RENDERER -DHAVE_LIBXML2 -std=c++11 -Wall -Wsign-compare -pthread -ftemplate-depth-300 -Wno-pragmas -O3 -MT src/gen_tile.o -MD -MP -MF $d epbase.Tpo -c -o src/gen_tile.o src/gen_tile.cpp &&
mv -f $depbase.Tpo $depbase.Po
src/gen_tile.cpp: In function ‘void parameterize_map_max_connections(mapnik::Map &, int)’:
src/gen_tile.cpp:180:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (i = 0; i < m.layer_count(); i++) {
^
src/gen_tile.cpp:181:22: error: ‘class mapnik::Map’ has no member named ‘getLaye r’
layer& l = m.getLayer(i);
^
src/gen_tile.cpp:182:43: error: invalid use of incomplete type ‘class mapnik::da tasource’
parameters params = l.datasource()->params();
^
In file included from src/gen_tile.cpp:1:0:
/usr/local/include/mapnik/layer.hpp:37:7: error: forward declaration of ‘class m apnik::datasource’
class datasource;
^
src/gen_tile.cpp:188:9: error: ‘shared_ptr’ is not a member of ‘boost’
boost::shared_ptr ds = datasource_cache::instance().create( params);
^
src/gen_tile.cpp:188:9: note: suggested alternative:
In file included from /usr/include/c++/4.8/bits/shared_ptr.h:52:0,
from /usr/include/c++/4.8/memory:82,
from /usr/local/include/mapnik/layer.hpp:32,
from src/gen_tile.cpp:1:
/usr/include/c++/4.8/bits/shared_ptr_base.h:261:11: note: ‘std::shared_ptr’
class shared_ptr;
^
src/gen_tile.cpp:188:37: error: expected primary-expression before ‘>’ token
boost::shared_ptr ds = datasource_cache::instance().create( params);
^
src/gen_tile.cpp:188:39: error: ‘ds’ was not declared in this scope
boost::shared_ptr ds = datasource_cache::instance().create( params);
^
src/gen_tile.cpp: In function ‘protoCmd render(xmlmapconfig_, int, int, int, cha r_, metaTile&)’:
src/gen_tile.cpp:259:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (yy = 0; yy < render_size_ty; yy++) {
^
src/gen_tile.cpp:260:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (xx = 0; xx < render_size_tx; xx++) {
^
make[1]: *** [src/gen_tile.o] Error 1
make[1]: Leaving directory `/root/src/mod_tile'
make: *** [all-recursive] Error 1
hi,
i'm compiling mod_tile under CentOS 6.
mapnik has been installed under /opt/osm.
$ locate mapnik-config
/opt/osm/bin/mapnik-config
./configure --with-boost=/opt/boost/ --with-libmapnik=/opt/osm/bin/mapnik-config
[..]
checking for mapnik-config... /opt/osm/bin/mapnik-config
checking for mapnik libraries... yes
yet it fails to compile. any idea? here's the output: http://pastebin.com/raw.php?i=fwtvAbBh
Running cat foo | render_list -s /var/run/renderd/renderd.sock -n 8 -m default -f
I get errors
Starting 8 rendering threads
Meta tiles rendered: Rendered 10 tiles in 0.00 seconds (11074.20 tiles/s)
Total tiles rendered: Rendered 640 tiles in 0.00 seconds (708748.62 tiles/s)
Total tiles handled from input: Rendered 10 tiles in 0.00 seconds (11074.20 tiles/s)
rendering failed, pausing
Meta tiles rendered: Rendered 20 tiles in 0.00 seconds (14836.79 tiles/s)
Total tiles rendered: Rendered 1280 tiles in 0.00 seconds (949554.88 tiles/s)
Total tiles handled from input: Rendered 20 tiles in 0.00 seconds (14836.79 tiles/s)
Meta tiles rendered: Rendered 30 tiles in 0.00 seconds (20876.83 tiles/s)
Total tiles rendered: Rendered 1920 tiles in 0.00 seconds (1336116.88 tiles/s)
Total tiles handled from input: Rendered 30 tiles in 0.00 seconds (20876.83 tiles/s)
Meta tiles rendered: Rendered 40 tiles in 0.00 seconds (26472.54 tiles/s)
Total tiles rendered: Rendered 2560 tiles in 0.00 seconds (1694242.25 tiles/s)
Total tiles handled from input: Rendered 40 tiles in 0.00 seconds (26472.54 tiles/s)
rendering failed, pausing
rendering failed, pausing
rendering failed, pausing
rendering failed, pausing
rendering failed, pausing
rendering failed, pausing
rendering failed, pausing
I ran renderd in foreground mode and got this
renderd[1845]: DEBUG: Got incoming connection, fd 8, number 1
renderd[1845]: DEBUG: Got incoming connection, fd 10, number 2
renderd[1845]: DEBUG: Got incoming connection, fd 11, number 3
renderd[1845]: DEBUG: Got incoming connection, fd 12, number 4
renderd[1845]: DEBUG: Got incoming connection, fd 13, number 5
renderd[1845]: DEBUG: Got incoming connection, fd 14, number 6
renderd[1845]: DEBUG: Got incoming request with protocol version 2
renderd[1845]: Recv Error on fd 10 (Success). Read 65 bytes
renderd[1845]: DEBUG: Got incoming connection, fd 15, number 7
renderd[1845]: DEBUG: Got incoming request with protocol version 0
renderd[1845]: DEBUG: Got command Ignore fd(10) xml(), z(0), x(0), y(0)
renderd[1845]: WARNING: Ignoring unknown command Ignore fd(10) xml(), z(0), x(0), y(0)
renderd[1845]: DEBUG: Sending NotDone response(4)
renderd[1845]: DEBUG: Got incoming request with protocol version 2
renderd[1845]: Recv Error on fd 11 (Success). Read 65 bytes
renderd[1845]: DEBUG: Got incoming connection, fd 16, number 8
renderd[1845]: DEBUG: Got incoming request with protocol version 2
renderd[1845]: Recv Error on fd 8 (Success). Read 65 bytes
renderd[1845]: DEBUG: Got incoming request with protocol version 0
renderd[1845]: DEBUG: Got command Ignore fd(8) xml(), z(0), x(0), y(0)
renderd[1845]: WARNING: Ignoring unknown command Ignore fd(8) xml(), z(0), x(0), y(0)
renderd[1845]: DEBUG: Sending NotDone response(4)
renderd[1845]: DEBUG: Got incoming request with protocol version 0
I did a git bisect and this is the commit where it was introduced
pnorman@osm2pgsqlbench:~/osm/mod_tile$ git bisect bad
fdc317a8f36f001d3eb2a864eb7cff55f11fdeb7 is the first bad commit
commit fdc317a8f36f001d3eb2a864eb7cff55f11fdeb7
Author: Kai Krueger <[email protected]>
Date: Sun Oct 13 23:22:08 2013 -0600
Update mod_tile to renderd protocol to version 3.
Include an "options" string and a "mimetype" string.
:040000 040000 a0551beb9f9874fc84e2ae21078f98bf19130265 3e75c961b2ebcfceb9f8a9307ec964d83b46ad6a M includes
:040000 040000 a1934c59e0d8e1885e4a16b8e318a8a6cb35cedc 67035c4dbbab00909fccbaa8ccd921988f20c60d M src
If something (AddTileConfig
/LoadTileConfig
) tries to add a tile config before the ServerName
directive is seen (normal on Ubuntu where module config files are loaded before it is set) then you get this warning:
08:08:35 2013] [warn] Could not determine host name of server to configure tile-json request. Using localhost instead
I'm trying to compile mod_tile for Mapnik 3.x, but compiling fails. I guess it has to do with the change to C++11, but I don't know enough about it to fix the problem myself.
Error Log: https://gist.github.com/plepe/7632178
Rendering meta tiles with mod_tile/renderd always made my hillshade look ugly. This results in the 8 bit PNGs, which Mapnik doesn't rasterize nicely. The difference can be seen here:
8-bit:
32-bit:
Only two lines have to be changed in src/gen_tile.c:
Substitute both "png256" with "png"
There are two possible ways:
I want to go into developing of mod-tile and renderd but can't find any developer documentation. Is there any and if so where to find it?
Example script (basic but fully functional) provided.
/etc/init.d/renderd
#!/bin/bash
#
# renderd Startup script for renderd
#
# chkconfig: - 63 50
# description: Mapnik rendering daemon
# processname: renderd
# config: /usr/local/etc/renderd.conf
# pidfile: /var/run/renderd/renderd.pid
#
### END INIT INFO
# Source function library.
. /etc/init.d/functions
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Mapnik rendering daemon"
NAME=renderd
DAEMON=/usr/local/bin/$NAME
DAEMON_ARGS="-c /usr/local/etc/renderd.conf"
lockfile=${LOCKFILE-/var/lock/subsys/$NAME}
pidfile=/var/run/$NAME/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
RUNASUSER=geo
STOP_TIMEOUT=${STOP_TIMEOUT-10}
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
#. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
#
# Function that starts the daemon/service
#
start() {
echo -n $"Starting $DESC" "$NAME: "
mkdir -p /var/run/renderd
chown $RUNASUSER /var/run/renderd
# Return
# 0 if daemon has been started
daemon --pidfile=$pidfile --user $RUNASUSER $DAEMON $DAEMON_ARGS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
#
# Function that stops the daemon/service
#
stop() {
echo -n $"Stopping $DESC" "$NAME: "
killproc -p ${pidfile} -d ${STOP_TIMEOUT} $NAME
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
stop
start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
:
Off of a clean install I got the error
An error occurred while loading the map layer 'default': Could not create datasource. No plugin found for type 'shape' (searched in: /usr/lib/mapnik/2.1/input
I traced this to an incorrect plugins_dir
in renderd.conf and set plugins_dir=/usr/lib/mapnik/input
but this should be set by default.
#2 (comment) suggests mapnik-config --input-plugins
but a minimal install doesn't have mapnik-config
which is part of libmapnik2-dev
I've got SQL error during pre-rendering process, because AsBinary and SetSRID functions has been renamed to ST_AsBinary and ST_SetSRID.
The render_list default socket is reported as /tmp/osm-renderd
but the default location in the renderd config file installed by packages is /var/run/renderd/renderd.sock
. These should agree.
When configuring a tile server with ModTileEnableTileThrottlingXForward=1, I didn't get any answer when using X-Forwarded-for, but the same request without this header worked correctly. As soon as I changed the server configuration to ModTileEnableTileThrottlingXForward=0, the request worked correctly.
$ curl -v -H "Via: 1.1 guenievre (squid/3.3.8)" -H "Cache-Control: max-age=259200" -H "Connection: keep-alive" -A "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 Iceweasel/29.0.1" -e "http://tile.openstreetmap.fr/" -H "DNT: 1" -H "Accept: image/png,image/*;q=0.8,*/*;q=0.5" -H "Accept-Language: fr-fr,chrome://global/locale/intl.properties;q=0.5" -H "Accept-Encoding: gzip, deflate" -H "X-Forwarded-For: 10.1.2.22" http://a.tile.openstreetmap.fr/osmfr/6/32/25.png >/dev/null
* Hostname was NOT found in DNS cache
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 2a01:e0d:1:c:58bf:fac1:0:13...
* Connected to a.tile.openstreetmap.fr (2a01:e0d:1:c:58bf:fac1:0:13) port 80 (#0)
> GET /osmfr/6/32/25.png HTTP/1.1
> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 Iceweasel/29.0.1
> Host: a.tile.openstreetmap.fr
> Referer: http://tile.openstreetmap.fr/
> Via: 1.1 guenievre (squid/3.3.8)
> Cache-Control: max-age=259200
> Connection: keep-alive
> DNT: 1
> Accept: image/png,image/*;q=0.8,*/*;q=0.5
> Accept-Language: fr-fr,chrome://global/locale/intl.properties;q=0.5
> Accept-Encoding: gzip, deflate
> X-Forwarded-For: 10.1.2.22
>
* Empty reply from server
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Connection #0 to host a.tile.openstreetmap.fr left intact
curl: (52) Empty reply from server
Although store_file.c
looks at both per-style timestamp files and a global one, render_old.c
only looks at the global one...
I have a fairly standard Ubuntu 14.04 based map server, set up as per http://wiki.openstreetmap.org/wiki/User:SomeoneElse/Ubuntu_1404_tileserver .
I installed it on 26th April, and everything worked as expected. On 2nd June I updated mod_tile from github and started seeing "Failed to read cmd on fd" errors in syslog:
Jun 9 12:20:52 ubuntuvm38 renderd[21354]: DEBUG: Got incoming request with protocol version 2
Jun 9 12:20:52 ubuntuvm38 renderd[21354]: DEBUG: Got command RenderPrio fd(14) xml(default), z(18), x(130734), y(85209), mime(image/png), options()
Jun 9 12:20:55 ubuntuvm38 renderd[21354]: DEBUG: DONE TILE default 18 130728-130735 85208-85215 in 2.407 seconds
Jun 9 12:20:55 ubuntuvm38 renderd[21354]: DEBUG: Sending render cmd(3 default 18/130735/85209) with protocol version 2 to fd 8
Jun 9 12:20:55 ubuntuvm38 renderd[21354]: DEBUG: Failed to read cmd on fd 8
Jun 9 12:20:55 ubuntuvm38 renderd[21354]: DEBUG: Connection 0, fd 8 closed, now 5 left
This doesn't stop it working (all tiles are still being rendered as expected) but it does seem odd. Other server updates between 26th April and 2nd June include Ubuntu apt-get updates, a database reload from a new PBF file, but no changes to osm2pgsql style or (presumably) database columns etc.
http://forum.openstreetmap.org/viewtopic.php?id=25587
(from May 23rd) looks like it might be a similar issue.
Where should I put planet-import-complete file when I use memcached storage for tiles?
Fetching tiles at /buildingclip does not work with this renderd.conf
[renderd]
stats_file=/var/run/renderd/renderd.stats
socketname=/var/run/renderd/renderd.sock
num_threads=4
tile_dir=/var/lib/mod_tile
[mapnik]
plugins_dir=/usr/lib/mapnik/input
font_dir=/usr/share/fonts/truetype/
font_dir_recurse=true
[default]
URI=/osm/
XML=/home/ubuntu/mapnik-stylesheets/osm.xml
[carto]
URI=/carto/
XML=/home/ubuntu/openstreetmap-carto/osm-carto.xml
[noamenity]
XML=/home/ubuntu/openstreetmap-carto/noamenity.xml
[nolandcover]
XML=/home/ubuntu/openstreetmap-carto/nolandcover.xml
[roadbbox]
XML=/home/ubuntu/openstreetmap-carto/roadbbox.xml
[z14road]
XML=/home/ubuntu/openstreetmap-carto/z14_road.xml
[buildingclip]
URI=/buildingclip/
XML=/home/ubuntu/openstreetmap-carto/building_clip.xml
But it does work with this second renderd.conf
[renderd]
stats_file=/var/run/renderd/renderd.stats
socketname=/var/run/renderd/renderd.sock
num_threads=4
tile_dir=/var/lib/mod_tile
[mapnik]
plugins_dir=/usr/lib/mapnik/input
font_dir=/usr/share/fonts/truetype/
font_dir_recurse=true
[default]
URI=/osm/
XML=/home/ubuntu/mapnik-stylesheets/osm.xml
[carto]
URI=/carto/
XML=/home/ubuntu/openstreetmap-carto/osm-carto.xml
[buildingclip]
URI=/buildingclip/
XML=/home/ubuntu/openstreetmap-carto/building_clip.xml
[noamenity]
XML=/home/ubuntu/openstreetmap-carto/noamenity.xml
[nolandcover]
XML=/home/ubuntu/openstreetmap-carto/nolandcover.xml
[roadbbox]
XML=/home/ubuntu/openstreetmap-carto/roadbbox.xml
[z14road]
XML=/home/ubuntu/openstreetmap-carto/z14_road.xml
The only difference is that the buildingclip style has been moved up. Perhaps the styles with no URI parameter are screwing up the config parsing?
Both config files result in a line with [notice] Loading tile config buildingclip at /buildingclip/ for zooms 0 - 18 from tile directory /var/lib/mod_tile with extension .png and mime type image/png
Adding AddTileConfig /buildingclip/ buildingclip
to the apache config for the first renderd.conf causes it to work.
Hi!
I want to use srs="+init=epsg:3395" in my Mapnik rendering toolchain. How to add this projection in renderd?
Since iniparser "is a is a free stand-alone ini file parsing library" (according to http://ndevilla.free.fr/iniparser/) it should b removed from mod_tile and mentioned as a dependency instead.
Currently mod_tile and renderd don't have a regression test suit. It is therefore unfortunately too easy to break something without noticing.
To try and continue to improve the quality of the software, it would be good to have a unit / functional / integration test suit.
This issue can be used to discuss the initial creation of such a test suit and how best to go about it.
Hi!
I've read here gravitystorm/openstreetmap-carto#20 (comment) by @apmon :
The command to render was
"./render_list --all -f -m carto -s ~/tiles/rednderd.sock --min-lon 8.1 --max-lon 8.6 --min-lat 48.9 --max-lat 49.2 -z 14 -n 4"
But this option is missing in the current code. Strange… But anyway, good to have this feature.
Hi there,
I am currently trying to setup a tile server and have Ubunto 10.04 on my hosted machine. Following the tutorial: http://switch2osm.org/serving-tiles/manually-building-a-tile-server/ I come to a point where I have to install mod_tile. That leads to the following result:
guido@myserver:~/src/mod_tile$ sudo make install-mod_tile
mkdir -p apxs2 -q LIBEXECDIR
apxs2 -S LIBEXECDIR=apxs2 -q LIBEXECDIR
-c -i -I./includes -lcurl -lcairo ./src/mod_tile.c ./src/sys_utils.c ./src/store.c ./src/store_file.c ./src/store _file_utils.c ./src/store_memcached.c ./src/store_rados.c ./src/store_ro_http_proxy.c ./src/store_ro_composite.c ./src/store_null.c
/usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static x86_64-linux-gnu-gcc -prefer-pic -DLINUX=2 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REEN TRANT -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I ./includes -c -o ./src/mod_tile.lo ./src/mod_tile.c && touch ./src/mod_tile.slo
./src/mod_tile.c: In function 'socket_init':
./src/mod_tile.c:142: warning: pointer type mismatch in conditional expression
./src/mod_tile.c: In function 'delay_allowed':
./src/mod_tile.c:712: warning: passing argument 1 of 'apr_strtok' discards qualifiers from pointer target type
/usr/include/apr-1.0/apr_strings.h:229: note: expected 'char ' but argument is of type 'const char *'
/usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static x86_64-linux-gnu-gcc -prefer-pic -DLINUX=2 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REEN TRANT -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I ./includes -c -o ./src/sys_utils.lo ./src/sys_utils.c && touch ./src/sys_utils.slo
/usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static x86_64-linux-gnu-gcc -prefer-pic -DLINUX=2 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REEN TRANT -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I ./includes -c -o ./src/store.lo ./src/store.c && touch ./src/store.slo
/usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static x86_64-linux-gnu-gcc -prefer-pic -DLINUX=2 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REEN TRANT -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I ./includes -c -o ./src/store_file.lo ./src/store_file.c && touch ./src/store_file.slo
/usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static x86_64-linux-gnu-gcc -prefer-pic -DLINUX=2 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REEN TRANT -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I ./includes -c -o ./src/store_file_utils.lo ./src/store_file_utils.c && touch ./src/store_file_utils.slo
/usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static x86_64-linux-gnu-gcc -prefer-pic -DLINUX=2 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REEN TRANT -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I ./includes -c -o ./src/store_memcached.lo ./src/store_memcached.c && touch ./src/store_memcached.slo
./src/store_memcached.c: In function 'init_storage_memcached':
./src/store_memcached.c:233: error: 'STORE_LOGLVL_ERR' undeclared (first use in this function)
./src/store_memcached.c:233: error: (Each undeclared identifier is reported only once
./src/store_memcached.c:233: error: for each function it appears in.)
apxs:Error: Command failed with rc=65536
.
make: ** [install-mod_tile] Error 1
I cant tell if its really a mod_tile issue or not, but I am stuck here :(
Any help would be much appreciated!
Guido
Since 91a2e1d there's a bug compiling mod_tile:
libtool: link: g++ -g -O2 -o gen_tile_test gen_tile_test.o metatile.o gen_tile_test-request_queue.o gen_tile_test-daemon.o gen_tile_test-daemon_compat.o gen_tile.o gen_tile_test-sys_utils.o gen_tile_test-cache_expire.o gen_tile_test-store.o gen_tile_test-store_file.o gen_tile_test-store_file_utils.o gen_tile_test-store_memcached.o gen_tile_test-store_rados.o gen_tile_test-store_ro_http_proxy.o gen_tile_test-store_ro_composite.o gen_tile_test-store_null.o -L/usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/libfreetype.so -lz -L/usr/local/lib -lmapnik -L/usr/lib -Liniparser3.0b/.libs /usr/local/lib/libiniparser.so -lm
gen_tile_test.o: In function `addition_thread(void*)':
/home/skunk/code/mod_tile/gen_tile_test.cpp:84: undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
make[2]: *** [gen_tile_test] Error 1
make[2]: Leaving directory `/home/skunk/code/mod_tile'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/skunk/code/mod_tile'
make: *** [all] Error 2
The man-page for clock_gettime states, that linking with -lrt
is required. So, after adding -lrt
to LIBS in Makefile, compilation works fine.
Please do so too.
Hi,
I got virtual server (Xen) with Ubuntu 14.04.1 installed and:
24 virtual cores,
128GB RAM,
2TB HDD
and I'm experiencing extremely slow renders for a planet snapshot.
My postgresql.conf:
max_connections = 1200
shared_buffers = 4GB
temp_buffers = 128MB
work_mem = 512MB
maintenance_work_mem = 32GB
effective_io_concurrency = 6
fsync = on
synchronous_commit = on
full_page_writes = off
checkpoint_segments = 32
checkpoint_timeout = 10min
checkpoint_completion_target = 0.9
effective_cache_size = 24GB
autovacuum = on
renderd.conf:
[renderd]
socketname=/var/run/renderd/renderd.sock
num_threads=24
tile_dir=/var/lib/mod_tile
stats_file=/var/run/renderd/renderd.stats
[mapnik]
plugins_dir=/usr/lib/mapnik/2.0/input/
font_dir=/usr/share/fonts/truetype/ttf-dejavu
font_dir_recurse=1
[default]
URI=/osm_tiles/
TILEDIR=/var/lib/mod_tile
XML=$OWN_STYLE$
TILESIZE=256
During renderd I'm getting a lot errors like:
renderd[32087]: DEBUG: Failed to read cmd on fd 16
Or:
renderd[32087]: ERROR: failed to render TILE default 7 72-79 40-47
renderd[32087]: reason: Postgis Plugin: bad connection
Generating tile can take even 5000 seconds.
What can I do to fix it?
Thank you in advance for help.
If the request does not have a Access-Control-Request-Headers
header then the response will include:
Access-Control-Allow-Headers: (null)
because it has tried to format a null pointer into the response.
Some storages already have free(store) in close function. For example store_ro_composite.c:
static int ro_composite_close_storage(struct storage_backend * store) {
struct ro_composite_ctx * ctx = (struct ro_composite_ctx *)(store->storage_ctx);
ctx->store_primary->close_storage(ctx->store_primary);
ctx->store_secondary->close_storage(ctx->store_secondary);
if(ctx->cache.tile) free(ctx->cache.tile);
free(ctx);
free(store);
return 0;
}
Here is the patch for renderd_list.c
--- a/src/render_list.c
+++ b/src/render_list.c
@@ -301,7 +301,9 @@ int main(int argc, char **argv)
}
store->close_storage(store);
- free(store);
+ if (store != NULL) {
+ free(store);
+ }
finish_workers();
free(spath);
environment ubuntu13.04 mapnik 3.0
Download from the git clonehttps://github.com/openstreetmap/mod_tile
. / autogen.sh
. / configure
make
Later wrong information below.
It would be great to support UTFGrid generation using renderd and mod_tile.
https://github.com/mapbox/utfgrid-spec
An example UTFGrid-enabled mapnik xml file is at https://gist.github.com/gravitystorm/5824793
I'd suggest that it's a per-layer option to also generate the UTFGrid at the same time as the png (or other raster) output, and expire them as a pair. However, I can see there being some (rare) usecases where you may wish to generate UTFGrids without a corresponding png output.
There is problem with stat function on big filesystem (XFS, 2TB+)
Possible fix (worked for me):
store.c add:
before #include <sys/stat.h>
I built my tile-server according to this guide from switch2osm.org
I imported the entire planet, and can serve some tiles.
This one in particular though: http://a.tile.openstreetmap.org/3/2/3.png
Causes a segfault on my own server:
Mar 17 12:55:28 osm renderd[9653]: DEBUG: Got incoming connection, fd 8, number 1
Mar 17 12:55:28 osm renderd[9653]: DEBUG: Got incoming request with protocol version 2
Mar 17 12:55:28 osm renderd[9653]: DEBUG: Got command RenderPrio fd(8) xml( default), z(3), x(2), y(3), mime(image/png), options()
Mar 17 12:55:28 osm renderd[9653]: DEBUG: START TILE default 3 0-7 0-7, new metatile
Mar 17 12:55:28 osm renderd[9653]: Rendering projected coordinates 3 0 0 -> - 20037508.342800|-20037508.342800 20037508.342800|20037508.342800 to a 8 x 8 tile
Mar 17 12:55:36 osm kernel: [3406723.983887] renderd[9658]: segfault at 18 ip 00007f7f13534b3e sp 00007f7f10e585f0 error 4 in osm.input[7f7f1351b000+21000]
If renderd
is configured to use more than 10 threads then the max_size
parameter on each postgres layer in the stylesheet needs to be increased. It would be nice if renderd could do this automatically by iterating over the layers in the stylesheet and updating the max_size
value based on the thread count.
Hello,
i tryed to compile mod_tile under Ubuntu 12.04 Desktop with gcc and g++ version 4.6.4.
osm@maps:~/src/mod_tile$ make
Making all in iniparser3.0b
make[1]: Entering directory /home/osm/src/mod_tile/iniparser3.0b' make[1]: Nothing to be done for
all'.
make[1]: Leaving directory /home/osm/src/mod_tile/iniparser3.0b' make[1]: Entering directory
/home/osm/src/mod_tile'
g++ -DHAVE_CONFIG_H -I. -I./includes -I/usr/include/freetype2 -pthread -I/usr/include -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -g -O2 -MT parameterize_style.o -MD -MP -MF .deps/parameterize_style.Tpo -c -o parameterize_style.o test -f 'src/parameterize_style.cpp' || echo './'
src/parameterize_style.cpp
src/parameterize_style.cpp: In function ‘void parameterize_map_language(mapnik::Map&, char_)’:
src/parameterize_style.cpp:46:97: error: request for member ‘create’ in ‘mapnik::singleton<T, CreatePolicy>::instance with T = mapnik::datasource_cache, CreatePolicy = mapnik::CreateStatic’, which is of non-class type ‘mapnik::datasource_cache_’
make[1]: *** [parameterize_style.o] Error 1
make[1]: Leaving directory `/home/osm/src/mod_tile'
make: *** [all-recursive] Error 1
Every time apache is started or reloaded an informational message is logged to the console:
[Tue Aug 13 08:10:59 2013] [notice] Loading tile config default at /default/ for zooms 0 - 19 from tile directory /srv/tile.openstreetmap.org/tiles with extension .png and mime type image/png
Hello,
I installed OSM via switch2osm package installer on Ubuntu 12.4.04. When I add a subdomain with a2ensite and reload, the tile (0/0/0.png for instance) goes 404. If I a2dissite and reload it's back up again.
How can I fix this?
render_list has no options to control the verbosity, but always outputs debug options. An option to only display the results or to display no output except errors would be helpful.
The default attribution can be interpreted as html, e.g. when shown in tilejson output
https://github.com/openstreetmap/mod_tile/blob/master/mod_tile.h#L32
It can be overwritten per-style in renderd.conf
https://github.com/openstreetmap/mod_tile/blob/master/renderd.conf#L38
However, this doesn't work if you have any semicolons in your override string, e.g. for ampersands, copyright entities or similar. The role of semicolons in .ini files seems to be implementation-specific as to whether they are a comment delineator only at the start of the line, only when preceded by whitespace, or at any point during the line. Additionally, escape sequences (typically backslash, e.g. ; ) are implementation-specific. At the moment, we have an anywhere-no-escape parser.
Perhaps we need a different ini parser, or a different configuration file format.
When I start renderd -f, I get:
An error occurred while loading the map layer 'default': Could not create datasource for type: 'shape' encountered during parsing of layer 'world' in Layer at line 4945 of '/home/postgres/osm-standard-style/mapnik-stylesheets/osm.xml'
renderd[16603]: An error occurred while loading the map layer 'default': Could not create datasource for type: 'shape' encountered during parsing of layer 'world' in Layer at line 4945 of '/home/postgres/osm-standard-style/mapnik-stylesheets/osm.xml'
renderd[16603]: An error occurred while loading the map layer 'default': Could not create datasource for type: 'shape' encountered during parsing of layer 'world' in Layer at line 4945 of '/home/postgres/osm-standard-style/mapnik-stylesheets/osm.xml'renderd[16603]: An error occurred while loading the map layer 'default': Could not create datasource for type: 'shape' encountered during parsing of layer 'world' in Layer at line 4945 of '/home/postgres/osm-standard-style/mapnik-stylesheets/osm.xml'
This is line 4945:
world
/home/postgres/osm-standard-style/mapnik-stylesheets/world_boundaries/shoreline_300.shp
shape
These instructions are fubar: http://wiki.openstreetmap.org/wiki/HowTo_mod_tile
They create .// in urls.
I manually put .shp but it didn't make any difference.
d0dab6e (#83) introduced getting Mapnik's dependencies with $MAPNIK_CONFIG --dep-includes
. The problem is, this doesn't seem to exist with Mapnik 2.0, where this output is generated in the Makefile
MAPNIK_CFLAGS = -I/usr/local/include -I/usr/local/include -I/usr/include -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/gdal -I/usr/include/postgresql -DHAVE_JPEG -DBOOST_REGEX_HAS_ICU -ansi -Wall -pthread -ftemplate-depth-300 -DLINUX -DBOOST_SPIRIT_THREADSAFE -DMAPNIK_THREADSAFE -O3 -finline-functions -Wno-inline -DNDEBUG -DLIBTOOL_SUPPORTS_ADVISE -DHAVE_LIBXML2
MAPNIK_CONFIG = /usr/local/bin/mapnik-config
MAPNIK_INCLUDES = Usage: mapnik-config [OPTION]
Known values for OPTION are:
--prefix display mapnik prefix [default /usr/local]
--prefix=DIR change mapnik prefix [default /usr/local]
--libs print library linking information
--dep-libs print library linking information for mapnik depedencies
--ldflags print library paths (-L) information
--cflags print pre-processor and compiler flags
--fonts print default fonts directory
--input-plugins print default input plugins directory
--json print all config options as json object
--help display this help and exit
-v --version output version information
--git-revision output git hash
MAPNIK_LDFLAGS = -L/usr/local/lib -lmapnik
MAPNIK_VERSION = 2.0.3-pre
Reported via IRC for someone following switch2osm with Ubuntu 12.04.
Hi!
I have no success with the "tile_dir" option. Seems that it doesn't work for me. So I need to put a symlinks in /var/lib/mod_tile directory to specify the desired tiles location. Maybe I missed something? Help me understand.
Is it possible to get the state & district boundaries of osm and colouring the districts area.
Hello again!
Is it possible to specify two different XML stylesheets for one map at different zoom levels? I tried this config:
[map]
URI=/map/
XML=/path/to/xml/xml1.xml
MINZOOM=10
MAXZOOM=18
[map2]
URI=/map/
XML=/path/to/xml/xml2.xml
MINZOOM=0
MAXZOOM=9
But with no success. Looks like URI=/map/
doesn't work. Maybe I've misunderstood the function of URI?
renderd[6503]: An error occurred while loading the map layer 'default': Postgis Plugin: fe_sendauth: no password supplied
Connection string: ' dbname=gis user=root connect_timeout=4'
encountered during parsing of layer 'landcover' in Layer at line 341 of '/data/root/mapnik-style/osm.xml'
Hi all,
Rendering tools like render_list or render_old do not wait the end of threads before ending. Looks like it finished at end of enqueing instead of rendering.
I need to know when rendering finished to work on new tiles (eg meta2tile)
Not sure if it's a bug or a new feature.
If new feature, could we have a option to command line in order to wait until rendering finished ?
Regards,
Bruno.
Hi.
renderd doesn't respect Mapnik XML's <Map buffer-size="xxx">
property. This property is important to help avoid cut labels.
I have tried several values (buffer-size="128"
, buffer-size="256"
, buffer-size="512"
), but with no difference for a result.
Hello,
I have a mapserver running in Debian squeeze with Mapnik 2.0, Mod_tile and renderd. It works fine, but in the apache's log appears the error:
[Thu May 09 18:39:07 2013] [info] [client 190.66.08.02] tile_storage_hook: handler(tile_serve), uri(/tiles/13/2355/4016.png).
What it means and how I could fix it?
Thanks in advance,
Juan Pablo R
When running render_list
I get the debug message debug: init_storage_backend: initialising file storage backend at: /var/lib/mod_tile
to stderr. My config file doesn't use /var/lib/mod_tile, so this message is incorrect
Trying to get mod_tile producing UTF8Grids. Wondering if anyone else has looked at this. Apparently the fix would be in mapnik itself. Some notes on this from @springmeyer below.
The reason renderd does not support tile end points for interactivity/grids is that Mapnik support is partially in C++ and partially in the bindings (python or JavaScript). It ended up this way because to leverage the json support in each of those languages and not implement the full json encoding for utf8grids in C++. But in doing so, renderd needs to implement that json encoding on its own, which has not happened yet and likely shouldn't since ideally Mapnik would just do this in C++ to save the duplicative work.
The grid_renderer builds up an image like array of feature ids. Then that needs to be turned into json. The code to do it is is already in c++ actually but writes to a c++ boost python object. Instead it would need to write to a string that could be parseable as json. The bindings code is mapnik/bindings/python/python_grid_utils.hpp. We don't actually need a json encoder and the intermediate objects it would likely require.
mod_tile used to compile on OS X but recent versions have numerous blocking issues.
Here is a rundown:
store.h
:In file included from src/store_null.c:1:
In file included from ./includes/store_null.h:8:
./includes/store.h:18:9: error: unknown type name 'off_t'
off_t size; /* total size, in bytes */
^
./includes/store.h:19:9: error: unknown type name 'time_t'; did you mean 'size_t'?
time_t atime; /* time of last access */
^~~~~~
size_t
Fixable with:
index 7c3e453..f98575d 100644
--- a/includes/store.h
+++ b/includes/store.h
@@ -6,6 +6,7 @@ extern "C" {
#endif
#include <stdlib.h>
+#include <sys/types.h>
#include "render_config.h"
#define STORE_LOGLVL_DEBUG 0
src/gen_tile_test.cpp:112:19: error: use of undeclared identifier 'CLOCK_THREAD_CPUTIME_ID'
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &time);
^
Fixable with:
diff --git a/src/gen_tile_test.cpp b/src/gen_tile_test.cpp
index 19ff90d..20ca36d 100644
--- a/src/gen_tile_test.cpp
+++ b/src/gen_tile_test.cpp
@@ -42,6 +42,10 @@
#include <sys/types.h>
#include <sys/syscall.h>
#include <stdlib.h>
+#ifdef __MACH__
+#include <mach/clock.h>
+#include <mach/mach.h>
+#endif
#include <mapnik/version.hpp>
#if MAPNIK_VERSION < 200000
@@ -96,7 +100,17 @@ void *addition_thread(void * arg) {
enum protoCmd res;
struct timespec time;
unsigned int seed = syscall(SYS_gettid);
+ #ifdef __MACH__ // OS X does not have clock_gettime, use clock_get_time
+ clock_serv_t cclock;
+ mach_timespec_t mts;
+ host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
+ clock_get_time(cclock, &mts);
+ mach_port_deallocate(mach_task_self(), cclock);
+ time.tv_sec = mts.tv_sec;
+ time.tv_nsec = mts.tv_nsec;
+ #else
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &time);
+ #endif
seed *= (unsigned int)time.tv_nsec;
pthread_t tid = pthread_self();
src/gen_tile_test.cpp:119:18: error: assigning to 'int' from incompatible type 'pthread_t' (aka '_opaque_pthread_t *')
item->my = tid;
^ ~~~
Fixable with:
- item->my = tid;
+ item->my = rand_r(&seed);
apxs -c -I./includes -lcurl ./src/mod_tile.c ./src/sys_utils.c ./src/store.c ./src/store_file.c ./src/store_file_utils.c ./src/store_memcached.c ./src/store_rados.c ./src/store_ro_http_proxy.c ./src/store_ro_composite.c ./src/store_null.c
/usr/share/apr-1/build-1/libtool --silent --mode=compile /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/local/include -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -I./includes -c -o ./src/mod_tile.lo ./src/mod_tile.c && touch ./src/mod_tile.slo
env: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc: No such file or directory
apxs:Error: Command failed with rc=65536
This can be worked around by doing:
sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain
/usr/share/apr-1/build-1/libtool --silent --mode=compile /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/local/include -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -I./includes -c -o ./src/mod_tile.lo ./src/mod_tile.c && touch ./src/mod_tile.slo
libtool: compile: unable to infer tagged configuration
libtool: compile: specify a tag with `--tag'
apxs:Error: Command failed with rc=65536
I don't know about to workaround this. Passing --tag=CC
fixes the problem, but its unclear to me how to pass it to libtool
Commit 2c53891 introduced locking around memory allocation for an array containing pointers to the storage backends, as apache's memory pool functions aren't thread safe. It used apr_global_mutex, but I think apr_global_mutex not only synchronizes between threads, but also between process which isn't necessary for the storage backend memory allocation. Instead presumably apr_thread_mutex is what we want.
I need to verify this before committing the change, hence this reminder ticket.
Hello, i'd like to render with mod_tile and mapnik. When i run the renderd command, i got a parser error:
renderd[5981]: Rendering daemon started
renderd[5981]: Parsing section renderd
renderd[5981]: Parsing render section 0
renderd[5981]: Parsing section mapnik
renderd[5981]: Parsing section default
renderd[5981]: config renderd: unix socketname=/tmp/osm-renderd
renderd[5981]: config renderd: num_threads=4
renderd[5981]: config renderd: num_slaves=0
renderd[5981]: config renderd: tile_dir=/var/lib/mod_tile
renderd[5981]: config renderd: stats_file=/var/run/renderd/renderd.stats
renderd[5981]: config mapnik: plugins_dir=/usr/local/lib/mapnik/input
renderd[5981]: config mapnik: font_dir=/usr/share/fonts/truetype/ttf-dejavu
renderd[5981]: config mapnik: font_dir_recurse=0
renderd[5981]: config renderd(0): Active
renderd[5981]: config renderd(0): unix socketname=/tmp/osm-renderd
renderd[5981]: config renderd(0): num_threads=4
renderd[5981]: config renderd(0): tile_dir=/var/lib/mod_tile
renderd[5981]: config renderd(0): stats_file=/var/run/renderd/renderd.stats
renderd[5981]: config map 0: name(default) file(/root/src/mapnik-style/osm.xml) uri(/osm_tiles2/) htcp() host(localhost)
renderd[5981]: Initialising unix server socket on /tmp/osm-renderd
renderd[5981]: Created server socket 4
renderd[5981]: Renderd is using mapnik version 2.2.0
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed-Italic.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed-Bold.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldItalic.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-BoldOblique.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-ExtraLight.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed-BoldItalic.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-Bold.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-Oblique.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Italic.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-BoldOblique.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerifCondensed.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Oblique.ttf
renderd[5981]: DEBUG: Loading font: /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
Running in foreground mode...
renderd[5981]: Starting stats thread
debug: init_storage_backend: initialising file storage backend at: /var/lib/mod_tile
debug: init_storage_backend: initialising file storage backend at: /var/lib/mod_tile
debug: init_storage_backend: initialising file storage backend at: /var/lib/mod_tile
debug: init_storage_backend: initialising file storage backend at: /var/lib/mod_tile
renderd[5981]: An error occurred while loading the map layer 'default': Failed to parse expression: "name" in style 'area-text' in TextSymbolizer at line 258 of '/root/src/mapnik-style/osm.xml'
renderd[5981]: An error occurred while loading the map layer 'default': Failed to parse expression: "name" in style 'area-text' in TextSymbolizer at line 258 of '/root/src/mapnik-style/osm.xml'
renderd[5981]: An error occurred while loading the map layer 'default': Failed to parse expression: "name" in style 'area-text' in TextSymbolizer at line 258 of '/root/src/mapnik-style/osm.xml'
renderd[5981]: An error occurred while loading the map layer 'default': Failed to parse expression: "name" in style 'area-text' in TextSymbolizer at line 258 of '/root/src/mapnik-style/osm.xml'
what's the problem? please help me! thx!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.