2014-10-30 1 views
1

저는 레일 프로젝트에 지오 코더 젬을 사용하고 있습니다. 사용자 모델에 address 속성이 있습니다. 다음과 같이이 속성은 정보를 저장 :지오 코더로 자치구 찾기

geocoded_by :address do |obj,results| 
    if geo = results.first 
    obj.state = geo.state 
    obj.country = geo.country 
    obj.city = geo.city 
    end 
end 

이 잘 작동하지만 난 자치구와 함께 주소를 입력하려고하면, 지오는 도시를 반환합니다. 예를 들어 Brooklyn, New York을 저장하려고하면 New York, New York을 반환하지만 Middletown, Delaware과 같은 도시를 입력하면 전체 위치를 표시하는 데 문제가 없습니다. 보로를 쿼리하는 데 사용할 수있는 매개 변수가 있습니까? geo.borough을 시도했지만 오류가 발생했습니다.

답변

1

미국 내에 자치구가 많지 않습니다 (here 참조).

브루클린, 뉴욕은 뉴욕 주 뉴욕에 있으므로 도시 데이터가 뉴욕으로 응답한다는 사실은 100 % 정확합니다.

https://maps.googleapis.com/maps/api/geocode/json?address=610+Waring+Ave,+Bronx+NY

[2] pry(main)> HTTParty.get('https://maps.googleapis.com/maps/api/geocode/json?address=610+Waring+Ave,+Bronx+NY') 

=> {"results"=> 
    [{"address_components"=> 
    [{"long_name"=>"610", "short_name"=>"610", "types"=>["street_number"]}, 
     {"long_name"=>"Waring Avenue", "short_name"=>"Waring Ave", "types"=>["route"]}, 
     {"long_name"=>"Bronx", 
     "short_name"=>"Bronx", 
     "types"=>["sublocality_level_1", "sublocality", "political"]}, 
     {"long_name"=>"Bronx County", 
     "short_name"=>"Bronx County", 
     "types"=>["administrative_area_level_2", "political"]}, 
     {"long_name"=>"New York", 
     "short_name"=>"NY", 
     "types"=>["administrative_area_level_1", "political"]}, 
     {"long_name"=>"United States", "short_name"=>"US", "types"=>["country", "political"]}, 
     {"long_name"=>"10467", "short_name"=>"10467", "types"=>["postal_code"]}], 
    "formatted_address"=>"610 Waring Avenue, Bronx, NY 10467, USA", 
    "geometry"=> 
    {"location"=>{"lat"=>40.861204, "lng"=>-73.870415}, 
     "location_type"=>"ROOFTOP", 
     "viewport"=> 
     {"northeast"=>{"lat"=>40.8625529802915, "lng"=>-73.8690660197085}, 
     "southwest"=>{"lat"=>40.8598550197085, "lng"=>-73.8717639802915}}}, 
    "types"=>["street_address"]}], 
"status"=>"OK"} 

당신은 그들이 현재 아무것도하지만 지원하지 않는 것을 this file에서 볼 수 있습니다

내가 여기에 구글지도 API로 만든 샘플 호출 The Bronx를 참조 않습니다 말했다 그 매개 변수들. 어쩌면이 기능이 나에게 도움이 될 수 있으므로 당겨 받기 요청이 순서에 있습니다.

+0

감사합니다. 나는 실제로 그 매개 변수들과 함께 놀고 있습니다. 그러나 언뜻보기에 당신이 아마 알듯이, 상황은 매우 오래 지속될 것입니다. 자치구를 얻고 지오 코더에게 내가 지금 가지고있는'geocoded_by' 메소드를 기반으로 나머지 (올바른 도시, 주, 국가를 반환한다는 측면에서) 처리하도록 어떻게 권하고 싶습니까? 자치구를 위해 완전히 새로운 속성을 만들어야할지 확신 할 수 없지만, 그렇게 말하기 시작하면 그렇게 많은 것은 아닙니다. –

+0

예, 지오 코더를 패치해야합니다. github에 문제를 제출하여 지원 계획이 있는지 확인했습니다. – Anthony

+0

GitHub의 기능 요청에 대해서도 1+. 그것의 많은 감사. –