如何在geodjango中转换英里公里
Posted
技术标签:
【中文标题】如何在geodjango中转换英里公里【英文标题】:How convert miles km in geodjango 【发布时间】:2021-10-07 17:57:24 【问题描述】:我的这个视图可以正常工作,但我发现很难以公里为单位显示结果。我计算了两点之间的距离,但我得到的结果以米为单位,但我想要以公里为单位。
vews.py
from django.contrib.gis.db.models.functions import Distance
class SearchResultsView(generic.TemplateView):
template_name = "search.html"
def get_context_data(self, **kwargs):
context = super(SearchResultsView, self).get_context_data(**kwargs)
query = self.request.GET.get('q', default='')
location_ = self.request.GET.get('location')
geolocator = Nominatim(user_agent="geo", timeout=10000)
location = geolocator.geocode(location_)
print(location)
new = Point(location.latitude, location.longitude, srid=4326)
context.update(
'job_listing': JobListing.objects.annotate(
distance=Distance("location_on_the_map", new)
).filter(Q(job_title__icontains=query)).order_by("distance")
)
return context
【问题讨论】:
这能回答你的问题吗? Django django.contrib.gis.db.models.functions.Distance to return values in feet instead of meters 【参考方案1】:根据geodjango docs ,您在 JobListing 查询集中注释的距离对象将为您进行转换 - 您只需参考 distance.km 或 distance.mi
【讨论】:
以上是关于如何在geodjango中转换英里公里的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Webfaction 上已经存在的 postgres 数据库上启用 GeoDjango?
作业:1.12假设一个跑步者1小时40分钟35秒 内跑了24英里。编写一个程序显示以每小时多少公里为单位的平均速度值(注意,1英里等于1.6公里。)
作业:1.12假设一个跑步者1小时40分钟35秒 内跑了24英里。编写一个程序显示以每小时多少公里为单位的平均速度值(注意,1英里等于1.6公里。)