首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NE,SW盒内的GeoDjango

NE,SW盒内的GeoDjango
EN

Stack Overflow用户
提问于 2012-02-27 13:46:18
回答 2查看 4.4K关注 0票数 12

我正在创建一个带有Google的geo应用程序,我收到了作为2个坐标的边界框:

  • 东北
  • 西南

我和PointField有个模特。

代码语言:javascript
复制
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()

如何执行查询以获取边界框中的所有位置?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-27 20:23:12

假设"2坐标“是x,y元组,例如:

代码语言:javascript
复制
ne = (50.0, -90)
sw = (45.5, -95)

您可以提取坐标并创建一个包围框元组:

代码语言:javascript
复制
xmin = sw[0]
ymin = ne[1]
xmax = sw[1]
ymax = ne[0]
bbox = (xmin, ymin, xmax, ymax)

使用包围框几何,使用空间查找查询您的位置记录。

代码语言:javascript
复制
from django.contrib.gis.geos import Polygon

geom = Polygon.from_bbox(bbox)
queryset = Place.objects.filter(poly__contained=geom)
票数 10
EN

Stack Overflow用户

发布于 2015-05-12 14:58:07

@泰勒的回答在许多方面都是错误的。正确的代码是:

代码语言:javascript
复制
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)
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9466043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档