业务场景:
1.可在地图上选点,创建商家
2.可根据用户当前位置,把附近的商家按距离排序展示
使用elasticsearch可以实现坐标排序,但安装维护和操作比较麻烦,所以选择了腾讯地点云,把地点的信息存在地点云上,然后请求地点云接口实现该需求
代码封装
import requests
class TencentMap:
api_key = ""
table_id = ""
r_url = {
"create": "https://apis.map.qq.com/place_cloud/data/create", # 创建
"update": "https://apis.map.qq.com/place_cloud/data/update", # 更改
"delete": "https://apis.map.qq.com/place_cloud/data/delete", # 删除
"get_list": "https://apis.map.qq.com/place_cloud/data/list", # 获取所有数据
"address_to_location": "https://apis.map.qq.com/ws/geocoder/v1/", # 地址转坐标
"location_to_address": "https://apis.map.qq.com/ws/geocoder/v1/", # 坐标转地址
"search_nearby": "https://apis.map.qq.com/place_cloud/search/nearby", # 搜索圆形区域
"search_region": "https://apis.map.qq.com/place_cloud/search/region", # 搜索省市县
"search_contain": "https://apis.map.qq.com/place_cloud/search/contain", # 判断区域
"search_rectangle": "https://apis.map.qq.com/place_cloud/search/rectangle"
}
@classmethod
def __get(cls, url, params, **kwargs):
p = {
"key": cls.api_key,
"table_id": cls.table_id,
}
p.update(params)
f = ""
count = 1
for key, value in kwargs.items():