使用 django.contrib.gis.measure.D 时出现 GeoDjango dwithin 错误

2023-12-13

首先:RHEL 6.5 上的 Python 2.7.6、Django 1.6.5、Postgres 9.3.4、PostGIS 2.1.3、psycopg2 2.5.3

这是相关模型:

class Location(models.Model):
    name = models.CharField(max_length=255)
    geometry = models.MultiPolygonField(blank=True, default=None, null=True)
    objects = models.GeoManager()  # override the default manager with a GeoManager instance
    parent = models.ForeignKey('self', blank=True, default=None, null=True)

    def __unicode__(self):
        return self.name

这个查询应该有效根据文档:

touching_locations = Location.objects.filter(geometry__dwithin=(location.geometry, D(km=5)))
logging.debug(type(touching_locations))
logging.debug(len(touching_locations))

但事实并非如此。第一个调试调用有效,但第二个调用抛出ValueError:

<class 'django.contrib.gis.db.models.query.GeoQuerySet'>
ValueError: Only numeric values of degree units are allowed on geographic DWithin queries.

如果我通过改变做一个小小的改变D(km=5) to 5:

touching_locations = Location.objects.filter(geometry__dwithin=(location.geometry, 5))
logging.debug(type(touching_locations))
logging.debug(len(touching_locations))

突然间它就起作用了。我得到的输出是这样的:

<class 'django.contrib.gis.db.models.query.GeoQuerySet'>
54

有谁知道为什么这不能按预期工作?这可能是一个错误,还是我犯了一个我没有看到的错误?

[edit]
我认为这可能是 Django 的一个错误。我继续开票here。一旦我弄清楚正确的解决方法是什么,我将在此处添加答案。


