0

我正在定制地图上的谷歌标记。搜索单个区域后,结果会返回带有餐厅、公园和聚会标记的地图。我试图根据结果的类型给出不同的标记图标。因此,我在 addMarker 函数 (whatami) 中添加了一个“类型”参数,并根据情况切换到正确的标记。但是,没有任何标记出现。

地图.js:

function addMarker(latitude, longitude, title, whatami) {

  switch (whatami) {
      case 'park':
      righticon = "'/assets/parkmarker.png'";
      break;

      case 'rest':
      righticon = "'/assets/restaurantmarker.png'";
      break;

      case 'meetup':
      righticon = "'/assets/meetupmarker.png'";
      break;
    }

  var markerLatlng = new google.maps.LatLng(latitude, longitude);
  var marker = new google.maps.Marker({
    position: markerLatlng,
    map: map,
    icon: righticon,
    title: title
  });
  markers.push(marker);
  latlng.push(markerLatlng);
};

createevent.js.erb:

<% @restaurants.each do |item| %>
    addMarker(<%= item.latitude %>,<%= item.longitude %>,'<%= item.name %>','rest');
 <% end %>
  <% @meetups.each do |item| %>
    addMarker(<%= item.latitude %>,<%= item.longitude %>,'<%= item.name %>','meetup');
 <% end %>
  <% @parks.each do |item| %>
    addMarker(<%= item.latitude %>,<%= item.longitude %>,'<%= item.name %>','park');
 <% end %>

如果我删除 switch 语句,它工作正常。谁能发现我哪里出错了?

4

3 回答 3

0

“'/assets/parkmarker.png'”处的错字。删除双引号。

于 2013-05-20T03:43:03.820 回答
0

快速浏览一下,我会说您不必要地加倍了引号,而且您还没有在函数中将 righticon 声明为变量,这样的事情怎么样:

function addMarker(latitude, longitude, title, whatami) {
    var markerLatlng = new google.maps.LatLng(latitude, longitude);
    var markerSettings = {
        position: markerLatlng,
        map: map,   
        title: title
    }
    //  this way we still use the default marker when there is none set
    switch (whatami) {
        case 'park':
        markerSettings.icon = '/assets/parkmarker.png';
        break;

        case 'rest':
        markerSettings.icon = '/assets/restaurantmarker.png';
        break;

        case 'meetup':
        markerSettings.icon = '/assets/meetupmarker.png';
        break;
  } 
  var marker = new google.maps.Marker(markerSettings);
  markers.push(marker);
  latlng.push(markerLatlng);
};
于 2013-05-20T03:44:23.227 回答
0

感谢大家。问题是标记在 2 个不同的地方被调用,我只将它添加到一个文件中。将其添加到两者后,它都起作用了。愚蠢的错误。

于 2013-05-23T15:26:08.763 回答