验证地址转经纬度的方法
坐标拾取器
POI关键词搜索和地理编码的区别:
其他API可以自行研究。
1 POI关键词搜索是建筑正中心
搜索服务API是一类简单的HTTP接口,提供多种查询POI信息的能力,其中包括关键字搜索、周边搜索、多边形搜索、ID查询四种筛选机制。
官方文档
https://lbs.amap.com/api/webservice/guide/api/search#text
接口连接:
https://restapi.amap.com/v3/place/text?parameters
实例:
输入
{'province': '陕西省',
'city': '西安市',
'spiderDate': '2022-08-11',
'projectName': '李家村万达广场',
'referencePrice': '12378',
'region': '碑林区',
'priceMonth': '2022-07}
def Gaode_address_transform_longitude_and_latitude_key(object1):
url='https://restapi.amap.com/v3/place/text?parameters'
params = {'key': '填自己的',
'keywords':object1["city"] + object1["region"] +object1["projectName"],#避免重名
"citylimit":True,
"children":1,
#"types":190000,#|190107|190700|190600,#190107 地名地址信息 普通地名 街道级地名
'city':object1["city"]}
res1 = requests.get(url, params)
jd = json.loads(res1.text)
try:
coords =jd["pois"][0]['location'].split(",")
center = {"lng": coords[0], "lat": coords[1]}
except:
print(jd)
# 用地理编码转剩下转不到的
Gaode_address_transform_longitude_and_latitude(object1)#{"lng": "--", "lat": "--"}
#center = {"lng": "--", "lat": "--"}#
return center
根据需求用types参数
查询POI类型可选值:分类代码 或 汉字(若用汉字,请严格按照附件之中的汉字填写)
分类代码由六位数字组成,一共分为三个部分,前两个数字代表大类;中间两个数字代表中类;最后两个数字代表小类。
若指定了某个大类,则所属的中类、小类都会被显示。
例如:010000为汽车服务(大类)
010100为加油站(中类)
010101为中国石化(小类)
010900为汽车租赁(中类)
010901为汽车租赁还车(小类)
当指定010000,则010100等中类、010101等小类都会被包含,当指定010900,则010901等小类都会被包含。
下载POI分类编码和城市编码表在官方文档搜“POI分类编码”
官方文档
https://lbs.amap.com/api/webservice/guide/api/search#text
若不指定city,返回的内容为城市列表以及此城市内有多少结果符合要求。
当您的keywords和types都是空时,默认指定types为120000(商务住宅)&150000(交通设施服务)
地理编码是大门口
官方文档
https://lbs.amap.com/api/webservice/guide/api/georegeo/
地理编码:将详细的结构化地址转换为高德经纬度坐标。且支持对地标性名胜景区、建筑物名称解析为高德经纬度坐标。
结构化地址举例:北京市朝阳区阜通东大街6号转换后经纬度:116.480881,39.989410
地标性建筑举例:天安门转换后经纬度:116.397499,39.908722
逆地理编码:将经纬度转换为详细结构化的地址,且返回附近周边的POI、AOI信息。
例如:116.480881,39.989410 转换地址描述后:北京市朝阳区阜通东大街6号
实例
输入
{'province': '陕西省',
'city': '西安市',
'spiderDate': '2022-08-11',
'projectName': '李家村万达广场',
'referencePrice': '12378',
'region': '碑林区',
'priceMonth': '2022-07}
def Gaode_address_transform_longitude_and_latitude(object0):
url = 'https://restapi.amap.com/v3/geocode/geo'
# url = 'https://restapi.amap.com/v3/geocode/geo'
# 将两个参数放入字典
params = {'key': '填自己的',
'address': object0["city"] + object0["region"] + object0["projectName"],
'city': object0["city"]}
res = requests.get(url, params)
# 输出结果为json,将其转为字典格式
jd = json.loads(res.text)
# 经纬度
coords = jd['geocodes'][0]['location'].split(",")
center = {"lng": coords[0], "lat": coords[1]}
return center
效果地址转经纬度全转,但不是建筑中心