Geocoder, s στολίδι κοντά μέθοδος δεν λειτουργεί πάνω σε ράγες 5

ψήφοι
0

Έχουν προσπαθήσει να χρησιμοποιήσουν το στολίδι geocoder να βρουν θέσεις με τη χρήση της μεθόδου geocoders κοντά για την εύρεση ορισμένες περιοχές κοντά σε ορισμένα σημεία.

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

τέλος

Αυτός είναι ο κώδικας εγώ προσπαθώ να τρέξει, επιστρέφει έναν άδειο πίνακα, ακόμη και όταν οι θέσεις κοντά εντός των καθορισμένων παραμέτρων είναι παρόντες. Όταν προσπαθώ να εκτελέσετε τον κώδικα άμεσα στην κονσόλα ράγες με πραγματικά points.eg.

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

Δεν έχω κανένα σφάλμα που παράγεται, αλλά η έξοδος παίρνω είναι λιγότερο από ό, τι αναγνώσιμη ή comprehensible.The εξόδου είναι:

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 []> 

Οποιαδήποτε βοήθεια θα εκτιμηθεί ιδιαίτερα.

Δημοσιεύθηκε 13/11/2017 στις 20:29
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

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

Αν σώζονται μέχρι τις συντεταγμένες μου στη βάση δεδομένων με τα δεδομένα τύπου συμβολοσειράς που είναι λάθος, οι συντεταγμένες πρέπει να σωθεί με τα attribute.This δεδομένων float λυθεί το πρόβλημά μου για κάποιον που ίσως αντιμετωπίζουν το ίδιο problem.Its ένα καλό μέρος για να ξεκινήσετε τον έλεγχο.

Απαντήθηκε 14/11/2017 στις 16:30
πηγή χρήστη

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