您好,我正在寻找一种方法来获取地图上所有点击点的纬度和经度,并将该信息存储在id标记中。我正在使用gmaps4rails v2,当前代码如下:
<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标签“ latlong”也没有任何结果。任何帮助表示赞赏,谢谢。
问题是addListener(handler2.map
因为handler.map
是gmaps4rails对象,而不是google map对象。
因此,您可以使用handler2.getMap()
或handler.map.getServiceObject()
(前者是快捷方式)。
另一件事:您可以使用buildMap
函数的提供程序键传递地图选项。
这是工作代码:
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();
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句