2

Below is an example of 3 polygons I'm adding to a map. I intend to include click events to each; however, I would like to output some element of each polygon that I can refer to and relate to other data such as description, images, etc. The output could be the short title (variable names) given to each shape- here e609, c815, and c840- or an index number- ideally the number given in the comment before each polygon.

Are polygons given index numbers given on the order they enter the map? If so, how do I refer to this number as to pass it to another function? Alternatively, how could I pass along the short titles?

//0
var e609;
var e609_c = [
    //Latlng, cut for space.
];
e609 = new google.maps.Polygon({
    paths: e609_c,
    strokeOpacity: 0,
    fillColor: "#B1509E",
    fillOpacity: .4
});
e609.setMap(map);

//1
var c815;
var c815_c = [
    //Latlng, cut for space.
];
c815 = new google.maps.Polygon({
    paths: c815_c,
    strokeOpacity: 0,
    fillColor: "#B1509E",
    fillOpacity: .4
});
c815.setMap(map);

//2
var c840;
var c840_c = [
    //Latlng, cut for space.
];
c840 = new google.maps.Polygon({
    paths: c840_c,
    strokeOpacity: 0,
    fillColor: "#B1509E",
    fillOpacity: .4
});
c840.setMap(map);
4

2 に答える 2

2

オブジェクト作成内にポリゴンを説明するカスタム フィールドを含めることができます。たとえば、説明と shortTitle を追加しました。変数名を取得する直接的な方法がわからないので、単に繰り返すだけです。その情報にアクセスする方法がわかりませんが、ポリゴンは内部でインデックス化する必要があります。新しいポリゴンに割り当てる変数名を使用して、それを操作できます。

e609 = new google.maps.Polygon({
    description: "Polygon named e609",
    shortTitle: "e609",
    paths: e609_c,
    strokeOpacity: 0,
    fillColor: "#B1509E",
    fillOpacity: .8
});

クリック リスナーを追加するときは、その変数名 (e609) で参照する必要があります。または、たとえばe609var myPolygons = []などのポリゴンの配列pushをこの配列に作成します。次に、としてアドレス指定できますmyPolygons[0]。または、オブジェクトを使用して、短いタイトルでポリゴンを保持することもできます (例: myPolygons['e609'].

とにかく、以下は、ポリゴン定義で作成されたフィールドを使用する方法です。

google.maps.event.addListener(e609, 'click', function(event) {
  alert("Clicked on " + this.description + " short title " + this.shortTitle);
});
于 2012-06-06T17:19:04.460 に答える