根据我的django模型,我有带有geojson字段的TravelPoint模型 但我想从点到点绘制一个字符串线(Travel.Route模型)
# 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>
答案 0 :(得分:0)
IMO,你打破了一些Django MVC规则:你有一个返回HTML的方法/属性,你最好使用django视图。
关于你的JS / Python代码,我会分两步完成: