yöntemin yakın geocoder, s mücevher raylar 5 çalışmıyor

oy
0

Belirli noktalara yakın bazı yerleri bulmak için yakın geocoders yöntemini kullanarak yerleri bulmak için geocoder mücevher kullanmaya çalışıyor mu.

def index
  @data = Datum.all

   @emergency = Emergency.last
   @data_near = Datum.near([@emergency.longitude,@emergency.latitude],100,:units => :km)

  @geojson = Array.new

  @data_near.each do |mapdata|
     @geojson << {
          type: 'Feature',
          geometry: {
            type: 'Point',
            coordinates: [mapdata.longitude, mapdata.latitude]
          },
          properties: {
            name: mapdata.description,
            address: mapdata.address,
            BusType: 'hospital',
            popupContent: #{mapdata.address} is a #{mapdata.description},
            :'marker-color' => '#00607d',
            :'marker-symbol' => 'circle',
            :'marker-size' => 'medium'
          }
        }
  end
  respond_to do |format|
     format.html
     format.json{ render json: @geojson }
  end

son

Yani ben çalıştırmak çalışıyorum kod, belirtilen parametreler dahilinde yakın yerleri mevcut olsa bile boş bir dizi döndürür. i gerçek points.eg ile raylar konsolda kodu doğrudan çalıştırmayı denediğinizde.

data = Datum.near([36.7689503,-1.381776],10,:units => :km)

Ben oluşturulan herhangi bir hata alamadım ama olsun çıktı okunabilir azdır ya comprehensible.The çıktısı:

Datum Load (0.3ms)  SELECT  data.*, (111.19492664455873 * ABS(data.latitude - 36.7689503) * 0.7071067811865475) + (96.29763124613503 * ABS(data.longitude - -1.381776) * 0.7071067811865475) AS distance, CASE WHEN (data.latitude >= 36.7689503 AND data.longitude >= -1.381776) THEN  45.0 WHEN (data.latitude <  36.7689503 AND data.longitude >= -1.381776) THEN 135.0 WHEN (data.latitude <  36.7689503 AND data.longitude <  -1.381776) THEN 225.0 WHEN (data.latitude >= 36.7689503 AND data.longitude <  -1.381776) THEN 315.0 END AS bearing FROM data WHERE (data.latitude BETWEEN 36.67901813940813 AND 36.85888246059187 AND data.longitude BETWEEN -1.4940430256783075 AND -1.2695089743216923) ORDER BY distance ASC LIMIT ?  [[LIMIT, 11]]




 => #<ActiveRecord::Relation []> 

Herhangi bir yardım son derece takdir edilecektir.

Oluştur 13/11/2017 saat 20:29
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

t.string "longitude"
t.string "latitude"

yanlış dize veri türü ile veritabanında Koordinatlarımı biriktirmiş olsaydı, koordinatlar şamandıra veri attribute.This ile kaydedilmelidir belki aynı problem.Its kontrol başlamak için iyi bir yer yaşandığı herkes için benim sorun çözüldü.

Cevap 14/11/2017 saat 16:30
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more