예제 #1
0
def get_location_by_lon_and_lat(lon, lat):
    """
    根据经纬度查询地址

    文档地址 http://lbs.amap.com/api/webservice/guide/api/georegeo/#regeo
    :param lon:
    :param lat:
    :return: ADCODE,省,市,县,屯,详细地址
    """
    if not (lon and lat):
        return 0, "未知", "未知", "未知", "未知", "未知"
    response = RequestClient.query("http://restapi.amap.com/v3/geocode/regeo",
                                   method="GET",
                                   params={
                                       "output": "JSON",
                                       "key": AMAP_SERVER_KEY,
                                       "location": "%s,%s" % (lon, lat),
                                       "radius": 1000,
                                       "extensions": "base",
                                       "batch": "false",
                                       "roadlevel": 1,
                                   })
    try:
        ret_json = response.json()
        adcode = ret_json["regeocode"]['addressComponent']['adcode']
        province = ret_json["regeocode"]['addressComponent']['province']
        city = ret_json["regeocode"]['addressComponent']['city']
        district = ret_json["regeocode"]['addressComponent']['district']
        township = ret_json["regeocode"]['addressComponent']['township']
        address = ret_json["regeocode"]['formatted_address']
        return adcode, province, city, district, township, address
    except Exception as exp:
        SysLogger.exception(exp)
        return 0, "未知", "未知", "未知", "未知", "未知"
예제 #2
0
def get_location_by_ip(ip):
    if not ip or ip == "127.0.0.1":
        return "", "", ""
    response = RequestClient.query("http://freeapi.ipip.net/%s" % ip,
                                   method="GET",
                                   params={})
    try:
        ret_json = response.json()
        country = ret_json[0]
        province = ret_json[1]
        city = ret_json[2]
        return country, province, city
    except Exception as exp:
        SysLogger.exception(exp)
        return "", "", ""
예제 #3
0
파일: lbs.py 프로젝트: xiangjy/my_blog
def get_location_by_ip(ip):
    response = RequestClient.query(
        "http://restapi.amap.com/v3/ip",
        method="POST",
        data={
            "ip": ip,
            "output": "JSON",
            "key": AMAP_SERVER_KEY,
        }
    )
    try:
        ret_json = response.json()
        adcode = ret_json["adcode"] or 0
        province = ret_json["province"] or ""
        city = ret_json["city"] or ""
        return adcode, province, city
    except Exception, exp:
        SysLogger.exception(exp)
        return 0, u"未知", u"未知"
예제 #4
0
파일: lbs.py 프로젝트: a1401358759/my_site
def get_location_by_lon_and_lat(lon, lat):
    """
    根据经纬度查询地址

    文档地址 http://lbs.amap.com/api/webservice/guide/api/georegeo/#regeo
    :param lon:
    :param lat:
    :return: ADCODE,省,市,县,屯,详细地址
    """
    if not (lon and lat):
        return 0, u"未知", u"未知", u"未知", u"未知", u"未知"
    response = RequestClient.query(
        "http://restapi.amap.com/v3/geocode/regeo",
        method="GET",
        params={
            "output": "JSON",
            "key": AMAP_SERVER_KEY,
            "location": "%s,%s" % (lon, lat),
            "radius": 1000,
            "extensions": "base",
            "batch": "false",
            "roadlevel": 1,
        }
    )
    try:
        ret_json = response.json()
        adcode = ret_json["regeocode"]['addressComponent']['adcode']
        province = ret_json["regeocode"]['addressComponent']['province']
        city = ret_json["regeocode"]['addressComponent']['city']
        district = ret_json["regeocode"]['addressComponent']['district']
        township = ret_json["regeocode"]['addressComponent']['township']
        address = ret_json["regeocode"]['formatted_address']
        return adcode, province, city, district, township, address
    except Exception, exp:
        SysLogger.exception(exp)
        return 0, u"未知", u"未知", u"未知", u"未知", u"未知"