0

目標:ユーザーがデータのさまざまなレイヤーをオンまたはオフにできるようにします。マップ移動イベントでデータベースから現在のエクステントのデータを動的にプルします。

ここで行うようにVEShapeLayersをハードコーディングすると、これは問題なく機能します。

レイヤーのリストはデータベースから取得されています。VEShapeLayerに図形を追加してもマップにレンダリングされないことを除いて、すべてが希望どおりに機能しています。VEShapeLayer.GetShapeCount()を呼び出すと、期待される数が返されるため、レイヤーにデータが含まれます。

コードの重要な部分は次のとおりです。

var assets = [];
if (WebServiceResult.length > 0) {
    for (var i = 0; i < WebServiceResult.length; i++) {
        var ix = FindLayerIndex(WebServiceResult[0].AssetMapLayer);
        var velatlong = new VELatLong();
        velatlong.Latitude = WebServiceResult[i].Latitude;
        velatlong.Longitude = WebServiceResult[i].Longitude;
        newShape = new VEShape(VEShapeType.Pushpin, velatlong);
        assets.push(newShape);
    }
    // ix is defined above and is vaild and correct
    map.GetShapeLayerByIndex(ix).AddShape(assets);
}
// a call here to map.GetShapeLayerByIndex(ix).GetShapeCount()     
// returns the expected number of shapes 
4

1 に答える 1