如何使用geodjango返回距某个点最近距离的记录?

2024-03-20

我正在使用 geodjango 并在我的数据库中有一个点的集合。为了获取某个区域内的点的查询集,我使用以下命令:

queryset = Spot.objects.filter(point__distance_lte=(origin, distance_m))

我的问题是我怎样才能只返回一个点(带有最短距离)从我已经通过的那一刻起?

EDIT

我应该提到我正在传递坐标并想要创建一个Point反对他们。然后将该点作为原点传递并对其进行过滤。 例如我尝试过:

from spots.models import *
from django.contrib.gis.geos import *

origin = Point(28.011030, -26.029430)
distance_m = 1000

queryset = Spot.objects.filter(point__distance_lte=(origin, distance_m))
for q in queryset:
    print q.distance

这段代码给了我这个错误:

Traceback (most recent call last):
  File "<console>", line 2, in <module>
AttributeError: 'Spot' object has no attribute 'distance'

有趣的是,如果我执行以下操作:

origin = Spot.objects.get(name='Montecasino').point
distance_m = 1000

for city in Spot.objects.distance(origin):
    print(city.name, city.distance)

(u'Design Quarter Parking', Distance(m=677.347841801))
(u'Montecasino', Distance(m=0.0))
(u'Fourways', Distance(m=1080.67723755))

最后从线索中收集到的解决方案GeoDjango 距离过滤器,其距离值存储在模型中 - 查询 https://stackoverflow.com/questions/9547069/geodjango-distance-filter-with-distance-value-stored-within-model-query这让我想到了这一点post http://blog.adamfast.com/2011/11/radius-limited-searching-with-the-orm/。从这些信息中我了解到你必须指定 the 测量参数在您的距离查询中。 您将在下面的代码片段中看到,我导入测量为 D。然后在查询中使用它。 如果您不指定它,您将收到此错误:

ValueError: Tuple required for `distance_lte` lookup type.

只取我使用的距离最近的点order_by('distance')[:1][0]

from spots.models import *
from django.contrib.gis.geos import *
from django.contrib.gis.measure import D

distance_m = 20000
origin = Point(28.011030, -26.029430)

