您需要找出包含相关列表的 html 表的 ID。您可以为此使用 Firefox 插件(我更喜欢Firebug,但Web Developer Toolbar也很酷)。对于 Internet Explorer……我猜是“调试器”;如果您安装了 Visual Studio 或某些 IE 插件,则放在 JavaScript 中的语句会起作用。
无论采用何种方式,您都应该能够精确定位到类似于以下内容的 HTML:
<div class="pbBody" id="0017000000Lg8Wg_RelatedOpportunityList_body">
<table class="list" border="0" cellpadding="0" cellspacing="0">
...
现在看看我的回答中的 JavaScript,尤其是这一部分:
var htmlTable = document.getElementById('j_id0:j_id2:j_id7:accountTable').getElementsByTagName("tbody")[0].getElementsByTagName("tr");
for (var i = 0; i < htmlTable.length; ++i) {
names.push(htmlTable[i].getElementsByTagName("td")[0]);
// We need to sanitize addresses a bit (remove newlines and extra spaces).
var address = htmlTable[i].getElementsByTagName("td")[1].innerHTML;
addresses.push(address.replace(/\n/g, "").replace(/^\s+/,"").replace(/\s+$/,""));
}
将您找到的 ID 插入第一行。找出哪个 <td> 单元格包含您的纬度和经度信息。您可以再次使用调试器找到它,或者通过将 alert() 框放入循环中进行实验。
最后一部分是您不需要对地址进行地理编码,您已经有了 LAT 和 LONG。所以直接跳到函数 finalizeDrawingMap() 并重用它的内容。您可以跳过尝试猜测最佳缩放的部分(甚至更好 - 如果有更好的技巧,请检查 Google Maps API;这是快速而丑陋的 hack)。你需要的核心在于
for(i=0;i < coordinates.length; i++){
markers.push(new google.maps.Marker({ position: coordinates[i], map: map, title: names[i].getElementsByTagName("a")[0].innerHTML, zIndex:i}));
...
}
祝你好运,欢迎来到 StackOverflow :)