イベントのハンドリング方法によって結果関数の引数に入る情報が異なる。
function executeQueryTask()
{
//新規 QueryTask オブジェクトを作成し、検索対象レイヤーを指定します
var queryTask = new QueryTask("http://sample.esrij.com/arcgis/rest/services/te2/MapServer/0")
//属性検索の条件を設定します
var query = new Query();
query.where = "OBJECTID = 1";
//検索を実行します
//パターン1
//queryTask.execute(query,showResults);
//この場合は event.features で取得
//パターン2
queryTask.on("complete", showResults);
queryTask.execute(query);
//この場合は event.featureSet.features で取得
}
function showResults(event)
{
//マップのグラフィックス レイヤーに含まれるすべてのグラフィックを削除します
map.graphics.clear();
//featureSet 配列を単一の変数に割り当てます
var resultFeatures = event.featureSet.features;
//返されたそれぞれのフィーチャをループ処理します
for (var i=0; i < resultFeatures.length; i++)
{
//featureSet から現在のフィーチャを取得します
//(フィーチャはグラフィックです)
var symbol = new SimpleMarkerSymbol();
symbol.setColor(new Color([150, 150, 150, 0.5]));
var infoTemplate = new InfoTemplate();
var graphic = resultFeatures[i];
graphic.setSymbol(symbol);
//infoTemplate を設定します
graphic.setInfoTemplate(infoTemplate);
//マップのグラフィックス レイヤーにグラフィックを追加します
map.graphics.add(graphic);
}
} function executeQueryTask()
{
//新規 QueryTask オブジェクトを作成し、検索対象レイヤーを指定します
var queryTask = new QueryTask("http://sample.esrij.com/arcgis/rest/services/te2/MapServer/0")
//属性検索の条件を設定します
var query = new Query();
query.where = "OBJECTID = 1";
//検索を実行します
//パターン1
//queryTask.execute(query,showResults);
//この場合は event.features で取得
//パターン2
queryTask.on("complete", showResults);
queryTask.execute(query);
//この場合は event.featureSet.features で取得
}
function showResults(event)
{
//マップのグラフィックス レイヤーに含まれるすべてのグラフィックを削除します
map.graphics.clear();
//featureSet 配列を単一の変数に割り当てます
var resultFeatures = event.featureSet.features;
//返されたそれぞれのフィーチャをループ処理します
for (var i=0; i < resultFeatures.length; i++)
{
//featureSet から現在のフィーチャを取得します
//(フィーチャはグラフィックです)
var symbol = new SimpleMarkerSymbol();
symbol.setColor(new Color([150, 150, 150, 0.5]));
var infoTemplate = new InfoTemplate();
var graphic = resultFeatures[i];
graphic.setSymbol(symbol);
//infoTemplate を設定します
graphic.setInfoTemplate(infoTemplate);
//マップのグラフィックス レイヤーにグラフィックを追加します
map.graphics.add(graphic);
}
}
