Chinaunix首页 | 论坛 | 博客
  • 博客访问: 132684
  • 博文数量: 36
  • 博客积分: 1716
  • 博客等级: 上尉
  • 技术积分: 295
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-20 11:20
文章分类

全部博文(36)

文章存档

2014年(1)

2012年(1)

2011年(15)

2010年(1)

2009年(18)

我的朋友
最近访客

分类: Python/Ruby

2014-09-13 12:39:14

如果你对JVectorMap不太了解,请先阅读《》。
Converter 是 JVectorMap 提供给我们把 shapefile 数据文件转化为地图数据的转化器。它是基于 Python 编写的,官方建议版本 >=2.7(貌似 3.x 与 2.x 语法有不少区别,不要使用 3.x 以及以后版本)。另外还需要依赖库 , 和 

Converter依赖库安装

Linux 下手动安装

点击(此处)折叠或打开

  1. # install anyjson
  2. $ wget
  3. $ tar zxvf anyjson-0.3.3.tar.gz && cd anyjson-0.3.3
  4. $ python setup.py build && python setup.py install
  5. # install Shapely
  6. $ wet ""
  7. $ tar zxvf Shapely-1.4.0.tar.gz && cd Shapely-1.4.0
  8. $ python setup.py build && python setup.py install
  9. # install GDAL
  10. $ wget
  11. $ tar zxvf GDAL-1.11.0.tar.gz && cd GDAL-1.11.0
  12. $ python setup.py build && python setup.py install

如果有 easy_install ,还可以用它来安装。

点击(此处)折叠或打开

  1. $ easy_install GDAL
  2. $ easy_install anyjson
  3. $ easy_install shapely
如果是Debian/Ubuntu

点击(此处)折叠或打开

  1. $ apt-get install python-anyjson python-gdal python-shapely
另外还可以使用 yum 等工具安装,这儿就不再介绍。

Converter 用法

你可以阅读README.md,里面有转化器的用法示例,一般用法为:converter.py [option]… <input_file> <output_file>,你也可以使用 converter.py --help 或者查看源码了解详细信息。


点击(此处)折叠或打开

  1. # 生成德国数据
  2. $ python converter.py
  3. --width 1000
  4. --country_name_index 4
  5. --country_code_index 30
  6. --longitude0 10.71
  7. --where "ISO = 'DEU'"
  8. --projection aea
  9. --name datag_germany
  10. --language en
  11. 10m-admin-1-states-provinces-shp/ne_10m_admin_1_states_provinces_shp.shp
  12. ../tests/assets/jquery-jvectormap-data-germany-aea-en.js

Converter 参数

点击(此处)折叠或打开

  1. input_file 输入文件, 一般情况下是 *.shp格式的文件
  2. output_file 输出文件,结果是jVectorMap可用的SVG或者JSON文件,格式为.js
  3. --scale (float) SVG的宽度大小。注意:此选项貌似没有被脚本用到,可以参考--width选项
  4. --country_code_index (int, 0) 国家(地区)代码索引,作为jVectorMap中区域的唯一代码标识,索引从0开始;您可以使用诸如ogrinfo的工具来确定索引。注意索引务必唯一,否则地图将会有丢失的区域。
  5. --country_name_index (int, 1) 国家(地区)名称索引,作为jVectorMap中区域的唯一标签标识,索引从0开始;您可以使用诸如ogrinfo的工具来确定索引。注意索引务必唯一,否则地图将会有丢失的区域。
  6. --codes_file (str, "") 国家(区域)代码名称映射表,行内分隔符使用TAB,格式为:,例如:DE Germany;务必确保代码和名称匹配。
  7. --where (str, "") 可选的标准,用来限定也用来排除,比如:"ISO = 'DEU'" 表示只选择德国数据;"ne_10m_adm != 'ATA'"表示不包括南极洲。
  8. --width (float) 指定影响所产生的SVG规模的宽度。
  9. --insets (str) 允许额外的指定JSON数据插入;插入的JSON数据需要是数组格式。
  10. --minimal_area (float) 不清楚含义
  11. --buffer_distance (float, -0.4) 国家边界距离
  12. --simplify_tolerance (float) 到什么程度的矢量路径可以被简化。较大的值会导致更少的信息/细节,但文件会更小。如果未指定或为零此选项,简化不会生效。
  13. --viewport (str) 使用指定的区域裁剪矩形,格式为:--viewport " ",例如:--viewport "9.6 48.1 11.3 51.4".
  14. --longitude0 (str, "0") 坐标系水平中心(中央子午线)的经度
  15. --projection (str, "mill")
  16. 使用投影的方式,分别为:
  17. merc (Mercator)
  18. mill (Miller Cylindrical)
  19. aea (Albers Equal Area)
  20. lcc (Lambert Conformal Conic)
  21. --name (str, "world") 地图的名称
  22. --language (str, "en") 两个字母的语言代码,比如:cn,de
  23. --input_file_encoding (str, "iso-8859-1") 输入文件的编码,如:“utf-8”
  24. --precision (int, 2) 精度

获取地图数据源


官方使用的数据源:

结束语

感谢JVectorMap 给我们提供了这么完善的工具,不过使用时发现程序有小Bug(和JSON处理有关),后面我会把修改过的文件共享给大家,敬请期待。

阅读(1307) | 评论(0) | 转发(0) |
0

上一篇:10 个最新 UI 图资源免费下载

下一篇:没有了

给主人留下些什么吧!~~