私は緯度と経度を見つけるのに約10万レコードあります。現在、私はgeokit-rails
をジオコーディングに使用しています。レールでバッチジオコーディングを行う方法3
私が今やっていることは、レコードを1つずつループして緯度と経度を見つけることです。しかし、それは非常に時間がかかります。これを一括して行う方法はありますか?任意のバッチ処理方法またはそのようなもの。
助けてください!
私は緯度と経度を見つけるのに約10万レコードあります。現在、私はgeokit-rails
をジオコーディングに使用しています。レールでバッチジオコーディングを行う方法3
私が今やっていることは、レコードを1つずつループして緯度と経度を見つけることです。しかし、それは非常に時間がかかります。これを一括して行う方法はありますか?任意のバッチ処理方法またはそのようなもの。
助けてください!
私は考えることができる唯一の改善は、それはそれらを介して、時間とループで500個のオブジェクトをロードしますfind_each
Model.find_each :batch_size => 500 do |model|
#geocode
end
を使用しています。私はあなたがそれよりもはるかに優れているとは思わない、それを行うネイティブメソッドがあっても、パフォーマンスは同じだと私は思う。
私はそれを行うより速い方法はないと思います。私は@Robinに同意します。おそらくあなたはこの小さな改善を行うことができますが、パフォーマンスを大幅に改善することはできません。
私はシステムを改善するために、レール2の前に行ったように、アドレスとレコードの都市を指定して、自動的に経度と緯度を検出する数行のコードを挿入することをお勧めします新しいレコードを作成する必要があります。このようにして、あなたが書いたような時間を費やすことはありません!
@shop = Shop.new(params[:shop])
@coordinates = []
seek_str = @shop.city + "," + @shop.address
@coordinates = Geocoding.get(seek_str)
@shop.lat = @coordinates[0][:latitude]
@shop.lng = @coordinates[0][:longitude]
現在、緯度と経度は都市と住所によってジオコードされています。レコードの都市と住所はフォームで挿入されます。これがRails 2であると考えてください。Rails 3でこれを行うには、いくつかの編集が必要です。
これを行うperlのサンプルリンクが見つかりました。http://code.activestate.com/ppm/Geo-Coder-Bing-Bulk/私はそう思います。ルビーにはこういうものがありますか –
面白いです。はい、使用しているジオキットの宝石はすでに同じ作業をしていて、それはperlのプラグインと似ています! - > https://github.com/andre/geokit-gem –
これを行うperlのサンプルリンクが見つかりましたhttp://code.activestate.com/ppm/Geo-Coder-Bing-Bulk/私はそう思います。私たちはルビーでこのようなことをしていますか? –