togさん
上田さんの補足です。
google.maps.Polygonクラスには、polygon.getOptions()がありません。
おそらくoptionが設定された時にキーと値を分解してしまうのでしょう。
分解したされたオプションは、プロパティとして保存されます。
なので、こんなことが可能です。
var opts = {
path: poly.path,
message : "Hello!!"
};
var poly = new google.maps.Polygon(opts);
google.maps.event.addListener(poly, function() {
alert(poly.message);
});
------
なぜそんなことができるのかというと、
google.maps.Polygonクラスは、google.maps.MVCObjectクラスを拡張しているので
MVCのset/getメソッドがあるからです。
だからこう置き換えることもできます。
google.maps.event.addListener(poly, function() {
alert(poly.get("message"));
});
------
google.maps.event.addListenerは、イベントが発生して
リスナー関数を呼び出すときに、クリックされたオブジェクトとして
呼び出してくれます。
なので、
for (poly in polygons) {
var opts = {
path : poly.path,
title :
poly.name,
message : "Hello!"
};
var poly = createPolygon(opts);
google.maps.event.addListener(poly, onPolygonClicked);
}
function onPolygonClicked (evt) {
var poly = this;
alert(evt.latLng);
alert(poly.get("title"));
}
function createPolygon(opts) {
var poly = new google.maps.Polygon(opts);
return poly;
}
とこんなことができます。
------
応用技で、Polygon.getOptions() とか欲しい!とかいうのは
こんな風にすれば可能です。
参考:Polygon.getOptions() を作成する
http://googlemaps.googlermania.com/google_maps_api_v3/ja/polygon_getOptions.html
2012/4/22 taku <
uedat...@gmail.com>:
> --
> このメールは Google グループのグループ「Google-Maps-API-Japan」の登録者に送られています。
> このディスカッションをウェブ上で閲覧するには、
https://groups.google.com/d/msg/google-maps-api-japan/-/mnPf8FsMZTQJ
> にアクセスしてください。
>
> このグループに投稿するには、
google-map...@googlegroups.com にメールを送信してください。
> このグループから退会するには、
google-maps-api-...@googlegroups.com
> にメールを送信してください。
> 詳細については、
http://groups.google.com/group/google-maps-api-japan?hl=ja
> からこのグループにアクセスしてください。