![](/img/trans.png)
[英]Laravel and google maps : foreach latitude/longitude show marker or map
[英]Google Maps Add a Marker to Map, then Store Latitude and Longitude in Ruby on Rails
我已经看了之前提出的问题,但我似乎不太适合这样,所以这里是:
基本上,我有一个Ruby on Rails项目,我希望有一个页面,用户可以通过添加标记(只允许1个)来确定谷歌地图上的位置,然后将经度和纬度存储在Ruby中我正在研究的Rails项目。
我想知道最好的方法是什么(用Javascript添加地图?)但是当用户点击轨道上的ruby内的按钮时,我将如何检索纬度和经度?
我真的很感激任何提示/链接到相关网站等,因为在铁轨环境中工作ruby对我来说是一个新的,我不知道如何去做上面的事情。
非常感谢先进
这是一个简短的例子:
your_page.html
<script src="http://maps.google.com/maps?file=api&v=2&key=xxx;hl=en" type='text/javascript'></script>
<script type='text/javascript'>
var draggable_marker = null;
$(document).ready(function() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById('map_div'));
map.addControl(new GSmallMapControl());
draggable_marker = new GMarker(new GLatLng(42.6976489, 23.3221545), {draggable : true,title : "Place this marker to your location");
GEvent.addListener(draggable_marker, 'dragend', function() {
RubyGmap.setPosition(draggable_marker);
});
GEvent.addListener(map, 'click', function(overlay, latlng, overlaylatlng){
RubyGmap.setMarkerPosition(draggable_marker, latlng);
});
}
});
</script>
<div id="map_div" style="width:690px;height:340px;" ></div>
ruby_gmap.js
RubyGmap = {
setPosition: function(marker) {
$('#latitude_field').val(marker.getLatLng().lat());
$('#longitude_field').val(marker.getLatLng().lng());
},
setMarkerPosition: function(marker, latlng) {
SELECTED = true;
map.addOverlay(marker);
marker.setLatLng(latlng);
RubyGmap.setPosition(marker);
}
}
我认为第一步是让您的视图在没有地图的情况下工作。 手动输入lat / long,以便了解您的视图和控制器是否正常工作。 达到这一点后,请查看Google Maps API文档 。 将地图添加到视图中,找出如何添加标记 。 添加/删除标记时,您可以使用JavaScript更新lat / long输入(我会亲自使用jQuery)。 此时,您可以将lat / long输入隐藏或只读 - 除非您的用户有理由手动更新lat / long。
仅供参考 - 谷歌可能建议使用Maps API的V3,但是当我尝试使用它时,有太多缺失的部分。 我坚持使用V2。
我不知道具体细节,但我会查看Google Maps API以获取在用户删除标记时调用的回调函数。 我相信有一个。 当调用该回调函数时,它将以纬度和经度传递。 有了它,您可以使用正确的值更新表单属性。
只是为了帮助您找到正确的方向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.