我需要一些帮助,我认为这篇文章对我很有帮助,但我对谷歌地图和Visualforce都不熟悉。由eyescream回答,见帖子How do I integrate Salesforce with Google Maps?。
我的问题非常相似,但我不需要搜索记录,以便将它们作为相关列表提供。
我有两个名为Wildlife__c
和Sighting__c
的自定义对象。
瞄准具有对野生动物的查找,因此您可以记录特定动物的目击。目击对象有两个自定义字段long__c
和lat__c
。
我想在野生动物页面上查看地图,并将标记放在地图上以显示所有不同的目标。该地图将简单地添加为野生动物页面的一个组成部分。
我可以在目击物体上生成一张有一次目击的地图,但我可以在野生动物物体上复制它。我想我需要创建一个数组但不确定如何。
非常感谢
罗斯
答案 0 :(得分:2)
您需要找出包含相关列表的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插入第一行。找出哪个&lt; td&gt;单元格包含您的纬度和经度信息。您可以通过在循环中放置alert()框来再次使用调试器或实验找到它。
最后一部分是您不需要对地址进行地理编码,您已经拥有LAT和LONG。因此,直接跳过函数finalizeDrawingMap()并重用它的内容。您可以跳过尝试猜测最佳缩放的部分(甚至更好 - 如果有更好的技巧,请查看Google Maps API;这是快速而丑陋的黑客攻击)。您需要的核心在于
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}));
...
}
祝你好运&amp;欢迎来到StackOverflow:)