4

座標のセットを返して、マップ上にポイント/長方形を描画しようとしています。現在、私は Polymaps を使用していますが、openlayers に移行することを考えています。これには、私のような JavaScript 初心者にとってより明確な例があります。

座標のリストと、それぞれに特定の値を送信したいと考えています。また、同じjsonで座標のリストを多数送信することも探しています。それぞれに別の特定の値(時間)が含まれているため、マップ上で毎回異なるポイント/ポリゴンを表すことができます。

json を使用して 3 つの個別のリストを返すことができました。1 つは緯度用、もう 1 つは経度用、もう 1 つは各ポイントの値です。しかし、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>
4

1 に答える 1