----------written by shenwenkai-------------

ubuntu linux环境下,按照网址(https://switch2osm.org/serving-tiles/building-a-tile-server-from-packages/提供的方式,执行至sudo /etc/init.d/renderd restart

打开http://localhost/osm/slippymap.html就可以看到样例图;但是如果不出意外,中文会出现方框,无法正常显示。

下面说明解决方法:

  • 1)安装unifont字体

sudo apt-get install unifont

  • 2)修改/etc/mapnik-osm-data/inc/fontset-settings.xml.inc的内容为:

<!--Settings for Mapnik Fonts

To see the fonts you have installed with Mapnik do:

ls `python -c "import mapnik;print mapnik.fontscollectionpath"`-->

<FontSet name="book-fonts">

  <Font face-name="unifont Medium" />

</FontSet>

<FontSet name="bold-fonts">

  <Font face-name="unifont Medium" />

</FontSet>

<FontSet name="oblique-fonts">

  <Font face-name="unifont Medium" />

</FontSet>

修改/etc/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 ; DOES NOT WORK YET

[mapnik]

plugins_dir=/usr/lib/mapnik/2.0/input

font_dir=/usr/share/fonts/truetype/unifont

font_dir_recurse=true

[default]

URI=/osm/

XML=/etc/mapnik-osm-data/osm.xml

DESCRIPTION=This is the standard osm mapnik style

;ATTRIBUTION=&copy;<a href=\"http://www.openstreetmap.org/\">OpenStreetMap</a> and <a href=\"http://wiki.openstreetmap.org/w\

iki/Contributors\">contributors</a>, <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>

;HOST=tile.openstreetmap.org

;SERVER_ALIAS=http://a.tile.openstreetmap.org

;SERVER_ALIAS=http://b.tile.openstreetmap.org

