google map のmarker変更について

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
towa
記事: 3
登録日時: 2008年3月07日(金) 13:59

google map のmarker変更について

投稿記事 by towa » 2012年11月15日(木) 15:00

始めまして。
googlemap apiを利用しての地図表示を作成しましたが、
お客様から種別でmarkerを変えれないかと言うご質問がありました。

スキーマーにmenuを追加し、値によりmarkerを変えるという事は可能でしょうか。
もしできるのでしたら教えていただきたいのですが。
よろしくお願いします。

--------------------------------------------------------------
追記です。
その後色々調べてみまして、markerを表示させる場所にif文を入れればいいのかなと思いましたが、
どうやって項目の値を指定するかが分かりません。
ちなみにソースはこんな感じでいいのかなと思いましたがjavaの知識が皆無なので根本的に間違っているかもしれません。

コード: 全て選択

if ( 項目値 == 1 ) { var image = '/img/a.png'; }
if ( 項目値 == 2 ) { var image = '/img/b.png'; }
var marker = new google.maps.Marker( { position: latlng, map: map, icon: image, title: title });

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: google map のmarker変更について

投稿記事 by webmaster » 2012年11月22日(木) 14:33

webmasterです。お返事が大変遅くなり、申し訳ありません。

ご要望のことはtowaさんの考え方で問題なく可能でなのですが、具体的なサンプルを作って動作確認をしている時間が取れておりません。

基本的には、デザイン定義側でjavascriptを出力することになります。
towaさんの書いてくださったサンプルの「項目値」を「iconType」として、これが数値項目だと過程します。

-- デザイン定義側の一部 ------
<script type="text/javascript">
var icontype = <xsl:value-of select="icontype" />;
var image = "";
if ( icontype == 1 ) { image = '/img/a.png'; }
if ( icontype == 2 ) { image = '/img/b.png'; }
var marker = new google.maps.Marker( { position: latlng, map: map, icon: image, title: title });
</script>
----------------------------------

上記のように、icontypeという変数を宣言しておいてそこへCMSD側の項目の値を代入するようなソースコードを作ります。
すると、icontype変数とCMSDの項目値が関連付けられて同じ値になりますので、あとは通常のjavascriptとしてifなどで使うことができます。

これだけでは説明不足な部分があるかと思いますが、ご不明な点はまたご指摘頂ければ幸いです。

返信