我正在尝试将我的标记作为链接链接到与它们相关的每一页。到目前为止,我已经设法在信息框中放置了一个链接,但我想绕过这个,只使用标记作为链接。我用的是gmaps4rails宝石。
控制器
@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发布于 2013-11-19 07:59:33
你可以:
@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();
});发布于 2014-09-09 19:00:59
对于同一个窗口的url,您可以这样做:
@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();
});关于窗口位置分配的更多信息(链接)
assign.asp
https://stackoverflow.com/questions/20063213
复制相似问题