Javascript 如何使用django geojson从点生成stringline
根据我的django模型,我有带有geojson字段的TravelPoint模型 但我想从点到点的旅行中画一条线。路线模型Javascript 如何使用django geojson从点生成stringline,javascript,python,django,leaflet,geojson,Javascript,Python,Django,Leaflet,Geojson,根据我的django模型,我有带有geojson字段的TravelPoint模型 但我想从点到点的旅行中画一条线。路线模型 # coding: utf-8 from djgeojson.fields import PointField, LineStringField from django.db import models from ckeditor.fields import RichTextField class TravelPoint(models.Model): na
# coding: utf-8
from djgeojson.fields import PointField, LineStringField
from django.db import models
from ckeditor.fields import RichTextField
class TravelPoint(models.Model):
name = models.CharField(max_length=255)
geom = PointField()
description = RichTextField()
def __unicode__(self):
return unicode(self.name)
@property
def popupContent(self):
return '<h3>{}</h3><p>{}</p>'.format(
self.name.encode('utf-8').strip(),
self.description.encode('utf-8').strip())
class TravelRoute(models.Model):
geom = LineStringField()
我会考虑定义一些抓取点的方法,并将其放在geojson行字段中,但我的知识贫乏阻止了我
另一种在javascript中画线的方法,但也很难理解
在模板中:
<script type="text/javascript">
var collection = {{ points|geojsonfeature:"popupContent"|safe }};
function onEachFeature(feature, layer) {
if (feature.properties && feature.properties.popupContent) {
layer.bindPopup(feature.properties.popupContent);
}
}
function map_init(map, options) {
L.geoJson(collection, {onEachFeature: onEachFeature}).addTo(map);
}
</script>
在我看来,您违反了一些Django MVC规则:您有一个返回HTML的方法/属性,最好使用Django视图 关于您的JS/Python代码,我将分两步完成: 首先,在Django中实现一个视图,该视图使用HttpResponse返回geojson负载,并在Django 1.7中指定mimetype或使用JsonResponse 第二,在JS中,使用Ajax从以前实现的Django视图获取响应,然后在JS回调函数中调用L.geoJson