0

gmaps4rails gem을 사용하여지도를 내 레일 앱에 표시합니다. 사용자가 위치, 반경, 반지름 유형을 입력 할 수있는 부분이 있습니다.gmaps4rails gem을 사용하여 반지름 원을 새로 고치는 방법은 무엇입니까?

예 : 나는 사용자가 "업데이트 검토"링크를 클릭 할 때 원의 마커 및 반경을 업데이트 할

location => Chicago, IL, 
within => 10, 
radius type => km(kilometer). 

. 이미 아래 구문을 사용하여 마커를 교체했습니다.

function add_marker(location_served) { 
    var location = $(location_served).val(); 
    var geocoder; 

    geocoder = new google.maps.Geocoder(); 
    geocoder.geocode({ 
     'address': location 
    }, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      Gmaps4Rails.replace_markers([{ 
       "description": "", 
       "title": "", 
       "longitude": results[0].geometry.location.lng(), 
       "latitude": results[0].geometry.location.lat(), 
       "picture": "", 
       "width": "", 
       "height": "" 
      }]); 
     } else { 
      alert("The location you've entered is invalid"); 
     } 
    }); 
} 

그러나 원 반경을 업데이트하는 방법에 대해서는 알지 못합니다. gmaps4rails.js에서 create_circle 메서드를 볼 수 있지만 그 메서드를 사용할 때 전달해야하는 매개 변수를 알지 못합니다.

누구나 동그라미를 동적으로 업데이트하는 방법을 알고 있습니까?

//brute way to do 
... 
Gmaps4Rails.circles = [{"latitude": , "longitude": , "radius":}]; 

Gmaps4Rails.circles = [{"lat": , "lng": , "radius":}]; 

수에 따라해야 : 원 아래 질문에 대해 답 표시되지 않는 이유

감사

답변

0
function add_marker(location_served) { 
    var location = $(location_served).val(); 
    var geocoder; 

    geocoder = new google.maps.Geocoder(); 
    geocoder.geocode({ 
    'address': location 
    }, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
    Gmaps4Rails.replace_markers([{ 
     "longitude": results[0].geometry.location.lng(), 
     "latitude": results[0].geometry.location.lat() 
    }]); 

    //brute way to do 
    Gmaps4Rails.clear_circles(); 
    Gmaps4Rails.circles = [{"latitude": , "longitude": , "radius":}]; 
    Gmaps4Rails.create_circles(); 

    //soft way (if you only want to update radius) 
    Gmaps4Rails.circles[0].google_object.setRadius(number_here); //beware in the latest version of the gem I replaced google_object with serviceObject 

    } else { 
     alert("The location you've entered is invalid"); 
    } 
    }); 
} 
+0

답해 주셔서 감사합니다. 'Gmaps4Rails.circles = [{ "위도": -122.214897, "경도": -122.214897, "radius": 10000}]; Gmaps4Rails.create_circles(); ' 그러나 아무 원도 없다, FYI, 나는 버전 0.7.6를 사용한다. 다음 답변을 주셔서 감사합니다 – fatimah

+0

기이했습니다. 이미 존재합니다. https://github.com/apneadiving/Google-Maps-for-Rails/blob/v0.7.6/public/javascripts/gmaps4rails.js 글쎄, 오류가 무엇입니까? – apneadiving

+0

흠, 오류 메시지가 없습니다. 그러나 그 원은 나타나지 않았다. – fatimah

2

이유는 위도/LNG에 대한 태그입니다 to gmaps4rails.base.js line 165