最初から吹き出しを表示させることはできますか?

2,732 views
Skip to first unread message

pom

unread,
Feb 20, 2008, 7:13:20 AM2/20/08
to Google-Maps-API-Japan
通常、マーカをクリック、マウスオーバーで吹き出しを表示させてると思いますが、
マップを開いたら最初から吹き出しが出た状態で表示させることはできますか?

Masashi.K

unread,
Feb 20, 2008, 10:08:17 AM2/20/08
to Google-Maps-API-Japan
>pomさん

たぶんこんな感じで出来ます。

var maker=new GMarker(point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("<b>開いた?</b>");
});
map.addOverlay(marker);

GEvent.trigger(marker,"click");

pom

unread,
Feb 20, 2008, 8:07:19 PM2/20/08
to Google-Maps-API-Japan
Masashi.Kさん

まずは、ありがとうございます!できました感動です
で、すいませんついでにお聞きしたいのですが

> GEvent.trigger(marker,"click");

要はこの一文があることで
クリックされてることになるんでしょか?

Masashi.K

unread,
Feb 21, 2008, 12:14:42 AM2/21/08
to Google-Maps-API-Japan
> GEvent.trigger(marker,"click");

GEvent.triggerは、擬似的にイベントを発生させる命令ですよ。
今回の場合はmarkerにclickイベントを擬似的に発生させています。
(ユーザがマーカをクリックしたのと同じ状態になります)

hamakko

unread,
Apr 4, 2008, 3:28:56 AM4/4/08
to Google-Maps-API-Japan
Masashi.Kさん

横から申し訳ございません。
以下のコードではどこを変更したら最初から吹き出しが表示されますでしょうか?

GEvent.addListenerをGEvent.triggerにしても駄目だったのですが・・・
ご教授いただけると助かります。

else{document.getElementById('map').innerHTML='ご利用の環境ではこのマップをご覧いただけませ
ん。';}
function buildInfoHtml(dataPoint){return
document.getElementById('marker_html_' + dataPoint.no).innerHTML;}
function buildGMarker(lng, lat, data){return new GMarker(new
GPoint(lng, lat));}
function addGMarker(markerNo, lng, lat, data){var marker =
buildGMarker(lng, lat, data);
var point =
{'marker':marker,'no':markerNo,'lng':lng,'lat':lat,'data':data};gme_markers.push(point);
var f = function(){gme_map.centerAtLatLng(new
GPoint(lng,lat));marker.openInfoWindowHtml(buildInfoHtml(point));};GEvent.addListener(marker,
'click', f);

var marker_field = document.getElementById('marker_link_'+ markerNo);
if(marker_field){marker_field.onmousedown =
f;}gme_map.addOverlay(marker);}

hirakiuc

unread,
Apr 5, 2008, 2:11:18 PM4/5/08
to Google-Maps-API-Japan
こんばんわ、hamakkoさん
hirakiucです。

細かくコードは読んでないですが、
さらにその横から少しコメントしてみます。

まずはGEvent.addListenerとGEvent.triggerの役割の違いから。

- GEvent.addListenerはイベントが発生したときの振る舞いを記述するもの
- GEvent.triggerは指定したイベントを意図的に発生させるもの(前述のMasashi.Kさんのコメントのとおり)

ですので、
> GEvent.addListenerをGEvent.triggerにしても駄目だったのですが・・・
は単純に考えると
「クリックイベントが発生したときの振る舞い」を"何もしない(未定義)"としておいて、"クリックイベント"を発生させた事
になりそうな気がします。(実際にどう修正されたのかはわからないですけど。。)
つまり、クリックされても何もしません = 噴出しがでない ってことでしょうか。

「クリックされたときに噴出しを表示する事」をGEvent.addListenerで記述しておき、
その"クリック"するイベントを意図的にGEvent.triggerで起こす。
と意図した動作になりそうです。

なにかヒントになれば幸いです。
(勉強中ですので誤りなどあればコメントをお願いします)

いじょです。

hamakko

unread,
Apr 7, 2008, 12:38:41 AM4/7/08
to Google-Maps-API-Japan
hirakiucさん

コメントありがとうございました。
早速、試してみます。
Reply all
Reply to author
Forward
0 new messages