Est-il possible d'ajouter des points à une chaîne de caractères existante dans des conteneurs ouverts? J'ai un flux de points provenant du serveur que je souhaite dessiner lorsqu'ils arrivent sur le client. À l'heure actuelle, la seule façon que je peux voir pour ce faire est de tracer une ligne unique à partir du dernier point que j'ai reçu au nouveau point chaque fois qu'un nouveau point arrive, comme ceci:Ajout de points à une ligne existante
Drawer.prototype.drawPoint = function(point)
{
var line = new OpenLayers.Geometry.LineString([this.lastPoint, point]);
var lineFeature = new OpenLayers.Feature.Vector(line, null, this.style);
this.lineLayer.addFeatures([lineFeature]);
this.lastPoint = point;
}
Cela semble inefficace. Évidemment, je pourrais garder un tableau de tous les points et redessiner toute la ligne chaque fois qu'un nouveau point entre, mais cela semble inefficace aussi.
C'est le cas. Je suis arrivé à la conclusion que les documents sur le site OpenLayers sont sans valeur! (http://dev.openlayers.org/releases/OpenLayers-2.7/doc/apidocs/files/OpenLayers/Geometry/LineString-js.html). Doit également montrer les méthodes héritées. – marchaos
Oui, je recommande de référencer le code source au lieu de la documentation. C'est bien structuré et c'est facile de trouver des choses là-bas. Vous trouverez également souvent des commentaires qui clarifient la façon dont les choses fonctionnent que vous ne trouverez jamais dans la documentation. – igorti
Dans OL3, cela s'appelle maintenant appendCoordinate. ([documentation] (http://openlayers.org/en/v3.18.2/apidoc/ol.geom.LineString.html#appendCoordinate)) – jaySon