【问题标题】:geopy does not show correct outputgeopy 没有显示正确的输出
【发布时间】:2016-04-07 13:32:15
【问题描述】:

我正在根据邮政编码计算纬度和经度。

我已经安装了geopy

pip install geopy

在我的代码中:

from geopy.geocoders import GoogleV3
def get_lat_lng(zip_code):
    lat, lng = False, False
    geocoder = GoogleV3()
    location = geocoder.geocode(query=str(zip_code))
    if location:
        print location
        lat, lng = location.latitude, location.longitude
    return lat, lng

当我调用上述方法时,我给出了巴基斯坦拉合尔的邮政编码 54000。

get_lat_lng(54000)

经纬度输出为:

(46.975033, 31.994583)

拉合尔的实际经纬度是

31.5546° N, 74.3572° E

在打印位置时我得到了:

Mykolaiv, Mykolaivs'ka oblast, Ukraine, 54000

可能有什么问题?

【问题讨论】:

    标签: python latitude-longitude geopy


    【解决方案1】:

    我可以让它工作的唯一方法是使用 components 关键字传递国家代码和地区的字典:

    from geopy.geocoders import GoogleV3
    def get_lat_lng(zip_code):
        geocoder = GoogleV3()
        location = geocoder.geocode(query=str(zip_code),components={"country": "PK","locality":"lahore"})
        if location:
            print location._address
            lat, lng = location.latitude, location.longitude
        return lat, lng
    
    print(get_lat_lng(54000))
    

    哪些输出:

    Lahore, Pakistan
    (31.55460609999999, 74.3571581)
    

    另一种选择是尝试region= 关键字和/或显式传递域而不是默认的maps.google.com

    即使将exactly_one 设置为 False:

    from geopy.geocoders import GoogleV3
    def get_lat_lng(zip_code):
        lat, lng = False, False
        geocoder = GoogleV3()
        location = geocoder.geocode(query=str(zip_code), exactly_one=False)
        if location:
            print [loc.address for loc in location]
    print(get_lat_lng(54000)) 
    

    不返回任何匹配项。

    [u"Mykolaiv, Mykolaivs'ka oblast, Ukraine, 54000", u'54000 Nancy, France', u'54000, Thailand', u'Kampung Datuk Keramat, 54000 Kuala Lumpur, Federal Territory of Kuala Lumpur, Malaysia', u'Tlalnepantla Centro, 54000 Tlalnepantla, M\xe9x., Mexico', u'54000, Broken Bow, OK 74728, USA', u'54000, Oklahoma, USA']
    

    【讨论】:

    猜你喜欢
    • 2018-01-17
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多