0

Я хочу геокодировать два адреса в одной модели, т.е. В Journey есть StartAddress и EndAddress. Таким образом, у меня есть три атрибута на моей модели: StartAddress start_longtitude start_lattitude EndAddress end_longtitude end_lattitudeГеокодирование двух адресов в одной модели

Как я могу геокодировать его так, что я могу назвать Nearbys работать, чтобы найти I) Journeys, которые начинаются Рядом данное путешествие и ii) поездки, которые заканчиваются рядом с определенным путешествием? Любая помощь была бы принята с благодарностью

ответ

0

Существует последнее обновление, которое позволяет это. https://github.com/alexreisner/geocoder/pull/692

Geocode модель с вашей собственной функцией геокодирования, а затем в ближайшей функции укажите альтернативные attrbitutes, которые вы хотите найти.

0

Проблема и решение выражены here очень хорошо.

Добавьте следующие before_save и соответствующие методы вашей модели, чтобы решить эту проблему. Не забудьте повторить часть кода для второго места (возможно, место назначения):

before_save :geocode_endpoints 

    private 
    #To enable Geocoder to works with multiple locations 
    def geocode_endpoints 
    if from_changed? 
     geocoded = Geocoder.search(loc1).first 
     if geocoded 
     self.latitude = geocoded.latitude 
     self.longitude = geocoded.longitude 
     end 
    end 
    # Repeat for destination 
     if to_changed? 
     geocoded = Geocoder.search(loc2).first 
     if geocoded 
     self.latitude2 = geocoded.latitude 
     self.longitude2 = geocoded.longitude 
     end 
    end 
    end