Έχουν προσπαθήσει να χρησιμοποιήσουν το στολίδι 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 []>
Οποιαδήποτε βοήθεια θα εκτιμηθεί ιδιαίτερα.













