Привет, друзья GeoDjango и GeoJSON serlizer. Я после официального GeoDjango Учебника: https://docs.djangoproject.com/en/1.8/ref/contrib/gis/tutorial/Geodjango GeoJSON Сериализатор геометрия всегда 'null'
Так что в конце концов у меня есть база данных PostgreSQL + PostGIS полных стран, их name
, их iso3
кода и так далее. И особенно их геометрия в mpoly
как MultiPolygon (хранится в wkb). Я хочу получить контингенты из базы данных с помощью GeoDjango. Я борюсь с этим.
я могу получить свойства одного объекта, один за другим:
from django.http import HttpResponse
from django.shortcuts import render
from django.core.serializers import serialize
from AppName.models import WorldBorder
[...]
WorldBorder.objects.filter(name='Germany')[0].name # "Germany"
WorldBorder.objects.filter(name='Germany')[0].iso3 # "DEU"
WorldBorder.objects.filter(name='Germany')[0].mpoly.geojson # long & correct output
Таким образом, данные корректно сохраняются в базе данных, и я могу получить свойства объектов. Теперь я хочу получить полный файл geojson для страны. Джанго создал сериалайзер GeoJSON для этого: https://docs.djangoproject.com/en/1.8/ref/contrib/gis/serializers/
Если я использую его описанным способом:
serialize('geojson',
WorldBorder.objects.filter(name='Germany'),
geometry_field='mpoly',
fields=('name',)
)
я получаю этот выход:
u'{"type": "FeatureCollection", "crs":{"type": "name", "properties": {"name": "EPSG:4326"}},
"features": [{"geometry": null,"type": "Feature",
"properties":{"name": "Germany" }}]}'
, что сводит меня с ума является "geometry": null
Таким образом, он сериализует все, но не геометрию. Почему это? Что я делаю не так? И особенно? Как получить геометрию из моей базы данных PostGIS в формате GeoJSON с помощью GeoDjango? Любая помощь приветствуется.
Спасибо :)
Запуская эту проблему, вы ее разрешили? – artsim