python pymongo 经纬度坐标距离计算

python通过mongoDB判断某个经纬度的点是否在另一个经纬度点设定的某个半径范围内

import pymongo

mongodb_cli = pymongo.MongoClient("mongodb://192.168.1.205:12345")

reader_pos_list=[116.41799927,39.90894619]  # [经度,纬度]

mongodb_cli["db_name"]["col_name"].find({"key_name": {"$geoWithin": {"$centerSphere": [reader_pos_list, 1000/6378100]}}})


应用说明,在mongodb中建一个db_name的数据库,表名为col_name,表中包含字段key_name,key_name的值为list形式,存放经纬度[经度,纬度]

通过上面的语句可以实现,以reader_pos_list为圆心,1000米为半径的范围内,表col_name中,key_name字段经纬度的点在这个圆以内的所有结果。

1000/6378100表示从距离转换成弧度


mongodb_cli["db_name"]["col_name"].ensure_index([("key_name","2dsphere")])

mongodb_cli["db_name"]["col_name"].find({ "key_name" : { '$nearSphere' : reader_pos_list, "$maxDistance": 1000/6378100 } })

表中到reader_pos_list点的距离小于1000米的点


mongodb_cli["db_name"]["col_name"].ensure_index([("key_name","2dsphere")])

mongodb_cli["db_name"]["col_name"].find({ "key_name" : { '$nearSphere' : reader_pos_list, "$minDistance": 1000/6378100 } })

表中到reader_pos_list点的距离大于1000米的点

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值