如果你对JVectorMap不太了解,请先阅读《》。
Converter 是 JVectorMap 提供给我们把 shapefile 数据文件转化为地图数据的转化器。它是基于 Python 编写的,官方建议版本 >=2.7(貌似 3.x 与 2.x 语法有不少区别,不要使用 3.x 以及以后版本)。另外还需要依赖库 , 和 。
Converter依赖库安装
Linux
下手动安装
-
# install anyjson
-
$ wget
-
$ tar zxvf anyjson-0.3.3.tar.gz && cd anyjson-0.3.3
-
$ python setup.py build && python setup.py install
-
# install Shapely
-
$ wet ""
-
$ tar zxvf Shapely-1.4.0.tar.gz && cd Shapely-1.4.0
-
$ python setup.py build && python setup.py install
-
# install GDAL
-
$ wget
-
$ tar zxvf GDAL-1.11.0.tar.gz && cd GDAL-1.11.0
-
$ python setup.py build && python setup.py install
如果有 easy_install
,还可以用它来安装。
-
$ easy_install GDAL
-
$ easy_install anyjson
-
$ easy_install shapely
如果是Debian
/Ubuntu
-
$ apt-get install python-anyjson python-gdal python-shapely
另外还可以使用 yum
等工具安装,这儿就不再介绍。
Converter 用法
你可以阅读README.md
,里面有转化器的用法示例,一般用法为:converter.py
[option
]… <input_file
> <output_file
>,你也可以使用 converter.py --help
或者查看源码了解详细信息。
-
# 生成德国数据
-
$ python converter.py
-
--width 1000
-
--country_name_index 4
-
--country_code_index 30
-
--longitude0 10.71
-
--where "ISO = 'DEU'"
-
--projection aea
-
--name datag_germany
-
--language en
-
10m-admin-1-states-provinces-shp/ne_10m_admin_1_states_provinces_shp.shp
-
../tests/assets/jquery-jvectormap-data-germany-aea-en.js
-
Converter 参数
-
input_file 输入文件, 一般情况下是 *.shp格式的文件
-
output_file 输出文件,结果是jVectorMap可用的SVG或者JSON文件,格式为.js
-
--scale (float) SVG的宽度大小。注意:此选项貌似没有被脚本用到,可以参考--width选项
-
--country_code_index (int, 0) 国家(地区)代码索引,作为jVectorMap中区域的唯一代码标识,索引从0开始;您可以使用诸如ogrinfo的工具来确定索引。注意索引务必唯一,否则地图将会有丢失的区域。
-
--country_name_index (int, 1) 国家(地区)名称索引,作为jVectorMap中区域的唯一标签标识,索引从0开始;您可以使用诸如ogrinfo的工具来确定索引。注意索引务必唯一,否则地图将会有丢失的区域。
-
--codes_file (str, "") 国家(区域)代码名称映射表,行内分隔符使用TAB,格式为:
,例如:DE Germany;务必确保代码和名称匹配。
-
--where (str, "") 可选的标准,用来限定也用来排除,比如:"ISO = 'DEU'" 表示只选择德国数据;"ne_10m_adm != 'ATA'"表示不包括南极洲。
-
--width (float) 指定影响所产生的SVG规模的宽度。
-
--insets (str) 允许额外的指定JSON数据插入;插入的JSON数据需要是数组格式。
-
--minimal_area (float) 不清楚含义
-
--buffer_distance (float, -0.4) 国家边界距离
-
--simplify_tolerance (float) 到什么程度的矢量路径可以被简化。较大的值会导致更少的信息/细节,但文件会更小。如果未指定或为零此选项,简化不会生效。
-
--viewport (str) 使用指定的区域裁剪矩形,格式为:--viewport " ",例如:--viewport "9.6 48.1 11.3 51.4".
-
--longitude0 (str, "0") 坐标系水平中心(中央子午线)的经度
-
--projection (str, "mill")
-
使用投影的方式,分别为:
-
merc (Mercator)
-
mill (Miller Cylindrical)
-
aea (Albers Equal Area)
-
lcc (Lambert Conformal Conic)
-
-
--name (str, "world") 地图的名称
-
--language (str, "en") 两个字母的语言代码,比如:cn,de
-
--input_file_encoding (str, "iso-8859-1") 输入文件的编码,如:“utf-8”
-
--precision (int, 2) 精度
获取地图数据源
官方使用的数据源:
结束语
感谢JVectorMap 给我们提供了这么完善的工具,不过使用时发现程序有小Bug(和JSON处理有关),后面我会把修改过的文件共享给大家,敬请期待。
阅读(1307) | 评论(0) | 转发(0) |