我收到了对我提交的票证的回复(https://code.djangoproject.com/ticket/22830)。显然,我发现了一个看似没有记录(或者至少没有明确记录)的问题dwithin查询有Distance对象。一位开发者这样说:

由于您的对象位于地理坐标中(几何字段默认 到 WGS84),您必须提供以度为单位的距离。这是 例如匹配 PostGIS 定义:

boolean ST_DWithin(几何 g1, 几何 g2, 双精度 距离_of_srid);

distance_of_srid 是 WGS84 的度数。所以 5 适合你的 例如表示 5 度,而不是 5 公里!

看起来他们将澄清文档以使这一点更加清晰(太棒了!)。

由于我想要的是 5km,所以我需要将 5km 转换为度。 1度约为111.325公里。因此,1公里=1/111.325度。因此,5 公里约为 0.0449 或约 0.05 度。所以我只需要把我的电话改成这样:

touching_locations = Location.objects.filter(geometry__dwithin=(location.geometry, 0.05))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 django.contrib.gis.measure.D 时出现 GeoDjango dwithin 错误 的相关文章

  • 检查 postgres 复制状态

    有人可以建议检查 postgresql 复制状态的步骤以及如何确定复制是否未正确进行吗 我们在 pgsql9 0 和 pgsql9 4 中使用流复制 我通常使用以下 SQL 查询来检查 Postgres v11 的状态 关于主人 selec
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 如何替换 pandas 数据框列中的重音符号

    我有一个数据框dataSwiss其中包含瑞士城市的信息 我想用普通字母替换带有重音符号的字母 这就是我正在做的 dataSwiss Municipality dataSwiss Municipality str encode utf 8 d
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 如何让 Django 和 ReactJS 协同工作?

    New to Django and even newer to ReactJS I have been looking into AngularJS and ReactJS but decided on ReactJS It seemed
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • 在 postgres 查询中使用列表

    我有一个动态列表 list a b c d 所以长度可能会改变 我想在查询中比较这些列表值 select from student where name in all the list values 我想将列表值传递到此查询中 我怎样才能做
  • Django admin - 更改权限列表

    是否可以更改用户编辑页面中的权限列表 我不想显示所有权限 例如管理日志条目或身份验证组等 如何修改主查询集以排除其中的某些查询集 我的想法来自这个话题 https groups google com forum topic django u
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • SlowCheetah 在构建后事件后执行

    我使用 SlowCheetah 来转换我的 app configs 我有一个多项目解决方案 其中一个项目执行构建后事件 其中 bin 的输出被复制到其他地方 我发现 SlowCheetah 在构建后事件之后进行转换 因此我复制的 app c
  • 使用 C# 检查 Windows 7 上是否启用了 IPv6

    我正在尝试使用 C 编写一个程序作为我公司的多功能工具 我们希望在此工具中完成的一件事是确定 IPv6 是否已启用 绑定到我们的 Windows 7 计算机上的局域网连接网络适配器 我并不是在寻找它的地址 只是想知道它是否在该适配器上启用或
  • Silverlight 4 内存泄漏

    我有一个 Silverlight 4 应用程序 它有一个泄漏的 ViewModel 类 我已经通过在我的 ViewModel 类型上使用 WinDbg 和 gcroot 命令确认了这一点 我无法查明内存泄漏的确切原因 但尝试在关闭相应视图时
  • JpaRepository 上的 @PreAuthorize

    我希望为我的 REST 服务实现基于角色的安全性 我正在使用 spring data rest 并配置了JpaRepository像这样 Repository RestResource path changesets rel changes
  • ECDSA 和 ECDH 可用于单声道吗?

    这个问题几乎概括了这一点 ECDSA 和 ECDH 可用于单声道吗 如果不是 他们会吗 不 是他们无法使用Mono BCL 内部 也不是 Xamarin iOS 或 Xamarin Android 每个都有一个错误报告 ECDSA and
  • 是否可以同时显示新旧页面?

    我正在尝试为 smoothstate 建立这样的效果 http tympanus net Development PageTransitions 特别是 房间 过渡 我陷入尝试同时显示两个页面的困境 我希望新内容将旧内容推离屏幕 接下来是很
  • 我怎样才能在oracle中执行这个查询

    您能否指导我在 Oracle 中执行与此查询等效的操作 SELECT SQL CALC FOUND ROWS FROM tableName SELECT FOUND ROWS as cnt Thanks 对于 Oracle 9i 请使用 S
  • 抽象超类 scala 中的断言创建 NPE

    在 REPL 中输入以下代码 abstract class A val aSet Set Int require aSet contains 3 class B extends A val aSet Set 4 5 6 new B 给出一个
  • MatLab 函数将点从最大或最小点向左或向右移动

    我试图找出一个函数 该函数将找到一个距离我在 matlab 数组中设置的最小值和最大值 x 个点的点 可以说我愿意max data row 1 row 2 column 这给了我一个观点 我想找到对应于该值左侧和右侧 4 个点的值 所以可以
  • 在 iphone-sdk 中获取 facebook 点赞数

    我不想显示 喜欢 按钮 我只想获取特定链接被喜欢的计数 只需继续 没有 喜欢 按钮 没有对话 没有 只需对 Graph API 执行一个简单的 url 请求即可 http graph facebook com FULL URL Exampl
  • 将 pandas DataFrame 写入 CSV 文件

    我在 pandas 中有一个数据框 我想将其写入 CSV 文件 我正在使用以下方法执行此操作 df to csv out csv 并出现以下错误 UnicodeEncodeError ascii codec can t encode cha
  • elf 头中的 p_align 是什么?

    我正在学习逆向工程 readelf something Program Headers Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align PHDR 0x000040 0x00000
  • XTS 替换错误 NextMethod(.Generic):要替换的项目数

    我现在正在与 xts 作斗争 我有一个 XTS 对象 并且我正在尝试用新的集合替换特定日期的数据 但我不断遇到替换长度的问题 即使我确信它们是相同且无缺失数据 有任何想法吗 我做了一个虚拟示例来演示我的问题 R gt test1 xts c
  • javascript 在 IE 中很慢,但在 Firefox 中很快

    使用 IE 访问此页面非常慢 但使用 Firefox 访问速度要快得多 特别是当我增加人的节点数量时 任何想法有什么问题吗 http thejit org static v20 Jit Examples RGraph example1 ht
  • sql 将空值替换为其他列中的值

    我想将所有具有 NULL 值的值替换为同一行另一列中的值 我尝试过不同的sql语句 但没有成功 Regards 如果您想更新 请执行以下操作 update t set col1 col2 where col1 is null 如果您只想进行
  • 查询获取父记录和子记录,然后是mysql中的下一个父子记录

    我在以下格式的数据Names数据库中的表 ID Name ParentID 1 Parent 1 0 2 Parent 2 0 3 Parent 1 Child 1 1 4 Parent 2 Child 1 2 5 Parent 1 Chi
  • Google Maps API v2 ScrollView 内的 SupportMapFragment - 用户无法垂直滚动地图

    我试图将 Google 地图放入滚动视图中 以便用户可以向下滚动其他内容来查看地图 问题是这个滚动视图吞噬了所有垂直触摸事件 因此地图的 UI 体验变得非常奇怪 我知道在谷歌地图的V1中 您可以覆盖onTouch或setOnTouchLis
  • Dotty 无法推断采用抽象类型的类型参数特征的泛型 Scala 函数的结果类型

    简单的价值层次结构 想象一下这个简单的特征Value其中每个实现类都有一个value某种类型的T trait Value type T def value T 我们有两个不同的实现类代表Int and String值分别 case clas
  • “静态最终”直接分配到哪里?年轻一代、老一代还是烫发一代?

    静态最终 是否直接分配到年轻一代或老一代或永久一代 我想随着时间的推移 它很可能会进入旧代 如果它被分配在 Perm gen 中 那么当在 Perm Gen 中进行类卸载时 它会被垃圾收集吗 静态最终 是否直接分配到年轻一代或老一代或永久一
  • 使用 django.contrib.gis.measure.D 时出现 GeoDjango dwithin 错误

    首先 RHEL 6 5 上的 Python 2 7 6 Django 1 6 5 Postgres 9 3 4 PostGIS 2 1 3 psycopg2 2 5 3 这是相关模型 class Location models Model