2

私はGeoDjangoを使用してGISプロジェクトに取り組んでおり、このためにOpenLayersを使用してマップをレンダリングする必要があります。私のスニペットはJSONを受け入れてOpenLayersにレイヤーを作成します。GeoDjangoの「管理」モデルをJSONとしてHTMLページに送信し、HTMLでJSONとして受信してマップをレンダリングしたいと思います。

私のGeoDjangoモデルをOpenLayersマップでレンダリングする方法についても別の提案をしてください。

私の管理モデル:

class UPAdministrative(models.Model):
    name=models.CharField(max_length=51)
    admin_leve=models.CharField(max_length=5)   
    ls=models.LineStringField()
    objects=models.GeoManager()

    def __unicode__(self):
        return self.name
4

2 に答える 2

1

モデルにCRUDを実装し、HTMLで使用する必要があると思います。ジオオブジェクトを表示するために、私はdjango管理ページのみを使用しました。CRUDを作成するには、を参照してください。

tastypie

DjangoRESTフレームワーク

于 2012-08-19T08:17:51.150 に答える
0

モデルを、ビュー内のOpenLayersでサポートされている形式にシリアル化できます。たとえば、このビューはジオメトリのみをgeojsonとして送信します。

from django.http import HttpResponse
from models import UPAdministrative

def upadministrative_geometry_json(request, upadmin_id):
    up_admin = UPAdministrative.objects.get(pk=upadmin_id)
    geojson = up_admin.ls.geojson
    return HttpResponse(geojson, mimetype='application/json')

GeoDjangoのカスタムビューでGeoQuerySetの空間データをレンダリングするという質問には、データをOpenLayersと統合する方法のより詳細な例があります。

于 2012-08-19T18:17:49.437 に答える