检查两个lat-long是否足够接近而成为同一个Python

2024-04-27 00:41:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我在PostgreSQL中有一个表,其中包含某些地方的纬度和经度。我用flask-sqlalchemy查询postgres数据库。像这样:

query = db.session.query(Places).all  # Place is the Modal class

现在我在数据库中插入如下值:

 user = Places(request.json['key'], request.json['place_name'], 
              request.json['latitude'], request.json['longitude'])

 db.session.add(user)

我的主键是user.key,以避免重复记录。但我也希望避免插入那些lat/long与数据库中已经存在的记录足够接近的记录。你知道吗

例如:下面的lat/long出现在db28.704661, 77.101484中,现在我不希望db允许插入足够接近这个lat/long的值。 所以,当我尝试插入这个28.704420, 77.101167时,它应该会给我一个错误。 有一件事我认为是检查到小数点后三位小数,不允许输入少于六位小数地方。但是正如这一页的答案Accuracy of lat long所说,赤道附近1度的变化可以高达111公里,以此类推。我想可以找到更好的方法。你知道吗


Tags: key数据库jsondbrequestsessionpostgresql地方