【问题标题】:geopy geocode does not map addr - browser googlemap doesgeopy 地理编码不映射地址 - 浏览器 googlemap 可以
【发布时间】:2016-04-19 05:57:27
【问题描述】:

我正在尝试将 (~320+) 个德克萨斯地址列表映射到 lat、lng。

我开始使用 geopy(简单示例),它适用于某些地址,但在一组地址上却失败了。

所以我将备份与 googlemaps 地理编码集成...但它也失败了。下面是代码...见address_to_geoPt。

然而,当我通过浏览器提交失败的地址时,它会找到地址......关于如何获得更可靠的点击的任何提示?我应该使用哪个 googleapi(参见 address_to_geoPt_googlemaps())

class GeoMap(dbXLS):
    def __init__(self, **kwargs):
        super(umcGeoMap, self).__init__(**kwargs) 
        # Geo Locator
        self.gl = Nominatim()
        self.gmaps = googlemaps.Client(key='mykeyISworking')


        shName = self.xl.sheet_names[0] if 'sheet' not in kwargs else kwargs['sheet']
        self.df = self.xl.parse(shName)

    def address_to_geoPt(self, addr):
        l = self.geoLocation(addr)
        if l : return (l.latitude, l.longitude) 
        return (np.nan, np.nan)


    def address_to_geoPt_googlemaps(self, addr):
        geocode = self.gmaps.geocode(addr)
        if l == None : return (np.nan, np.nan)

        # Geocoding an address
        locDict = geocode[0]['geometry']['location']
        return(locDict['lat'], locDict['lng'])       


    def address(self, church):
        return (church.Address1 + " "
                                    + church.City + " " 
                                    + church.State + " " 
                                    + church.ZipCode + " "
                                    + church.Country)


    def church_to_geoPt(self, church):
        a = (church.Address1 + " "
             + church.City + " "
             + church.State)
        if pd.isnull(church.geoPt):
            (lat, lng) = self.address_to_geoPt(a)
        else: (lat, lng ) = church.geoPt
        if not pd.isnull(lat) : 
            print("DEBUG to_geoPt 1", lat, lng, a)
            return (lat,lng)
        (lat, lng) = self.address_to_geoPt_googlemaps(a)
        print("DEBUG to_geoPt 2", lat, lng, a)
        return (lat, lng)

以下显示了一组未被地理编码器映射的地址。

4     3000 Bee Creek Rd Spicewood TX 78669-5109 USA
6             P O BOX 197 BERTRAM TX 78605-0197 USA
10              2833 Petuma Dr Kempher TX 78639 USA

【问题讨论】:

  • 地理编码器受到速率限制和配额的限制,我没有看到任何处理这些的尝试..
  • 谢谢...我试图找到这方面的详细信息(发现一些链接大约每秒 10 个等...)但是当我再次运行代码时,googlemaps API 启动并且它工作(即,我创建了一个 API 密钥来获取服务)。

标签: google-maps python-3.5 geopy


【解决方案1】:

@geocodezip 提供了答案......并且代码在第二天就起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 2011-03-18
    • 2015-12-08
    相关资源
    最近更新 更多