次の例では、数値が 100、101、110、200 になると想定しています。この単純な例のシーケンスにより、ソリューションのすべての側面を説明できます。
GMap が一連のカスタム マーカーをサポートしているという事実を利用できます。
したがって、カスタム マーカー フォルダーを作成し、そのフォルダーに次のような .ini ファイルを作成します。
; Defaults
[defaults]
; Note: An empty shadow property will break IE.
; Leave it commented out if you aren't supplying an image.
;shadow = ""
anchorX = 16
anchorY = 51
infoX = 24
infoY = 4
; Marker sets
[numbermarkers]
name = "Number markers"
sequence = "100.png,101.png,110.png,200.png"
; Files
次に、100.png、101.png などに関連する PNG ファイル (他の画像タイプを使用できます) を作成します。GMap 設定ページの [再生成] ボタンを押して、ini ファイルを再読み込みし、新しいマーカー タイプを現れます。
GMap の設定で、マーカーの種類を「数値マーカー」(または ini ファイルで使用した任意の名前) として選択します。
マーカーは番号タイプに順番に適用されるため、(ビューを使用している場合はビュー設定で) 数値を、言及した 10 進数フィールドで並べ替えていることを確認してください。
ノードは番号順にマップに追加され、マーカー シーケンス内の画像も番号順に追加されるため、それぞれに適切なマーカーがあることがわかります。
新しい番号の将来の更新
たとえば、番号 105 を追加する場合は、次のことを行う必要があります。
- 関連する PNG を作成する
- ini ファイルを更新します - 105.png を
sequence
行に追加し、エントリを番号順に保ちます(つまり、101.png と 110.png の間に 105.png を追加します)。
- GMap 設定ページのRegenerateボタンを押して、ini ファイルを再読み込みします。
- また、標準の Drupal キャッシュをクリアする必要がある場合もあります (
drush cc all
は友人です)。
発生する可能性がある問題
私の経験では、マーカーのシーケンスには GMap のバグがあり、こことここで説明されています。このバグのおかげで、シーケンスから 1 つのアイテムのみが使用されます。
この問題をテストする簡単な方法は、GMap の組み込みの「週」マーカー タイプを使用して、それらがすべて「日」として表示されないことを確認することです!
このコードを使用してカスタムモジュールを作成することで、これを回避しました。
function mymodule_gmap($op, &$map)
{
if ($op == 'pre_theme_map') {
if (($map != null) && (array_key_exists('markers', $map)))
{
for ($count = 0; $count < sizeof($map['markers']); $count++) {
$map['markers'][$count]['offset'] = strval($count);
}
}
}
}
これは、「オフセット」フィールドを手動で設定して、正しいことを確認します。
新しい数値を追加する手順をより簡単にするためにこのコードを適応させることができるかもしれませんが、私にはわかりません - 調査はあなたに任せます!
マーカー フォルダー
カスタム マーカーを GMap のディレクトリに配置するのではなく、独自のモジュールで作成することをお勧めします。GMap に追加するとアップグレードが難しくなるためです。
これを行う方法の詳細については、次を参照してください。