지오코더 사용 방법
지금 무엇을 합니까? Google API를 사용 중이고 마커를 생성해야 하는 경우 위도 및 경도 좌표가 필요합니다.
Geocoder는 주소를 가져와 위도/경도 좌표를 찾는 놀라운 보석입니다! 반대의 방법으로도 할 수 있습니다. 백엔드에 정보를 저장하면 총 수행한 API 요청을 줄일 수도 있습니다.
어떻게 설치합니까?
먼저 내 원래 모델은 다음과 같습니다.
class Activity < ApplicationRecord
has_many :user_activities
has_many :users, through: :user_activities
has_many :comments
end
이제 두 가지 작업을 수행하려고 합니다.
gem install geocoder
그런 다음 실행
bundle install
이제 gemfile을 설치했으며 지오코더를 사용할 수 있습니다.
rails g migration AddLatitudeAndLongitudeToModel latitude:float longitude:float
db/migrate 폴더 내에 마이그레이션 파일이 생성됩니다.
실행
db:migrate
하고 성공적으로 마이그레이션되었는지 확인하십시오!이제
Activity
모델에 몇 가지를 추가하겠습니다.class Activity < ApplicationRecord
geocoded_by :complete_address
def complete_address
[address, city, state, zipcode].compact.join(', ')
end
has_many :user_activities
has_many :users, through: :user_activities
has_many :comments
end
geocoded_by :complete_address
를 추가하고 complete_address
가 무엇인지 정의했습니다.def complete_address
[address, city, state, zipcode].compact.join(', ')
end
이것이 작동하는지 확인하기 위해 전화를 걸 수 있습니다.
Activity.first.complete_address
모든 것이 성공적으로 작동하면 새로운 완전한 주소가 반환됩니다. 이렇게 하면 모델에서 데이터를 가져와 전체 주소를 만듭니다.여기에서 다음과 같이 호출할 수 있습니다.
Activity.last.geocode
API와 함께 지오코드를 쿼리하고 좌표를 반환합니다.이제 활동이 쿼리될 때마다 요청을 제한하기 위해 다음과 같이
after_validation
할 수 있습니다.class Activity < ApplicationRecord
geocoded_by :complete_address
after_validation :geocode, if: ->(obj) { obj.address.present? and obj.address_changed? }
def complete_address
[address, city, state, zipcode].compact.join(', ')
end
has_many :user_activities
has_many :users, through: :user_activities
has_many :comments
end
거기 당신이 간다. 당신이 찾고 있는 것을 찾으시기 바랍니다. ;)
Reference
이 문제에 관하여(지오코더 사용 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hellonathanchung/how-to-use-geocoder-302a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)