この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

地図へのマーカーの追加

<apex:mapMarker> コンポーネントを使用して、<apex:map> コンポーネントで作成された地図で場所マーカーを作成します。

地図に配置するマーカーごとに、関連する <apex:map> の子として <apex:mapMarker> コンポーネントを追加します。各マーカーは、position 属性で設定する特定の場所を表します。必要に応じて title を追加して、マーカーにマウスポインタを置いたときに表示されるテキストを指定できます。

地図には、最大 100 個のマーカーを追加できます。コレクションまたはリストから複数のマーカーを追加するには、<apex:repeat> 反復コンポーネントを使用します。

position 属性は、マーカーを配置する地図上の点を定義します。position 値をさまざまな形式で指定できます。
  • 住所を表す文字列。たとえば、「1 Market Street, San Francisco, CA」のようになります。住所は自動的に地理コード化され、正確な緯度と経度が決まります。
  • 場所の座標を指定する latitude および longitude 属性を含む JSON オブジェクトを表す文字列。たとえば、「{latitude: 37.794, longitude: -122.395}」のようになります。
  • 場所の座標を指定する latitude および longitude キーを含む、Map<String, Double> 型の Apex 地図オブジェクト。

地理コード化された住所の検索は、ページ要求ごとに 10 個に制限されます。<apex:map> コンポーネントの center 属性と <apex:mapMarker> コンポーネントの position 属性の検索は、この制限にカウントされます。この制限は、ページ要求単位であり、地図単位ではありません。地図に他の中心点またはマーカー位置を追加する場合、緯度と経度の値を正確に指定する必要があります。正確でない場合は、スキップされます。

メモ

次に、取引先の住所を中心にした、取引先の取引先責任者のリストを表示するページを示します。
1<apex:page standardController="Account">
2
3  <!-- This page must be accessed with an Account Id in the URL. For example: 
4       https://<salesforceInstance>/apex/NearbyContacts?id=001D000000JRBet -->
5  
6  <apex:pageBlock >
7    <apex:pageBlockSection title="Contacts For {! Account.Name }">
8    
9     <apex:dataList value="{! Account.Contacts }" var="contact">
10       <apex:outputText value="{! contact.Name }" />
11     </apex:dataList> 
12    
13  <apex:map width="600px" height="400px" mapType="roadmap"
14    center="{!Account.BillingStreet},{!Account.BillingCity},{!Account.BillingState}">
15
16    <apex:repeat value="{! Account.Contacts }" var="contact">
17    <apex:mapMarker title="{! contact.Name }"
18       position="{!contact.MailingStreet},{!contact.MailingCity},{!contact.MailingState}"
19    />
20    </apex:repeat>
21
22  </apex:map>
23
24    </apex:pageBlockSection>
25  </apex:pageBlock>
26
27</apex:page>
このコードにより、次の地図が作成されます。
マーカーが付いた地図
この例では、次のことがわかります。
  • center および position 属性は、住所要素を連結して地理コード化できる住所文字列を提供する Visualforce 式として渡されています。
  • このページでは住所に地理コード化を使用しているため、表示は最初の 9 件の取引先責任者に制限されます (<apex:map>center 属性でも 1 つの地理コード化検索が使用されるため、9 件になります)。他のマーカーを表示するには、地理コード化を必要としない position 値を渡す必要があります。