我正在开发一个Google地图,使用自定义标记图标显示工作地点。
这是我用来设置变量'markerIcon'和'type'名称(管理)的代码片段:
之前
var markerIcon = {
Administrative: {
url: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
// scaledSize: new google.maps.Size(80, 80),
// origin: new google.maps.Point(0, 0),
// anchor: new google.maps.Point(32,65),
// labelOrigin: new google.maps.Point(40,33)
}
};
这很好,所以这里的代码片段与var'type'名称不兼容管理和文书:
后
var markerIcon = {
Administrative and Clerical: {
url: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
// scaledSize: new google.maps.Size(80, 80),
// origin: new google.maps.Point(0, 0),
// anchor: new google.maps.Point(32,65),
// labelOrigin: new google.maps.Point(40,33)
}
};
这是我遇到的问题。使用多个单词和空格。
以下是创建标记的功能:
function createMarker(latlng, name, company, address, type, jobdesc) {
var jobButton = "<a class='btn btn-success btn-sm mt-2' role='button' href='/public/job_details_demo.php?" + "title=" + name + "'" + "target='_blank'>View Job" + "</a>";
var html = "<h5 class='mb-0'>" + name + "</h5>" + "<h6 class='mb-0'>" + company + "</h6>" + "<p><b>" + address + "</b></p>" + "<b>Job Details:</b></br>" + jobdesc + "</p>" + jobButton;
var icon = markerIcon[type] || {};
var marker = new google.maps.Marker({
map: map,
position: latlng,
icon: icon.url
});
google.maps.event.addListener(marker, 'click', function () {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
markers.push(marker);
}
为了显示图标,我查询数据库以使用SQL检索'jobsector_name'AS类型。这工作正常,标记图标出现。
但是,我需要为jobsector名称使用多个单词,例如“Administrative and Clerical”。当我在数据库中将类型更改为此名称和标记图标名称时,标记不会显示,并且Chrome控制台中不会显示任何错误。
我的问题是,如何解决使用两个或多个单词作为标记图标类型名称的问题?
我尝试了像%20这样的特殊字符,但不出所料,代码讨厌任何特殊字符。我也试过引用数字,但是它们没有显示,我尝试连接两个变量,但是不知道如何在这个类型的操作中引用另一个变量中的变量。
已解决:我在每个单词之间添加了'_'下划线(在MarkerIcon类型和数据库列值中),然后在页面上显示名称时使用PHP命令'str_replace'。
$jobsector = str_replace("_", " ", $row['jobsector_name']);
PHP Manual - str_replace — Replace all occurrences of the search string with the replacement string