No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
地図へのマーカーの追加
<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 地図オブジェクト。
次に、取引先の住所を中心にした、取引先の取引先責任者のリストを表示するページを示します。
このコードにより、次の地図が作成されます。
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 値を渡す必要があります。