;HTCPHOST=proxy.openstreetmap.org

  • 3)修改/etc/mapnik-osm-data/osm.xml的关键词,把配置文件中的FontSet name="bold-fonts"等字体集设置全部改为字符类型设置face-name="unifont Medium"。
  • 4)删除缓存文件 sudo rm -rf /var/lib/mod_tile/default/*

再次打开,中文名称应该就可以正常显示了。

附加:

可以根据如下命令的运行情况,来判断mapnik是否正确运行。

sudo su www-data

$ renderd –f

renderd[26014]: Rendering daemon started

renderd[26014]: Parsing section renderd

renderd[26014]: Parsing render section 0

renderd[26014]: Parsing section mapnik

renderd[26014]: Parsing section default

renderd[26014]: config renderd: unix socketname=/var/run/renderd/renderd.sock

renderd[26014]: config renderd: num_threads=4

renderd[26014]: config renderd: num_slaves=0

renderd[26014]: config renderd: tile_dir=/var/lib/mod_tile

renderd[26014]: config renderd: stats_file=/var/run/renderd/renderd.stats

renderd[26014]: config mapnik:  plugins_dir=/usr/lib/mapnik/2.0/input

renderd[26014]: config mapnik:  font_dir=/usr/share/fonts/truetype/unifont

renderd[26014]: config mapnik:  font_dir_recurse=1

renderd[26014]: config renderd(0): Active

renderd[26014]: config renderd(0): unix socketname=/var/run/renderd/renderd.sock

renderd[26014]: config renderd(0): num_threads=4

renderd[26014]: config renderd(0): tile_dir=/var/lib/mod_tile

renderd[26014]: config renderd(0): stats_file=/var/run/renderd/renderd.stats

renderd[26014]: config map 0:   name(default) file(/etc/mapnik-osm-data/osm.xml) uri(/osm/) htcp() host()

renderd[26014]: Initialising unix server socket on /var/run/renderd/renderd.sock

renderd[26014]: Created server socket 5

renderd[26014]: Renderd is using mapnik version 2.0.0

renderd[26014]: DEBUG: Loading font: /usr/share/fonts/truetype/unifont/unifont.ttf

Running in foreground mode...

renderd[26014]: Starting stats thread

switch2osm使用open street map离线地图中文乱码方框解决办法的更多相关文章

  1. C#中WebClient使用DownloadString中文乱码的解决办法

    原文:C#中WebClient中文乱码的解决办法 第一次尝试: string question = textBox1.Text.ToString(); WebClient client= new We ...

  2. 详解get请求和post请求参数中文乱码的解决办法

    首先出现中文乱码的原因是tomcat默认的编码方式是"ISO-8859-1",这种编码方式以单个字节作为一个字符,而汉字是以两个字节表示一个字符的. 一,get请求参数中文乱码的解 ...

  3. Source Insight 4 中文乱码的解决办法(source insight 3.5 及以下版本就到其他地方看看吧)

    干货:Source Insight 4 中文乱码的解决办法(source insight 3.5 及以下版本就到其他地方看看吧) [解决办法]: 菜单栏中[File]->[Reload As E ...

  4. IDEA使用maven构建时控制台中文乱码的解决办法

    使用maven clean install 项目时控制台中文乱码,解决办法如下: Setting->maven->runner VMoptions: -Dfile.encoding=UTF ...

  5. resin后台输出中文乱码的解决办法!

    resin后台输出中文乱码的解决办法! 学习了:https://blog.csdn.net/kobeguang/article/details/34116429 编辑conf/resin.con文件: ...

  6. php使用curl获取文本出现中文乱码的解决办法

    在使用php的curl获取远程html文本时出现了中文乱码. 解决办法的代码如下: $url = "www.ecjson.com";//获取页面内容$ch = curl_init( ...

  7. get请求和post请求参数中文乱码的解决办法

    get请求参数中文乱码的解决办法 在tomcat的server.xml里的Connector加个URIEncoding="UTF-8",把 <Connector connec ...

  8. Windows 2012 中文乱码的解决办法

    背景:服务器安装2012 R2英文环境,软件为中文显示.已下载中文语言包安装到服务器上 现象:TXT文档的中文在服务器上打开显示为乱码,复制到本地电脑上可正常显示 解决办法:控制面板-语言-更改日期. ...

  9. Keil µVision4 中出现中文乱码的解决办法

    首先得说一下,以前都没有遇到过类似的问题,但是看到有个同学曾经满篇的乱码那叫个心疼. 这里我所说的办法其实只是格式转换的问题,对于其他原因造成的,可能会在以后遇到的时候再来处理了.另外,在将代码文件转 ...

随机推荐

  1. 【代码笔记】iOS-提醒时间的选择

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  2. java重载和重写的区别

    一.重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现 ...

  3. ARC下的所有权修饰符

    ARC有效时,id类型必须加上所有权修饰符 下面为三种等效的声明,为了便于和二级指针的情况联系起来,采用第一种. NSError * __weak error = nil; NSError __wea ...

  4. EnumMap

    以下内容基于jdk1.7.0_79源码: 什么是EnumMap Map接口的实现,其key-value映射中的key是Enum类型: 补充说明 其原理就是一个对象数组,数组的下标索引就是根据Map中的 ...

  5. DataTable转换为Json格式

    private string DataTableToJson(DataTable dt) { string Json = ""; Json = Json + "[&quo ...

  6. python基础(二)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 简单的数据类型以及赋值 变量不需要声明 Python的变量不需要声明,你可以直接输 ...

  7. strip的用法

    函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.lstrip(rm)       删除s字符串中开头 ...

  8. 支付宝APP支付开发- IOException : DerInputStream.getLength(): lengthTag=127, too big.

    支付宝APP支付Java开发报错: IOException : DerInputStream.getLength(): lengthTag=127, too big. 后来排查是因为没有设置私钥.

  9. css3中变形与动画(三)

    transform可以实现矩阵变换,transition实现属性的平滑过渡,animation意思是动画,动漫,这个属性才和真正意义的一帧一帧的动画相关.本文就介绍animation属性. anima ...

  10. PHP_Bibel阅读学习(一)——看书看经典,写文写代码

    基础快速再看一下,然后每天有新的好玩的看. 这本书,反正好评不少,就是`PHP和MySQL Web开发`,机械工业出版社,澳洲人写的,红皮,有兴趣的可以看一下. 第一篇 使用PHP 一.入门 5分钟翻 ...