添加标记与谷歌地图和Ruby
Adding Markers with Google Maps and Ruby
我使用ruby并在页面上设置了一个地图。我可以在初始化时添加标记,但我想要的是遍历@events并找到经度和纬度字段,并执行如下操作
<% @event.each do |event|%>
<script type="text/javascript">
var long = <%= event.longitude %>;
var lati = <%= event.latitude %>;
addMarker(long, lati);
</script>
<% end %>
我不熟悉谷歌api,但希望它是可能的。
这是我用来构建地图api的
function initialize()
{
var lat, lon, map, myOptions;
//check if user has geo feature
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(
//get position
function(position){
lat = position.coords.latitude;
lon = position.coords.longitude;
//init map
myOptions = {
center: new google.maps.LatLng(lat, lon),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var myLatlng = new google.maps.LatLng(46.4352,-80.9455);
var marker = new google.maps.Marker({
position: myLatlng,
title:"Hello World!"
});
// To add the marker to the map, call setMap();
marker.setMap(map);
},
// if there was an error
function(error){
alert('ouch');
});
}
//case the users browser doesn't support geolocations
else
{
alert("Your browser doesn't support geolocations, please consider downloading Google Chrome");
}
}
我的建议是:
<script type="text/javascript">
function addMarker(lat, lng) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map
});
}
<% @events.each do |event| %>
addMarker(<%= event.latitude %>, <%= event.longitude %>);
<% end %>
</script>
创建一个addMarker
函数(如果它还不存在),它接受两个参数——纬度和经度——并向现有的地图添加相应的标记。然后,您可以使用Ruby为每个@event
创建一个对addMarker
的调用。
有很多方法可以进一步优化它。例如,您可以有一个单独的Ruby脚本,它将坐标输出为JSON,并使用异步HTTP请求(又名Ajax)在运行时将坐标加载到一个数组中,然后可以使用该数组填充地图。
相关文章:
- 谷歌地图固定位置覆盖
- 不显示带有本地json文件数据的谷歌地图脚本
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 谷歌地图标记不会显示
- 无法在JS中显示谷歌地图
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 在谷歌地图上获取事件的x,y坐标
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 模拟谷歌地图中的点击
- 如何知道哪个标记被谷歌地图点击了
- 谷歌地图JS API+JSON-多个标记没有显示
- 缓存谷歌地图数据
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 在谷歌地图上绘制位置数据库
- 标记的实时更新,无需加载页面谷歌地图API V3
- 谷歌地图在Ruby on Rails JavaScript错误
- 谷歌地图API标记在Ruby On Rails中添加动态标签
- 你如何将Ruby放入javascript函数中,谷歌地图
- 添加标记与谷歌地图和Ruby