Javascript 使用Rails 3.1在google地图信息窗口中显示多个标记的链接

Javascript 使用Rails 3.1在google地图信息窗口中显示多个标记的链接,javascript,ruby-on-rails-3,google-maps-api-3,Javascript,Ruby On Rails 3,Google Maps Api 3,我有一张使用谷歌地图API v3的多家公司的地图。我需要从infowindow链接到我的应用程序的company show视图,因此如果我单击标记,将打开一个infowindow,其中包含一些基本信息和一个查看公司详细信息的链接。代码如下: class CitiesController < ApplicationController ... def businessmap @city = City.find(params[:id]) @mapcenter = @city

我有一张使用谷歌地图API v3的多家公司的地图。我需要从infowindow链接到我的应用程序的company show视图,因此如果我单击标记,将打开一个infowindow,其中包含一些基本信息和一个查看公司详细信息的链接。代码如下:

class CitiesController < ApplicationController

...

def businessmap
    @city = City.find(params[:id])
    @mapcenter = @city.geocode
    @businesses = @city.businesses
    respond_to do |format|
      format.html
      format.json { render :json => @businesses.to_json(:only => [:id, :business_name, :phone, :latitude, :longitude]) }
    end
  end
end
class CitiesController@business.to_json(:only=>[:id,:business\u name,:phone,:latitude,:longitude]))
结束
结束
结束
地图视图本身如下所示:

%script{:type => "text/javascript", :charset => "utf-8", :src => "http://maps.googleapis.com/maps/api/js?v=3.6&sensor=false&region=IN"}
%script{:type => "text/javascript"}
  function initialize() {

  var cityLatlng = new google.maps.LatLng(
  = @mapcenter[0]
  ,
  = @mapcenter[1]
  );

  var options = {
  zoom: 13,
  center: cityLatlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  var map = new google.maps.Map(document.getElementById("map_canvas"), options);

  $.getJSON('businessmap.json', function(businesses) {
  $(businesses).each(function() {
  var business = this;
  var infowindow = new google.maps.InfoWindow({
  content: business.business_name + '<br/>' + 'Phone: ' + business.phone
  });
  var marker = new google.maps.Marker({
  position: new google.maps.LatLng(business.latitude, business.longitude),
  map: map,
  icon: image
  });
  google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
  });
  });
  });
  }

%body{ :onload => "initialize()" }
  %div#map_canvas{:style => "width: 900px; height: 600px;"}
%script{:type=>“text/javascript”,:charset=>“utf-8”,:src=>“http://maps.googleapis.com/maps/api/js?v=3.6&sensor=false®ion=IN"}
%脚本{:type=>“text/javascript”}
函数初始化(){
var citylalng=新的google.maps.LatLng(
=@mapcenter[0]
,
=@mapcenter[1]
);
变量选项={
缩放:13,
中心:城市化,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map_canvas”),选项);
$.getJSON('businessmap.json',函数(业务){
$(业务)。每个(功能(){
var业务=此;
var infowindow=new google.maps.infowindow({
内容:business.business_name++'
'++'电话:'+business.Phone }); var marker=new google.maps.marker({ 位置:新的google.maps.LatLng(business.latitude,business.longitude), 地图:地图, 图标:图像 }); google.maps.event.addListener(标记'click',函数(){ 信息窗口。打开(地图、标记); }); }); }); } %正文{:onload=>“initialize()”} %div#map_canvas{:style=>“宽度:900px;高度:600px;”
因此,现在只有名称和电话号码,我如何显示附加链接(或使企业名称显示为链接)?链接本身是“例如”http://localhost:3000/businesses/186-Cityname businessname”(使用to_参数定义)


谢谢大家!

您要修改的相关代码是下面的代码段,其中,
内容
将被分配给单击信息窗口时显示的任何内容

var infowindow = new google.maps.InfoWindow({
  content: business.business_name + '<br/>' + 'Phone: ' + business.phone
});

稍微好一点的方式

在控制器中—

format.json { render :json => @businesses.to_json(:only => [:id, :business_name, :phone, :latitude, :longitude], :methods => [:to_param]) }
在视图中-

var infowindow = new google.maps.InfoWindow({
  content: '<a href="/businesses/' + business.id + '">' + business.business_name + '</a><br/>' + 'Phone: ' + business.phone
});
var infowindow = new google.maps.InfoWindow({
  content: '<a href="/businesses/' + business.to_param + '">' + business.business_name + '</a><br/>' + 'Phone: ' + business.phone
});
var infowindow=new google.maps.infowindow({
内容:'
'+'电话:'+business.Phone });
您可以在javascript中使用links方法: 这是你怎么做的

var str = ( 8.8.8.8).toString().link("www.google.com");
var infowindow = new google.maps.InfoWindow({
   content: str
 });