该createMarker
功能实际上是为带有纯文本标题的标记而设计的。我建议修改该函数以容纳您拥有的其他信息,即:链接(URL)、地址和电话。
您应该根据提供的标题、链接、地址和电话在函数内创建 HTML 标记,而不是对信息窗口和悬停文本(标题)使用相同myTitle
的标记。函数变为contentString
:createMarker
function createMarker(latlng, myTitle, myLink, myAddress, myPhone, myNum, myIcon) {
var contentString = '<a style="font-family: Arial" href="' +
myLink + '" target="_blank">' + myTitle +
'</a><br><span style="font-size: 12px; font-family: Arial;">ADDRESS<br> ' +
myAddress + '<br>PHONE<br>' + myPhone + '</span>';
var marker = new google.maps.Marker({
position: latlng,
map: map,
icon: myIcon,
zIndex: Math.round(latlng.lat() * -100000) << 5,
title: myTitle,
});
// ...
您必须更新对函数的调用以传递正确的参数:
createMarker(new google.maps.LatLng(locations[i][4], locations[i][5]), locations[i][0], locations[i][1], locations[i][2], locations[i][3], locations[i][6], locations[i][7]);
location[i][0]
是位置的名称/标题
location[i][1]
是链接
location[i][2]
是地址
location[i][3]
是电话号码
location[i][4]
是位置的纬度
location[i][5]
是位置的经度
location[i][6]
是myNum
(实际上并没有在任何地方使用)
location[i][7]
是标记图标的 URL
现在,您可以更干净地对数据源进行编码。例如:
var locations = [
//====================== ZONE 1 MUSEUMS ==========================
//THE MENIL COLLECTION
['The Menil Collection', 'http://www.mfah.org/', 'Houston TX 77006', '(713) 639-7300', 29.737593,-95.398525, 1, 'http://www.conleym.com/map/icons/world.png'],
//ROTHKO CHAPEL
['Rothko Chapel', 'http://www.mfah.org/', 'Houston, TX 77006', '(713) 639-7300', 29.737822,-95.395725, 2, 'http://www.conleym.com/map/icons/world.png'],
//HOUSTON CENTER for PHOTOGRAPY
['Houston Center for Photography', 'http://www.mfah.org/', 'Houston, TX 77006', '(713) 639-7300', 29.738606,-95.397179, 3, 'http://www.conleym.com/map/icons/world.png'],
// and so on...
];
演示: 之前和之后