繁体   English   中英

谷歌地图添加标记到地图,然后在Ruby on Rails中存储纬度和经度

[英]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&amp;v=2&amp;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以获取在用户删除标记时调用的回调函数。 我相信有一个。 当调用该回调函数时,它将以纬度和经度传递。 有了它,您可以使用正确的值更新表单属性。

只是为了帮助您找到正确的方向。

如果您尝试在某个Rails项目中使用Google Maps API,那么我强烈建议您使用YM4R插件 该插件提供了一个很好的ruby友好对象封装的Google Maps API。 Rdoc中自述文件具有很好的例子,用于说明如何开始显示地图并显示一个或多个标记。

使用该插件的最大优点是该插件将整个GMaps API抽象为ruby对象,因此您只需使用Ruby代码即可创建并添加到地图中。 你不必写任何Javascript ...除非你想;)

Cartographer插件支持Rails 3+,

它被重写为大量标记和集群的工作

它支持google maps v3在rails中的无痛集成, http://grati.la/cartorbflw

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM