Salesforce.com Visualforce Google Карты - PullRequest
       12

Salesforce.com Visualforce Google Карты

1 голос
/ 25 августа 2010

Мне нужна помощь, и я думаю, что этот пост поможет мне, но я очень плохо знаком с картами Google и Visualforce.ответил eyescream см. сообщение Как интегрировать Salesforce с Google Maps? .

Моя проблема очень похожа, но мне не нужно искать записи, чтобы построить их каксвязанный список.

У меня есть два пользовательских объекта с именами Wildlife__c и Sighting__c.

Наблюдения имеют поиск по дикой природе, поэтому вы можете записать прицел конкретного животного.Объект наблюдения имеет два настраиваемых поля long__c и lat__c.

. Мне нужна карта на странице Wildlife, которая просматривает и ставит маркеры на карте для всех различных наблюдений.Карта будет просто добавлена ​​в качестве компонента страницы «Дикая природа».

Я могу на объекте наблюдения создать карту с одним наблюдением, но я могу воспроизвести это на объекте дикой природы.Я думаю, что мне нужно создать массив, но не знаю, как.

Большое спасибо

Росс

1 Ответ

2 голосов
/ 25 августа 2010

Вам необходимо выяснить идентификатор html-таблицы, в которой содержится связанный список.Для этого вы можете использовать плагин Firefox (я предпочитаю Firebug , но Панель инструментов веб-разработчика тоже круто).Для Internet Explorer ... я думаю, "отладчик";оператор, помещенный где-то в JavaScript, будет работать, если у вас установлен Visual Studio или установлен какой-нибудь плагин IE.

Какими бы ни были средства, вы сможете точно определить 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+$/,""));
}

Вставьте найденный вами идентификатор в первую строку.Выясните, какая ячейка

содержит информацию о широте и долготе.Вы можете снова выяснить это с помощью вашего отладчика или эксперимента, поместив в цикл поле alert ().

Последняя часть заключается в том, что вам не нужно геокодировать ваши адреса, у вас уже есть LAT и LONG.Поэтому перейдите непосредственно к функции finalizeDrawingMap () и повторно используйте ее содержимое.Вы можете пропустить часть, которая пытается угадать лучший масштаб (или даже лучше - проверьте API Карт Google, если есть лучший прием для этого; это был быстрый и уродливый взлом).Суть того, что вам нужно, заключается в

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...