2015-04-25 6 views
0

При сериализации модели как geojson (https://docs.djangoproject.com/en/1.8/ref/contrib/gis/serializers/), как вы можете передать первичный ключ?Django 1.8 Geojson

{"type": "FeatureCollection", "crs": {"type": "name", "properties": {"name": "EPSG:4326"}}, "features": [{"type": "Feature", "properties": 

Вы ожидали бы там быть функция идентификатор с использованием модели рк, основанные на стандарте GeoJSON, но это не так. Это также не передается в свойствах объекта.

Я всегда мог взломать его, добавив еще одно поле, то есть дубликат ПК, но должен пройти путь его прохождения.

Причина я использую в формате GeoJSON, потому что я хочу, чтобы передать координаты в Google Maps API, и если вы сериализации PointField как обычный JSON вы в конечном итоге с чем-то вроде:

"location": "SRID=4326;POINT (-0.1468187000000000 51.5052463000000031)" 

Maps API будет ожидать эти координаты (51.5052463000000031, -0.1468187000000000). Я мог бы получить эти координаты в этом формате с помощью JS, хотя, возможно?

Благодаря

ответ

0

В конце концов, я использовал JS для разбора нормального json. Беспокойство с geojson было больше неприятностей, что это стоило.

Вы будете иметь строку, как это ваш ответ JSON:

"location": "SRID=4326;POINT (-0.1468187000000000 51.5052463000000031)" 

Так вот что я сделал:

#grab your POINT field json string and save it somehow 
var coords = "location": "SRID=4326;POINT (-0.1468187000000000 51.5052463000000031)" 
# you'll need this regex 
var regex = /[+-]?\d+(\.\d+)?/g; 
# this gets rid of everything before the semi colon ';' 
coords = coords.split(";").pop(); 
# use the regex to return an array of floats 
coords = coords.match(regex).map(function(v) { return parseFloat(v); }); 
# set those floats to your lat long 
var latitude = coords[1]; 
var longitude = coords[0]; 
# PROFIT! 
console.log(latitude, longitude); 
0

я работал на что-то подобное нашло Django Rest Framework - GIS и Django Rest Framework полезного для этого.

+0

В конце концов, я просто в конечном итоге делает его в JavaScript. Кажется странным, что pk не существует, почему бы вам не хотеть этого? –

+0

Эй. Можете ли вы опубликовать, как вы это решили? У меня все еще есть ужасное время, пытаясь сериализовать geojson из двух моделей с многочисленными отношениями! – sammy88888888

+0

sammy88888888 Я добавил ответ с используемым JS. Сообщите мне, если это не имеет смысла, или если у вас возникли проблемы с доступом к JSON, и я попытаюсь помочь. –

Смежные вопросы