我正在尝试返回一组坐标以在地图上绘制点/矩形。目前我正在使用Polymaps,但我考虑转向openlayers,因为它有更清晰的示例,适合像我这样的JavaScript新手。
我想发送一个包含每个坐标特定值的坐标列表。我还希望在同一JSON中发送许多坐标列表,每个列表都有另一个特定值(时间),以便我可以表示每个时间的不同点/多边形。
我已经能够使用json返回3个分离的列表,一个用于纬度,一个用于经度,另一个用于每个点的值。但是,openlayers和Polymaps在其示例中使用GeoJson,这似乎是更明智的选择。
问题是,我不知道如何使用Django生成geoJson响应。我找到了django-geojson,但没有明确的示例来做我想要的事情,当然也没有返回不同时间的多个集合。
任何帮助吗?我也可以接受仅使用Json的方法。
现在我有什么:
我想发送一个包含每个坐标特定值的坐标列表。我还希望在同一JSON中发送许多坐标列表,每个列表都有另一个特定值(时间),以便我可以表示每个时间的不同点/多边形。
我已经能够使用json返回3个分离的列表,一个用于纬度,一个用于经度,另一个用于每个点的值。但是,openlayers和Polymaps在其示例中使用GeoJson,这似乎是更明智的选择。
问题是,我不知道如何使用Django生成geoJson响应。我找到了django-geojson,但没有明确的示例来做我想要的事情,当然也没有返回不同时间的多个集合。
任何帮助吗?我也可以接受仅使用Json的方法。
现在我有什么:
#views.py
from django.shortcuts import render_to_response
from django.template import RequestContext
import myproject.databasework as databaseWork
import json
def values(request):
gpsTime = 1043366400
pls = databaseWork.getValues(gpsTime)
latitudes = []
longitudes = []
values = []
for row in pls:
pointId = row[0]
value = row[2]
lat, lon = databaseWork.getCoords(pointId)
latitudes.append(lat)
longitudes.append(lon)
values.append(value)
jsonObject = {'latitudeList': json.dumps(latitudes),
'longitudeList': json.dumps(longitudes),
'valuesList': json.dumps(values)}
return render_to_response('mytemplate.html', jsonObject, context_instance=RequestContext(request))
这是html的一部分:
<script type="text/javascript">
var po = org.polymaps;
var map = po.map()
.container(document.getElementById("map").appendChild(po.svg("svg")))
.add(po.interact())
.center({lat: 46, lon: 10})
.zoom(4);
var svg = document.querySelector("svg.map");
svg.setAttribute("width", "100%");
svg.setAttribute("height", "100%");
map.resize();
map.add(po.image()
.url(po.url("http://{S}tile.cloudmade.com"
+ "/1a1b06b230af4efdbb989ea99e9841af" // http://cloudmade.com/register
+ "/20760/256/{Z}/{X}/{Y}.png")
.hosts(["a.", "b.", "c.", ""])));
// Get values from django response
var latitude = "{{ latitudeList }}";
var longitude = "{{ longitudeList }}";
var vpl = "{{ vplList }}";
// Draw circles
// Don't know how to do it with Polymaps yet. Example at http://polymaps.org/ex/cluster.html
</script>
GeoJson
? - themanatuf