情景是,
我是python的新手并尝试使用Converter.py
提供的jVectorMap
插件生成jvectorMap,
我在Windows 7 64bit上安装了OSGEO4W(Desktop INSTALL)。 Python 2.7,GDAL 2.1.0和Shapely也安装在OSGEO4W下。
我下载shapefile
ne_10m_admin_1_states_provinces.shp
我将此形状文件放在converter.py目录中,然后打开OSGEO4W shell并导航到converter.py目录并运行以下命令生成俄罗斯地图以学习地图转换。
python converter.py ne_10m_admin_1_states_provinces.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
我从这篇文章中取得了这个命令如何为jvectormap jquery插件生成一个新的地图?但我遇到了错误的JSON对象解码,请看下面的图片
帮助我解决我的问题,正如我已经说过我对python和jvector Maps的新内容
答案 0 :(得分:0)
我怀疑问题是由于--where
末尾缺少双引号,脚本无法将传入的参数转换为JSON。应该是:
--where "ISO_3166_2 = 'RU-' and code_hasc!=''"
修改强>:
事实证明这是一个更大的问题。如果您查看converter.py的源代码,您会发现:
args = {}
if len(sys.argv) > 1:
paramsJson = open(sys.argv[1], 'r').read()
else:
paramsJson = sys.stdin.read()
paramsJson = json.loads(paramsJson)
所以,看起来这个脚本不能这样调用。它要么期望带有这个JSON的文件,要么通过stdin传递params。 documentation似乎同意这一点。