lbs.client.amap.api.geocode 源代码

# encoding: utf-8
from __future__ import absolute_import, unicode_literals

from optionaldict import optionaldict

from . import base


[文档]class Geocode(base.AmapBaseApi): """ 地理/逆地理编码 https://lbs.amap.com/api/webservice/guide/api/georegeo """
[文档] def geo(self, address, city=None, batch=None): """ 地理编码 :param address: 结构化地址信息 :param city: 指定查询的城市 :param batch: 批量查询控制 """ if isinstance(address, (list, tuple, set)): address = "|".join(address) if len(address) > 1 and batch is None: batch = True data = optionaldict({ "address": address, "city": city, "batch": batch, }) ret_field = 'geocodes' if batch else 'geocode' return self._get("/v3/geocode/geo", data, result_processor=lambda x: x[ret_field])
[文档] def regeo(self, location, poitype=None, radius=1000, extensions='base', batch=None, roadlevel=None, homeorcorp=0): """ 逆地理编码 :param location: 经纬度坐标 :param poitype: 返回附近POI类型 :param radius: 搜索半径 :param extensions: 返回结果控制 :param batch: 批量查询控制 :param roadlevel: 道路等级 :param homeorcorp: 是否优化POI返回顺序 """ location, num = self._parse_location(location) if num == 0: raise ValueError("location解析失败") if num > 1 and batch is None: batch = True data = optionaldict({ "location": location, "poitype": poitype, "radius": radius, "extensions": extensions, "batch": batch, "roadlevel": roadlevel, "homeorcorp": homeorcorp, }) ret_field = 'regeocodes' if batch else 'regeocode' return self._get("/v3/geocode/regeo", data, result_processor=lambda x: x[ret_field])