2017-11-13 7 views
0

지오 코더 젬을 사용하여 특정 지점 근처의 특정 위치를 찾기 위해 지오 코더 방법을 사용하여 위치를 찾으려고했습니다.지오 코더가 레일 근처에서 작업하지 않고 있습니다. 5

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

어떤 도움이 높게 평가 될 것입니다.

답변

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

잘못 문자열 데이터 유형으로 데이터베이스에 내 좌표를 저장 한, 좌표가 부동 소수점 데이터 attribute.This으로 저장해야합니다 어쩌면 같은 problem.Its을 경험 누군가를 위해 내 문제를 해결 확인하기 좋은 곳.