我正在尝试将我的标记作为与其关联的每个页面的链接。到目前为止,我已设法在信息框中放置一个链接,但我想绕过这个,只是将标记作为链接。我正在使用gmaps4rails gem。
控制器
@hash = Gmaps4rails.build_markers(@soiltemps) do |soiltemps, marker|
location_link = view_context.link_to soiltemps.site, soiltemp_path(soiltemps)
marker.lat soiltemps.latitude
marker.lng soiltemps.longitude
marker.picture({"url" => "/logo.png",
"width" => 36,
"height" => 36})
marker.infowindow "<h4><u>#{location_link}</u></h4> "
end
答案 0 :(得分:1)
你可以这样做:
@hash = Gmaps4rails.build_markers(@soiltemps) do |soiltemps, marker|
marker.lat soiltemps.latitude
marker.lng soiltemps.longitude
marker.picture({"url" => "/logo.png",
"width" => 36,
"height" => 36})
marker.json({ link: soiltemp_url(soiltemps) })
end
并在js中添加侦听器:
markers_json = <%=raw @hash.to_json %>;
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(markers_json);
handler.bounds.extendWith(markers);
for (var i = 0; i < markers.length; i++) {
link = markers_json[i].link;
google.maps.event.addListener(markers[i].getServiceObject(), 'click', function(){
window.open(link);
})
}
handler.fitMapToBounds();
});
答案 1 :(得分:1)
对于带背面的同一窗口的网址 - 你可以这样做:
@hash = Gmaps4rails.build_markers(@soiltemps) do |soiltemps, marker|
marker.lat soiltemps.latitude
marker.lng soiltemps.longitude
marker.picture({"url" => "/logo.png",
"width" => 36,
"height" => 36})
marker.json({ link: soiltemp_url(soiltemps) })
end
并在js中添加侦听器:
标志物
_json = <%=raw @hash.to_json %>;
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(markers_json);
handler.bounds.extendWith(markers);
for (var i = 0; i < markers.length; i++) {
link = markers_json[i].link;
google.maps.event.addListener(markers[i].getServiceObject(), 'click', function(){
window.location.assign(link);
})
}
handler.fitMapToBounds();
});