2017-12-07 1 views
0

파이썬에서 지오 코더 패키지를 사용하여 일련의 주소 (약 30k)에 대한 좌표를 얻고 있습니다. 나는 다음과 같은 오류가 발생합니다 :파이썬에서의 지오 코딩

Status code Unknown from https://maps.googleapis.com/maps/api/geocode/json : ERROR - HTTPSConnectionPool(host='maps.googleapis.com', port=443): Max retries exceeded with url: /maps/api/geocode/json?address=Rancho+Palos+Verdes%2CCA%2CUS&bounds=&components=&region=&language= (Caused by ProxyError('Cannot connect to proxy.', timeout('timed out',)))

나는 내가 time.sleep(x) 기능을 추가하지만 크게 코드를 실행하는 데 걸리는 시간을 증가하는 경우 오류가 감소받는 횟수입니다. 코드를 실행하는보다 효율적인 방법이 있습니까?

for add in clean_address: 
    g=geocoder.google(add) 
    time.sleep(7) 
    if(g.ok==True): 
     lat.append(str(g.lat)) 
     lon.append(str(g.lng)) 
    if(g.ok==False): 
     lat.append("") 
     lon.append("") 
+3

구글의 지오 API는 무료로 일정 금액까지, 당신은 아마를 초과 및 속도 제한 얻고있다. 더 많은 것을 원한다면 가입하고 돈을 지불해야합니다. – tzaman

+0

Google api를 사용해야하는 이유가 있습니까? 당신은 한계를 사용하지 않은 arcgis api를 사용할 수 있습니다 : g = geocoder.arcgis (add) – Lupanoide

+0

@ Lupanoide - 추천 해주셔서 감사합니다. 31k 레코드의 좌표를보다 정확하고 빠르게 얻을 수 있습니다. –

답변

0

구글 API는 use limitation 있습니다

To use the Google Maps Geocoding API, you must register your app project on the Google API Console and get a Google API key which you can add to your app or website.

이렇게 한 후, these는 한계가 있습니다. 그러나 많은 지오 코딩 서비스를 수집하는 지오 코더 라이브러리를 사용할 수도 있습니다. 사용상의 제한이 없으며 매우 정확합니다 ArcGis api을 사용하는 것이 좋습니다. 사용법은 매우 간단합니다 :

g=geocoder.arcgis(add) 
lat.append(g.x) 
lon.append(g.y) 
1

귀하의 주소가 30K하고 한계가 하루 2,5K입니다 : 다음

코드의 조각이다.

구글이 관련 docs에 인용으로 :

Users of the standard API:

  • 2,500 free requests per day, calculated as the sum of client-side and server-side queries.
  • 50 requests per second, calculated as the sum of client-side and server-side queries.
+0

S.O.에 하향 투표 경찰이 있습니까? 누군가를 고소해야합니다. – raratiru

+1

경찰이 없습니다. 그러나 나는 당신을 위해 그것을 균형 잡을 것입니다. 나는 이것이 대답의 질문에 대답한다고 믿는다 – MattR

+1

downvoters는 경찰이다 (그것의 일부분). 걱정하지 마십시오. 평균 통계가 도움이 될 것입니다. +1 –