如何为jvectormap jquery插件生成新地图?

时间:2012-06-17 03:08:55

标签: javascript jquery python jvectormap

我想知道如何为jquery插件创建或生成地图jvectormap http://jvectormap.com/

该项目有几张地图: http://jvectormap.com/maps/

但是我需要我用澳大利亚和新的Zeland划分地图。在github https://github.com/bjornd/jvectormap的文档中,它表示任何人都可以使用此命令生成地图:

python \
    path/to/converter.py \
    path/to/geo-data.shp \
    path/to/resulting-map.js \
    --width 900 \
    --country_name_index 4 \
    --where "ISO = 'USA'" \
    --codes_file path/to/codes-en.tsv \
    --insets '[{"codes": ["US-AK"], "width": 200, "left": 10, "top": 370}, {"codes": ["US-HI"], "width": 100, "left": 220, "top": 400}]' \
    --minimal_area 4000000 \
    --buffer_distance -3000 \
    --simplify_tolerance 1000 \
    --longtitude0 10w \
    --name us

但我认为已经过时了,因为我按照文档说的那样下载了http://www.naturalearthdata.com/downloads/10m-cultural-vectors/10m-admin-1-states-provinces/,但当然没有用。

有人能告诉我如何生成澳大利亚和新泽兰的地图除以jvectormap的状态吗?

感谢

2 个答案:

答案 0 :(得分:14)

万一有人会需要相同的。 要运行转换器,您需要(此指令适用于Windows环境):

  • 下载并安装OSGeo4W(使用快速桌面安装)
  • 下载所需的形状文件(this自然数据文件正常工作)。
  • anyjson放入转换器目录
  • 在转换器目录中创建 makemap.bat ,如下所示:

python ^
   converter.py ^
   ../../ne_10m_admin_1_states_provinces_shp.shp ^
   test-map.js ^
   --width 400 ^
   --where "ISO_3166_2 = 'RU-' and code_hasc!=''" ^
   --country_name_index 12 ^
   --country_code_index 18 ^
   --minimal_area 4000000 ^
   --buffer_distance -0.5 ^
   --simplify_tolerance 10000 ^
   --longitude0 54.8270 ^
   --name russia

  • 运行OSGeo4W shell(它将被添加到开始菜单)
  • 运行makemap.bat
  • 享受生成的地图

作为使用上面提到的步骤http://jsfiddle.net/dyP4c/3/

生成的俄语地图附加此小提琴的示例输出

关于参数(我所知道的)

其中条件用于使用shapefile属性从shapefile过滤掉形状

simplify_tolerance 会影响地图质量和尺寸

如果使用codes_file,则 country_name_index shapefile中的REGION NAME属性索引或制表符分隔文件中的列为

country_code_index 如果使用codes_file,则shapefile中的REGION CODE属性或制表符分隔文件中的列的索引

codes_file 是制表符分隔文件(如果您想使用不是来自shapefile的名称/代码)

经度0 是区域的经度(used this

名称是地图名称

P.S。:OSGeo4W包具有很好的Quantium GIS Browser来浏览shapefile属性。您可以尝试在Web上搜索其他shapefile(不仅是自然数据)以转换为jvectormap

答案 1 :(得分:0)

看看你写的命令。看起来它只适用于美国地图:

--insets '[{"codes": ["US-AK"], "width": 200, "left": 10, "top": 370}, {"codes": ["US-HI"], "width": 100, "left": 220, "top": 400}]' \

我不知道答案,但那是我开始解决问题的地方