我在 Django 中有一个距离查询,并打印了一个带几个小数点的距离。它以1023.40258027906 m的测量格式显示距离。我想让这个人类可读。我尝试使用 Decimal 但失败了,因为它不适用于测量对象。测量对象是带有 km、m、cm 等标签的距离对象。通过人性化,我的意思是不超过 2 或 3 个十进制数字。这些是从
from django.contrib.gis.measure import D
from django.contrib.gis.db.models.functions import Distance
这是用于生成距离测量的查询集。查询集:
queryset = Apartment.objects.filter(geom__distance_lte=(user_location, D(km=2))).annotate(distance=Distance('geom', user_location))
<style type="text/css">
ul{
list-style-type: circle;
margin:0px;
padding-left: 1em;
}
</style>
<head>
</head>
<body><strong>Nearby Apartments</strong>
{% if apartments %}
<ul>
{% for apartment in apartments %}
<li>
{{ apartment.apt_id }}: {{apartment.distance}}
</li>
{% endfor %}
</ul>
{% endif %}
</div>
</body>