1

助けが必要です。この投稿が役立つと思いますが、Google マップと Visualforce は初めてです。回答者 eyescream 投稿を見るSalesforce と Google マップを統合するにはどうすればよいですか? .

私の問題は非常に似ていますが、関連リストとして利用できるレコードをプロットするためにレコードを検索する必要はありません。

と という 2 つのカスタム オブジェクトがWildlife__cありSighting__cます。

Sightings には Wildlife へのルックアップがあるため、特定の動物の目撃情報を記録できます。目撃情報オブジェクトには、2 つのカスタム フィールドlong__cとがありlat__cます。

ワイルドライフのページに、すべての異なる目撃情報を表示してマーカーを配置するマップが欲しい. マップは、野生生物ページのコンポーネントとして追加されるだけです。

目撃情報オブジェクトでは 1 回の目撃情報を含むマップを生成できますが、これを野生動物オブジェクトでも再現できます。配列を作成する必要があると思いますが、方法がわかりません。

どうもありがとう

ロス

4

1 に答える 1

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 を最初の行に挿入します。緯度と経度の情報が含まれている <td> セルを特定します。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}));
    ...
}

幸運を祈ります。StackOverflow へようこそ :)

于 2010-08-25T16:46:08.880 に答える