我正在 django 中开发一个网站,我需要为此显示美国各州的地图。我有一个返回地图 JSON 规范的 URL(使用 vincent - http://wrobstory.github.io/2013/04/python-maps-choropleth.html生成)和一个返回 us_states.topo.json 的 URL由 vega 运行时 ( https://github.com/trifacta/vega/wiki/Runtime ) 用来渲染地图。两个 URL 都来自同一个 DJango 服务器,并且似乎工作正常。以下是网址(为便于理解):
<code>
JSON spec for map : http://localhost:8000/lydia2/Obama/20140211-20140410/heatmap.json
us_states.topo.json : http://localhost:8000/lydia2/us_states.topo.json
</code>
以下是模板:
<html>
<head>
<title>
TextMap2: The Multilingual Entity Search Engine
</title>
<script src="http://trifacta.github.io/vega/lib/d3.v3.min.js"></script>
<script src="http://trifacta.github.io/vega/lib/d3.geo.projection.min.js"></script>
<script src="http://trifacta.github.io/vega/lib/topojson.js"></script>
<script src="http://trifacta.github.io/vega/vega.js"></script>
<script type="text/javascript">
// parse a spec and create a visualization view
function parse(spec) {
document.write(spec);
vg.parse.spec(spec, function(chart) { chart({el:"#vis"}).update(); });
}
//parse('Obama/20140211-20140410/heatmap.json')
</script>
</head>
<body>
<div align='center'>
<form action="{% url 'lydia2:analytics' %}" method="post">
{% csrf_token %}
Entity: <input type="text" name="entity" id="entity" {% if entity %} value="{{entity}}"{% endif %}/>
Start Date: <input type="text" name="start_date" id="start_date" {% if start_date %} value="{{start_date}}"{% endif %}/>
End Date: <input type="text" name="end_date" id="end_date" {% if end_date %} value="{{end_date}}" {% endif %}/>
<input type = "submit" value="Search" />
</form>
</div>
<div align='center'>
{% if entity %}<p><h2>{{entity}}</h2></p>{% endif %}
{% if search_result %}<p><strong>{{ search_result }}</strong></p>{% endif %}
{% if entity and start_date and end_date %}
<p>
<image src="{% url 'lydia2:frequency' entity start_date end_date %}" />
</p>
<p>
<div id="vis"></div>
<img src="simple-pattern.jpg" onload="parse('Obama/20140211-20140410/heatmap.json');this.parentNode.removeChild(this);" />
</p>
{% endif %}
</div>
</body>
根据服务器日志,确实调用了“parse”函数(两个 URL 都有 GET 调用),但是地图的图像没有被渲染。
我在这里错过了什么吗?
PS:我在不同的 SimpleHttpServer 上单独尝试了这个 javascript,它可以工作!