Objectif: autoriser l'utilisateur à activer et désactiver différentes couches de données; et pour extraire dynamiquement les données pour l'étendue actuelle à partir d'une base de données sur un événement de déplacement de carte.Virtual Earth VEShapeLayer ne restituera pas
Cela fonctionne très bien si vous codez dur votre VEShapeLayers comme fait here.
Ma liste de calques provient d'une base de données, j'ai tout fonctionnant comme je le souhaite, sauf que lorsque j'ajoute des formes à mon VEShapeLayer, aucune n'est rendue sur ma carte. Appel VEShapeLayer.GetShapeCount() retourne le nombre prévu ... de sorte que la couche a les données ..
Voici les bits importants du code:
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