2

我正在使用 GeoDjango 进行 GIS 项目,为此我必须使用 OpenLayers 渲染地图。我的代码片段接受 JSON 在 OpenLayers 中创建图层。我想将我的 GeoDjango 的“管理”模型作为 JSON 发送到我的 HTML 页面,并在 HTML 上接收它作为 JSON 以呈现我的地图。

请就如何在 OpenLayers 地图中渲染我的 GeoDjango 模型提出另一个建议。

我的管理模式:

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,请参阅

好吃的派

Django REST 框架

于 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 回答