Salesforce.com Visualforce谷歌地图

时间:2010-08-25 14:13:33

标签: google-maps salesforce visualforce

我需要一些帮助,我认为这篇文章对我很有帮助,但我对谷歌地图和Visualforce都不熟悉。由eyescream回答,见帖子How do I integrate Salesforce with Google Maps?

我的问题非常相似,但我不需要搜索记录,以便将它们作为相关列表提供。

我有两个名为Wildlife__cSighting__c的自定义对象。

瞄准具有对野生动物的查找,因此您可以记录特定动物的目击。目击对象有两个自定义字段long__clat__c

我想在野生动物页面上查看地图,并将标记放在地图上以显示所有不同的目标。该地图将简单地添加为野生动物页面的一个组成部分。

我可以在目击物体上生成一张有一次目击的地图,但我可以在野生动物物体上复制它。我想我需要创建一个数组但不确定如何。

非常感谢

罗斯

1 个答案:

答案 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:)