closest_spot = Spot.objects.filter(point__distance_lte=(origin, D(m=distance_m))).distance(origin).order_by('distance')[:1][0]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用geodjango返回距某个点最近距离的记录? 的相关文章

  • Django ModelForm 不将数据保存到数据库

    Django 初学者在使用表单时遇到很多困难 是的 我已经完成了本教程并浏览了很多网络 我所拥有的是我在这里和其他网站上找到的内容的混合体 我正在使用 Python 2 7 和 Django 1 5 虽然官方文档很广泛 但它往往假设您已经了
  • 如何显示图像的其他图像是无

    经过我认真思考后 我只是不知道我的代码有什么问题以及如何修改它 问题是这样的 当用户插入 url 时 如果该 url 是指向 youtube 的链接 则需要显示 youtube 缩略图 如果该网址不是 YouTube 视频的链接 则需要显示
  • 如何在 Django 管理 UI 的文本区域中保留空行?

    我在一个对象上有一个字段 我使用 Django 3 2 管理 UI 中的文本区域来渲染它这段代码 https stackoverflow com a 431412 就像是 class MyObject models Model some t
  • 有皮茨时区列表吗?

    我想知道 Python 库 pytz 中时区参数的所有可能值是什么 怎么做 您可以列出所有可用的时区pytz all timezones In 40 import pytz In 41 pytz all timezones Out 42 A
  • “psycopg2 的构建轮子失败” - 使用 virtualenv 和 pip 的 MacOSX

    我第一次尝试与其他几个人一起制作一个网站 在尝试使用 Django Python VirtualEnv 时遇到了一个奇怪的错误 我已经找到了针对其他操作系统 例如 Ubuntu 的此问题的解决方案 但找不到针对 Mac 的任何好的解决方案
  • 如何将自定义迁移添加到外部 Django 应用程序

    我已经在我的自定义 Django 1 10 应用程序中对一些第三方应用程序进行了一些猴子修补 现在 当我尝试创建初始迁移时 它还会为这些外部应用程序生成迁移 但它将这些迁移放在我的 virtualenv 的站点中 packages 目录 无
  • Django 表单验证消息未显示

    我试图限制可以以表单上传的文件类型 大小和扩展名 该功能似乎有效 但未显示验证错误消息 我意识到if file size gt 4 1024 1024可能不是最好的方法 但我稍后会处理这个问题 这是 forms py class Produ
  • 为什么 S3 上的压缩文件返回 403 Forbidden 错误?

    我正在使用 django compressor 和 django storages 在 S3 上提供我的压缩文件 使用以下说明 http django compressor readthedocs org en latest remote
  • Django 的登录代码

    谁能给我一些带有模板代码的示例代码来创建 Django 登录 Thanks 包含示例登录模板在文档中 https docs djangoproject com en stable topics auth default module dja
  • @monthly cron 作业不可靠

    我们的客户希望我们每月创建一份报告 过去 我们使用 monthly cron 作业来完成此任务 但这并不可靠 服务器可能会在这一分钟内宕机 Cron 不会重新运行这些作业 如果服务器已启动 此时数据库可能无法访问 如果服务器已启动且数据库已
  • Django ModelForm 验证失败,没有错误

    好吧 我已经盯着这几个小时试图弄清楚发生了什么 但无济于事 我正在尝试使用 instance 关键字创建一个 ModelForm 将其传递给一个现有的模型实例 然后保存它 这是 ModelForm 在我试图找出此问题的原因时 从原始版本中删
  • 引发 404 并继续 URL 链

    我有一个像这样的 URL 模式 urlpatterns url r list titles name list url r P
  • 过滤 Django 管理选择框的模型结果

    我今天刚开始使用 Django 到目前为止发现做简单的事情相当困难 我现在正在努力解决的是过滤状态类型列表 StatusTypes 模型是 class StatusTypes models Model status models CharF
  • Django,无法分配 None,不允许空值

    我有这个模型 py import datetime from django db import models from tinymce import models as tinymce models from filebrowser fie
  • Django Social Auth:从 linkedin、twitter 和 facebook 获取电子邮件

    我正在使用 Django Social auth api 通过社交帐户登录 在这里 我想从社交帐户获取电子邮件地址并将其存储在我的数据库表中 可以从帐户中检索名字和姓氏 但无法检索电子邮件地址 个人资料图片 请分享您从社交帐户检索这些详细信
  • 当 DetailView 遇到时更新模型字段。 [姜戈]

    我有一个类似的 DetailViewviews py views py class CustomView DetailView context object name content model models AppModel templa
  • django管理员登录后重定向到另一个页面

    我正在 Django 中制作一个自定义管理页面 我不想重新发明轮子 因此想使用 Django 管理登录表单让员工登录并随后将他们重定向到 my url 但是 我无法找到在 admin 成功登录后将用户重定向到自定义网址的方法 因为我偶然发现
  • 无限递归,同时扩展管理员的应用程序change_form模板

    我有以下模板template admin change form html extends admin change form html block extrahead include dojango base html block doj
  • 尝试从 Django 模板更改语言时出现问题

    我需要包含两个按钮或链接以允许用户在英语和西班牙语之间更改语言 我读了the docs https docs djangoproject com en 1 5 topics i18n translation the set language
  • Django 自定义 UserManager 中的 self.model()

    所以 我对 Django 还很陌生 尽管我的代码在遵循 Django 文档 在 Django 中自定义身份验证 之后工作 但我不明白他们的示例中的 self model 实际如何工作 它来自哪里以及它如何与 自己 这是在文档底部找到的示例

