0
リーフレットとPostgresql/PostGISを使用してDjangoアプリケーションを開発しています。 GeoJSON Feature Collectionオブジェクトを送信しているマップにMultiLineStringレイヤーを追加しようとすると、無効なオブジェクトエラーが発生します。最初に私のviews.pyで :Djangoシリアライザを使用したリーフレットマップにgeoJSONデータを追加するときに無効なオブジェクト
from geonode.geoloc.models import Transport
from django.template import RequestContext
from django.core.serializers import serialize
class LookupView(FormView):
template_name = 'geoloc/lookupresults.html'
form_class = LookupForm
def get(self, request):
return render_to_response('geoloc/lookup.html', RequestContext(request))
def form_valid(self, form):
# Get data
latitude = form.cleaned_data['latitude']
longitude = form.cleaned_data['longitude']
# Look up roads
roads = Transport.objects.all()[0:5]
roads_json = serialize('geojson', roads,
fields=('geom',))
# Render the template
return self.render_to_response({
'roads_json': roads_json
}, content_type = 'json')
私のテンプレート形式が有効である:私はhttp://geojsonlint.com/で(Djangoのシリアライザが送信する)にGeoJSONオブジェクトをテストしたとき、私は、オブジェクトこと
{% extends "geoloc/geoloc_base.html" %}
{% block content %}
{% load leaflet_tags %}
{% leaflet_js %}
{% leaflet_css %}
<div id="mapid" style="width: 600px; height: 400px;"></div>
<script>
var geojsonFeature = "{{ roads_json }}";
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'}).addTo(mymap);
var myroads = L.geoJSON().addTo(mymap);
myroads.addData(geojsonFeature);
</script>
{% endblock %}
実現
"crs": {
"type": "name",
"properties": {
"name": "EPSG:4326"
}
私が読んで、「古いスタイルのCRSのメンバーとはお勧めしません」ですので、次の行では無効です。上記の行を抽出しないようにシリアライザの出力をカスタマイズするか、それを成功させるための効率的な方法がありますか?