ポリゴン領域を定義する一連の緯度と経度の座標を読み取っています。それらはエリア ID にキー付けされており、SQL データベースから取得します。たとえば、エリア ID 153 には 20 の座標があり、エリア ID 77 には 11 の座標がある場合があります。これらをエリア ID でインデックス付けされた 2 次元配列に保存し、各座標ペアを 1 つの Google LatLng オブジェクトに結合したいと考えています。後で、1 つの行、つまり 1 つの領域の座標セットを取得し、それらを座標の配列を受け取り、マップ上に多角形を描画する関数に送信したいと考えています。ここに私が持っているものがあります:
private var coordsFromSql:ArrayCollection = new ArrayCollection();
var polyArray:Array = new Array();
for each(var item:COORDINATES in coordsFromSql)
{
// add coordinates to the array for each Area id
polyArray[item.AREA_ID].push( new LatLng(item.LATITUDE, item.LONGITUDE) );
}
したがって、ここで最初の問題が発生します。可変数の新しい項目を 2 次元配列に既知のインデックスに追加する方法がわかりません。つまり、polyArray を 2-D スプレッドシートのように考えると、たとえば、「行」77、つまり polyArray[77] に値を追加するにはどうすればよいですか? 上記のコードを実行すると、実行時エラー #1010 'A term is undefined and has no properties' が発生します
質問の 2 番目の部分は、1 つの「行」を新しい配列として抽出する方法です。上記の例を使用して drawPolygon 関数を呼び出すことはできますか?
var polyArraySlice:Array = polyArray[77].slice();
drawPolygon(color, polyArraySlice );