【问题标题】:How to generate a new map for jvectormap jquery plugin?如何为 jvectormap jquery 插件生成新地图?
【发布时间】:2012-06-17 03:08:54
【问题描述】:

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

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

但我需要按州划分澳大利亚和新西兰的地图。在 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生成澳大利亚和新西兰按州划分的地图??

谢谢

【问题讨论】:

    标签: javascript jquery python jvectormap


    【解决方案1】:

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

    • 下载并安装OSGeo4W(使用快速桌面安装)
    • 下载所需的形状文件(this 自然数据文件可以正常工作)。
    • anyjson放到转换器目录
    • 在转换器目录中创建ma​​kemap.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/

    关于参数(我知道的)

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

    simplify_tolerance 会影响地图质量和大小

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


    country_code_index shapefile 中的 REGION CODE 属性索引或制表符分隔的列中的索引文件(如果使用代码文件)

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

    longitude0是区域的经度 (used this)

    名称 是地图名称

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

    【讨论】:

    • converter.py 在哪里?我安装了 OSGeo4W (Express Desktop) 但我看不到这样的文件。只有EpochConverter.py、StrConverter.py和UnitDblConverter.py
    • @akapelko Converter.py 是 jvectormap 源代码的一部分 -github.com/bjornd/jvectormap/tree/master/converter 。 OSGeo4W 只需要运行这个 python 脚本。
    • 嗨,我已经按照这篇文章中提到的步骤进行操作,但我遇到了一个问题。请检查此链接。 stackoverflow.com/questions/42520807/…
    【解决方案2】:

    看看你写的命令。好像只适用于美国地图:

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

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

    【讨论】:

    • 是的,你是对的......但问题是如何知道命令中应该包含哪些参数......我也可以在哪里找到要转换的地图......谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多