Suite

Calcul du point médian pour l'accrochage à l'aide d'OpenLayers ?


Comment calculer le milieu de toutes les lignes dans les calques et y ajouter un calque pour l'accrochage au milieu, en utilisant OpenLayers 2.13?

J'ai essayé le code suivant, mais cela ne fonctionne pas :

var features=vectors.features; var len=vectors.features.length; for (var i=0 ; i < longueur ; i++){ for(var j=0 ; j

j'ai trouvé la solution :

var middlePoints=[]; fonction createPoint(p1,p2){ var xC,yC; xC=(p1.x+p2.x)/2; yC=(p1.y+p2.y)/2; var point= new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(xC,yC)); point.style={strokeColor:"red",strokeOpacity:0.3,fillColor:"red",fillOpacity:0.1,pointRadius:1} ; point de retour; } var état=1; function getMiddlePoint(){ if(state==1){ var points=[]; var features=vectors.features; var len=vectors.features.length; point var; for (var j=0 ; j < len ; j++){ for(var i=0 ; i < features[j].geometry.getVertices().length-1; i+=2) { var prevVertex =features[j] .geometry.getVertices()[i]; var nextVertex = features[j].geometry.getVertices()[i + 1]; if(prevVertex.CLASS_NAME == "OpenLayers.Geometry.Point" && nextVertex.CLASS_NAME == "OpenLayers.Geometry.Point") { point = createPoint( prevVertex, nextVertex); middlePoints.push(point); } } } vectors.addFeatures(middlePoints); vectors.refresh({force:true}); vertexSnap.activate(); état=0; }else{ vectors.removeFeatures(middlePoints); middlePoints=[]; état=1; } }