2012-05-10 5 views
2

주소를 기반으로 위치를 표시하는 데 geocoder을 사용하려고합니다.Ruby on Rails - 지오 코더보기

내 질문은 사용자가 데이터베이스에 삽입 한 주소에서 위도와 경도를 얻은 후에 대화식지도를 표시하려면 무엇을 입력해야합니까?

내 주소 모델

belongs_to <another model> 
attr_accessible <all addresses attributes including latitude and longitude> 

geocoded_by :address 

after_validation :geocode, :if => :address_changed? 

필드는 위도와 내가 주소를 삽입 한 후 경도가 자동으로 계산됩니다.

저는 Ryan 's Rail Cast 자습서를 따라 왔지만 결국 정적 인 이미지를 표시하는 대신지도를 표시하고 싶습니다. google maps interactive style. 이것을 어떻게 할 수 있습니까?

만약에 Google-Maps-for-Rails를 보았지만 쇼보기에서 위치에 하나의지도를 얻는 방법을 잘 이해하지 못했습니다.

+0

위도/경도가있는 경우 반드시 GMFR 젬이 필요하지는 않습니다. 표준 Google지도 api를 사용할 수 있습니다. https://developers.google.com/maps/ – stewart715

+0

위도와 경도가 있습니다. 지오 코더는 주소를 입력하고 제출할 때이를 계산합니다. 따라서, 지오 코더가 제안한 좌표로보기에서지도 API를 "호출"할 필요가 없습니까? – Silver

+0

나는 이해한다. 그러나 표준 Google Maps JavaScript API 스 니펫을 사용할 수 있으며 특별한 보석은 필요하지 않습니다. – stewart715

답변

2

Google-Maps-for-Rails을 자세히 살펴보십시오. 그 보석은 사소하게, 그리고보기에서지도를하는 방법에 대한 지침은 매우 분명하다 :

(I는 사용자 모델 belongs_to 주소 모델을 추정 적절한 이름을 변경할 수 있습니다.).

보기에

@json = User.find(params[:id]).address.to_gmaps4rails 

: 그냥지도에 하나의 특정 사용자를 원하는 경우, 물론 당신은 컨트롤러를 바꿀 수

<%= gmaps4rails(@json) %> 
+0

나는 이것을 믿을 수 없다. 실제로 같은 코드를 사용하고 있었지만 아무 것도 표시되지 않았습니다 ... 누락 된 것이 모두 application.css 파일에'* = require gmaps4rails'라고 믿을 수는 없습니다. 감사합니다. – Silver

+0

@ Silver Nice. 그 "doh!"순간을 좋아하십시오. – ghoppe

2

많은 도움이 예있다 Google Maps API 용 앰플은 here입니다. 가장 간단한 경우에, 당신은 같은 것을 할 수 있습니다

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
    var lat = <%= @model.latitude %>, 
     lon = <%= @model.longitude %>, 
     map; 
    function initialize() { 
    var myOptions = { 
     center: new google.maps.LatLng(lat, lon) 
    }; 
    map = new google.maps.Map(document.getElementById('map_canvas'), 
     myOptions); 
    } 

    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 
<div id="map_canvas"></div> 

그냥 모델의 해당 지오 코딩 필드 @model.latitude@model.longitude를 교체하십시오.

+0

단순한 좋은 생각 인 것 같다. 그러나 내가 그것을 시험해 볼 때 나는 얻는 누구나는지도가 있어야했던 회색의 박스 다. 그리고 예, 저는 @ 모델을 대신했습니다. 광산에 대한 경공/경도. #ss_canvas도 CSS의 높이와 너비를 설정하여 선언했습니다. 죄송합니다.이 질문에 대한 새로운 내용은 다음과 같습니다. / – Silver