我对地理数据和地理数据本身非常陌生。假设我有模特:
class Employee(models.Model):
name = models.CharField(max_length=30)
location = PointField()我想用leafletjs来显示地图,就像这样,http://leafletjs.com/examples/quick-start-example.html的位置上有员工的名字和标记。
现在说,德国各地都有雇员,但他们中的一些人远程工作,并被安置在一些尚未确定的地点。如果它们只位于德国,我就可以显示整个德国的地图,并根据坐标添加标记。问题是,如果有一名雇员在俄罗斯工作,我需要为所有其他国家/雇员展示俄罗斯等。
回到代码示例:
如果我的Employee模型queryset返回在德国和俄罗斯两个国家的三名员工,我想用标记来显示德国到俄罗斯的地图,而不是全世界的地图。如何从queryset计算这个最外面的坐标?或者,解决上述问题的其他方法可以是什么?
发布于 2016-05-27 15:51:05
传单应该能够根据你希望在地图上显示的点来计算地图的包围框。这也可以很容易地做到geodjango。大范围是你要找的东西。
bounds = Employee.objects.filter(some filter).extent()这在新版本中是不可取的,而是使用:
from django.contrib.gis.db.models import Extent
bounds = Employee.objects.filter(some filter).aggregate(Extent('point'))['point__extent']在LefletJS中:
var mymap = L.map('mapid').fitBounds(51.505, 51.507], [51.56, 50.98]], {padding: [10, 10]});https://stackoverflow.com/questions/37486393
复制相似问题