我正在创建一个带有Google的geo应用程序,我收到了作为2个坐标的边界框:
我和PointField有个模特。
from django.contrib.gis.db import models
class Place(models.Model):
name = models.CharField(max_length=200)
address = models.CharField(max_length=200)
location = models.PointField()如何执行查询以获取边界框中的所有位置?
发布于 2012-02-27 20:23:12
假设"2坐标“是x,y元组,例如:
ne = (50.0, -90)
sw = (45.5, -95)您可以提取坐标并创建一个包围框元组:
xmin = sw[0]
ymin = ne[1]
xmax = sw[1]
ymax = ne[0]
bbox = (xmin, ymin, xmax, ymax)使用包围框几何,使用空间查找查询您的位置记录。
from django.contrib.gis.geos import Polygon
geom = Polygon.from_bbox(bbox)
queryset = Place.objects.filter(poly__contained=geom)发布于 2015-05-12 14:58:07
@泰勒的回答在许多方面都是错误的。正确的代码是:
ne = (latitude, longitude)
sw = (latitude, longitude)
xmin=sw[1]
ymin=sw[0]
xmax=ne[1]
ymax=ne[0]
bbox = (xmin, ymin, xmax, ymax)
from django.contrib.gis.geos import Polygon
geom = Polygon.from_bbox(bbox)
queryset = Place.objects.filter(poly__contained=geom)https://stackoverflow.com/questions/9466043
复制相似问题