2014-03-05 86 views
2

你好,我正在尋找一種方式來獲得經緯度,任何點擊點在地圖上,並有該信息存儲在一個ID標記。我使用gmaps4rails V2和我當前的代碼如下:如何獲取地圖上任何點擊點的經緯度位置? Gmaps4rails

<script type="text/javascript"> 
    var handler2 = Gmaps.build('Google'); 
    handler2.buildMap({ provider: { }, internal: {id: 'map'}}, function(){ 
     // I assume this is the way you retrieve the amrkers array 
     var json_data = <%=raw @hash.to_json %>; 
     var markers = handler2.addMarkers(json_data); 

     _.each(json_data, function(json, index){ 
      var marker = markers[index]; 
      json.marker = marker; 
      google.maps.event.addListener(handler2.map, 'click', function(event){ 
       var latlong = document.getElementById("latlong"); 
       latlong.innerHTML =("Latitude: "+event.latLng.lat()+" "+", longitude: "+event.latLng.lng()); 
      }); 

     }); 
     handler2.bounds.extendWith(markers); 
     handler2.getMap().setZoom(1); 

    }); 
</script> 

<div id="latlong"> 
This is the lat long of the currently clicked point. 
</div> 

的問題是,無論在哪裏我點擊地圖上的監聽器沒有響應,我不會在我的ID標籤得到任何結果「經緯度」。任何幫助表示讚賞謝謝。

回答

3

問題是addListener(handler2.map,因爲handler.map是一個gmaps4rails對象,而不是谷歌地圖對象。

因此,無論您使用handler2.getMap()handler.map.getServiceObject()(前者是捷徑)。

另一件事:您可以將buildMap函數的提供者密鑰傳遞給map選項。

這裏是工作代碼:

var handler2 = Gmaps.build('Google'); 
handler2.buildMap({ provider: { zoom: 1 }, internal: {id: 'map'}}, function(){ 
    // I assume this is the way you retrieve the amrkers array 
    var json_data = <%=raw @hash.to_json %>; 
    var markers = handler2.addMarkers(json_data); 

    _.each(json_data, function(json, index){ 
     var marker = markers[index]; 
     json.marker = marker; 
     google.maps.event.addListener(handler2.getMap(), 'click', function(event){ 
     var latlong = document.getElementById("latlong"); 
     latlong.innerHTML =("Latitude: "+event.latLng.lat()+" "+", longitude: "+event.latLng.lng()); 
     }); 
    }); 
    handler2.bounds.extendWith(markers); 
    handler2.fitMapToBounds(); 
}); 
+0

THANK YOU SO MUCH! – ominousbit

+0

我複製了你的代碼,但是找不到'handler' – newBike

+0

@poc它是一個錯字 – apneadiving

相關問題