我正在努力在地图上自定义Google标记。搜索单个区域后,结果将返回带有餐馆,公园和聚会标记的地图。我试图根据结果的类型给出不同的标记图标。所以我在addMarker函数(whatami)中添加了一个'type'参数,根据具体情况,应切换到正确的标记。但是没有标记出现。
maps.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语句,它可以正常工作。谁能发现我哪里出错?
答案 0 :(得分:0)
错误地写在“'/assets/parkmarker.png'”。删除双引号。
答案 1 :(得分: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);
};
答案 2 :(得分:0)
谢谢大家。问题是标记在两个不同的地方被调用,我只将它添加到一个文件中。将它添加到两者之后就可以了。愚蠢的错误。