我正在CentOS 6.4上创建一个OpenStreetMap磁贴服务器。加载“本地图块”图层的slippymap.html页面时,我得到的只是两种颜色的地图,白色和蓝色表示土地和水。也就是说,我看到的图像基本上是海岸线。 “mapnik”图层工作正常。
这是我第一次进行与地图相关的软件配置。像mapnik,osm2pgsql,postgis,tile等所有术语对我来说都是新的。
据我在谷歌搜索结果中看到,似乎没有关于在CentOS 6.x上创建此服务器的现成信息。所以,对我来说,主要的指令集是以下文件:
http://switch2osm.org/serving-tiles/manually-building-a-tile-server-12-04/ [1]
所有组件必须从第三方CentOS存储库(如ELGIS,RPMForge,EPEL和PGDG92)安装或从源代码编译。
几天前,我确实在Ubuntu 12.04上创建了相同的服务器,这很简单。遵循这些说明:
http://switch2osm.org/serving-tiles/building-a-tile-server-from-packages/ [2]
请注意,文档[2]提到了访问slippymap.html但[1]没有。在[1]中,提到的唯一测试是访问yourserveraddress / osm_tiles / 0/0 / 0.png,即使在我的CentOS 6.4设置中也能正常工作。我通过从Ubuntu 12.04框中复制并进行了少量编辑来创建了slippymap.html。
另一条可能是关键线索的信息是来自renderd的以下错误:
proj_init_error:初始化投影失败:'+ init = epsg:4326'
我安装了proj和proj-devel软件包。
$ ldd / usr / local / bin / renderd | grep proj libproj.so.0 => /usr/lib64/libproj.so.0(0x00007ffa42a0e000)
如何调试此问题?可能是什么问题呢?是否有任何检查表来验证每个组件的正常运行,如osm2pgsql,postgres / postgis db,mod_tile或mapnik?
答案 0 :(得分:1)
我调试了这个问题并开始了解Git repo的2.0.x分支中的mapnik源代码,git://github.com/mapnik/mapnik调用pj_init_plus_ctx()失败。请参阅代码剪切以获取更多信息。
/*
* Demonstrate mapnik 2.0 against proj 4.8.0-2 bug.
*
* Mapnik makes use of pj_init_plus_ctx() if the PJ_VERSION macro is >= 480,
* which fails. Otherwise, it calls pj_init_plus(), which succeeds.
*/
#include <proj_api.h>
int main(void)
{
projCtx ctx = NULL;
projPJ proj = NULL;
#if 0
projPJ p = NULL;
#endif
ctx = pj_ctx_alloc();
/* proj is NULL after this call */
proj = pj_init_plus_ctx(ctx, "+init=epsg:4326");
#if 0
/* p is not NULL after this call */
p = pj_init_plus("+init=epsg:4326");
#endif
return 0;
}
我已经能够通过将/usr/include/pj_api.h中的PJ_VERSION更改为470来继续前进。修复了另一个错误,修复了将font_dir设置为&#34; / usr / local / lib64 / mapnik / fonts& #34;在/etc/renderd.conf中。现在显示地名,州界,道路等名称。