随机推荐

  • 使用 dapper 查询空间数据

    我找到了一些相关的问题 https stackoverflow com questions 18088169 dapper spatial geography type 但作者放弃了 继续使用存储过程来进行 映射 这实际上是一个延续问题he
  • 如何使用 Laravel Passport 生成短令牌?

    我使用 Laravel Passport 和密码授予模式 我发现它生成的访问令牌很长 如下所示 token type Bearer expires in 31536000 access token eyJ0eXAiOiJKV1QiLCJhb
  • 没有 元素的 selenium 文件上传

    我正在尝试使用 selenium python 上传我的简历here https boards greenhouse io robinhood jobs 996796 app 在简历 简历附件部分下 当我检查 Attach 元素时 它显示为
  • java.lang.OutOfMemoryError:为 ChunkPool::allocate 请求 32756 字节。交换空间不足?

    我正在使用通过 WebLogic 10 3 部署在 HP 服务器上的 java 应用程序 版本信息 WebLogic Version 10 3 OS Version B 11 23 java version java version 1 6
  • 为什么这个工厂返回 $$state 对象而不是 response.data?

    所以我在服务器中有一个对象集合 我想在页面加载时填充 ng repeat 我创建了一个工厂 它从服务器上的资源中获取列表 如下所示 app factory objectArray http function http This is ret
  • 在 Elasticsearch 中搜索所有嵌套子级与给定查询匹配的对象

    给定一个具有以下映射的对象 a properties id type string b type nested properties key type string 我想检索该对象的所有实例 其中所有嵌套子对象都与给定查询匹配 例如 假设我
  • 如何使用 MATLAB 从 WEKA 检索类值

    我正在尝试使用 MATLAB 和 WEKA API 从 WEKA 检索类 一切看起来都很好 但类始终为 0 有什么想法吗 我的数据集有 241 个属性 将 WEKA 应用于该数据集我得到了正确的结果 创建第一个训练和测试对象 然后构建分类器
  • 是/否 - 有没有办法用纯 SVG 工具改进鼠标拖动?

    所以我花了一些时间尝试纯 无外部库 SVG 元素拖动 一般来说 一切正常 但是对于快速移动的鼠标来说存在一个令人讨厌的问题 当用户将可拖动的 SVG 元素靠近其边缘时 然后拖动 鼠标移动 这样的可拖动速度太快 鼠标 失去 可拖动 这里更详细
  • 带有 Picturebox 的 MouseWheel 事件?

    我想将鼠标悬停在图片框 或所有图片和主窗体 上并使用鼠标滚轮滚动 然而我没有运气 我编写了 pictureBox1 MouseWheel 并检查了增量 我在它 0 时设置了一个断点 到目前为止 无论我做什么 我都无法发生任何事情 我也尝试过
  • 在 UI-Grid 标题中实现多列分组有更好的方法吗?

    我尝试使用以下方法在 UI Grid 的列标题级别实现多列分组 我遵循的步骤 包括 UI 网格的以下标题单元格模板以及另一个 UI 网格行 div class ui grid header custom ui grid header div
  • 在动态创建的 Web 应用服务中添加自定义域

    我使用 REST API 创建了 azure Web 应用程序 是否有任何选项可以使用rest api 自定义域映射 通过下面的链接 我创建了新的网络应用服务 https learn microsoft com en us rest api
  • Ionic 3 启用单页滑回功能

    我已在根组件和模块配置中全局禁用 向后滑动
  • 替换三元运算中已弃用的“define(@array)”

    我有以下需要更正的代码 如defined array 在最新的 Perl 中已弃用 my inputs defined padSrc gt inouts padSrc gt inouts defined padSrc gt inputs p
  • 从“void*”到“unsigned char*”的转换无效

    我有以下代码 void buffer operator new 100 unsigned char etherhead buffer 尝试编译时 我收到该行的以下错误 error invalid conversion from void t
  • 上下移动 ListViewItems

    我有一个 ListView WinForms 我想通过单击按钮来上下移动项目 要移动的项目是已检查的项目 因此 如果选择了第 2 6 和 9 项 当我按下向上移动按钮时 它们将变为 1 5 和 8 并且这些位置上的项目将向下移动一步 我觉得
  • 基于标签的 SQL 查询

    我已经有一段时间没有做过任何 SQL 了 我不确定这个问题是否有一个简单的解决方案 我也有点菜鸟 我正在尝试构建一个图像库 允许用户使用标签来搜索图像 然后单击其他标签来优化搜索并减少结果数量 但我在所涉及的查询方面遇到了大问题 这是我当前
  • 从 firebase Swift 加载聊天

    我目前正在做一个聊天信使 我能够检索我发送给其他用户的所有消息 但无法检索他们发送的任何消息 我用来加载消息的代码是 func loadMsg let toId user id let fromId Auth auth currentUse
  • CMake 不再找到静态 Boost 库

    我正在开发一个依赖 Boost 的大型 C 项目 该项目使用 CMake 在各种平台上构建 在我的 Windows 计算机上 我使用 CMake 2 8 9 Visual Studio 2010 和 Boost 1 50 0 从源代码构建
  • 从 Openlayers 3 视口获取所有功能

    我试图找出 Openlayers 3 中图层上可见的所有功能 视口 如果我向地图添加点击事件 我可以找到一个功能 如下所示 但我无法找到视口中可见的所有功能 有人可以帮忙解决这个问题吗 map on click function evt v
  • 如何使用geodjango返回距某个点最近距离的记录?

    我正在使用 geodjango 并在我的数据库中有一个点的集合 为了获取某个区域内的点的查询集 我使用以下命令 queryset Spot objects filter point distance lte origin distance