2016-03-29 6 views
0

Raylarım uygulamasında, adresi ve karşılık gelen enlem ve boylamı tutan bazı model Konumum var. Ana sayfada, kullanıcı konum tablosunda en yakın yerleri bulmak istediği yeri arayabilir.
İstemci tarafında coğrafi kodlama için JavaScript Google API'sini kullanıyorum. Kullanıcı başına limit 25000 req/gün olduğu için, endişelenmenize gerek yok sanırım hiç kimse bir yeri bir çok kez aramak isteyecektir. İstemciden sunucuya geocoded enlem ve boylam göndermek için Ajax kullanıyorum.
Şimdi ciddi taraftayım ve bir referans noktası ve konum tablosu var. Ama şu anda, bazı yakındaki yerleri tahmin etmek için Google API kullanan geocoder gemini kullanamıyorum, sunucu tarafında günde 2500 istek sınırı var ve bunun aşılmasını bekliyorum.).
Harici API'yi çağırmadan yakındaki bazı yerleri kolayca döndürmek için hangi aracı kullanabilirim? Diğer API'lerin olduğunu biliyorum, ancak hepsinin ya sınırlamaları ya da yükümlülükleri var ve matematiksel hesaplamaya daha çok benzediğinden, bu noktada API ile oynamak için neden göremiyorum.Harici API'yi (yani Google Haritalar) aramadan yakındaki yerleri tahmin etme araçları

cevap

1

İlişkisel bir veritabanı kullandığınızı varsayarsak, Konumlarınızı indekslemek ve Geo Distance Range Query kullanarak arama yapmak için ElasticSearch'ü kullanabilirsiniz.

Diğer benzer seçenekler bir Mongo koleksiyonu kullanmak ve Mongo's $near operator'un avantajından yararlanır.

Düzenleme:

MySQL/PostgreSQL kullanıyorsanız yararlı olabilir sorunuzla ilgili bazı sorular vardır konum:

Find closest 10 cities with MySQL using latitude and longitude?

postgres longitude longitude query