Цель: разрешить пользователю включать и выключать разные уровни данных; и динамически извлекать данные для текущей протяженности из базы данных на событие перемещения карты.Virtual Earth VEShapeLayer не будет отображать
Это работает отлично и хорошо, если вы жестко скопируете свои VEShapeLayers как сделано here.
Мой список слоев поступает из базы данных, у меня все работает так, как я хочу, кроме того, когда я добавляю фигуры в свой 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